hermes-snapcompact
Snapcompact context engine plugin for Hermes Agent.
When the conversation context fills up, renders old turns into dense bitmap PNG frames that vision-capable models read back at roughly 1/3 the input token cost — with near-perfect recall. Powered by @oh-my-pi/snapcompact.
Requirements
- Hermes Agent v0.5.0+
- Bun v1.3.14+ (for the native snapcompact renderer)
- A vision-capable model (Claude, GPT-5.x, Gemini 3.x, etc.)
Install
hermes plugins install vimona3ds/hermes-snapcompact --enable
cd ~/.hermes/plugins/hermes-snapcompact/bridge && bun install
Restart Hermes. The plugin auto-configures itself — your existing compaction behavior is unchanged until you opt in. The plugin never installs anything itself: if Bun or the bridge dependencies are missing, it flags the exact fix at startup and in /compact-mode, and compaction keeps working in summarize mode.
Usage
/compact-mode # show current mode
/compact-mode snapcompact # switch to bitmap-frame archive
/compact-mode summarize # switch back to LLM prose summary
The default mode is summarize — identical to the built-in compressor. When you switch to snapcompact, old turns are rendered into dense PNG frames instead of being summarized by an LLM. Switch back any time.
How it works
- Serialize — old conversation turns are serialized into a compact text format (
¶user:,¶ai:,¶call:scopes with truncated tool output). - Render — the text is rendered into dense PNG frames using @oh-my-pi/snapcompact's eval-tuned pixel fonts and provider-aware frame shapes.
- Resume — the model sees a reading guide, the bitmap frames, and verbatim text at the chronological edges. It reads the archive and continues seamlessly.
Frame shapes are provider-aware and selected from SQuAD recall evals:
| Provider | Shape | Notes |
|---|---|---|
| Anthropic | 11on16-bw |
8x13 glyphs, 11px advance; high-res frames for Opus 4.7+/Fable/Mythos |
8on22-bw @2048px |
Extra line spacing; Gemini bills fixed per-image budget | |
| OpenAI | 8on22-bw |
Same line-spacing win; detail: "original" for patch billing |
| Unknown | 8on22-bw |
Safe default with Anthropic-style billing estimate |
Caveats
- Vision required. Non-vision models can't read the bitmap frames. The engine will still work (text edges are preserved verbatim) but middle history will be opaque.
- Bun dependency. The native renderer in @oh-my-pi/snapcompact requires Bun. The plugin only detects and flags a missing setup — it never installs anything.
- Image token billing. While input tokens drop ~3x, models spend extra output/thinking tokens decoding the images. The technique shines at 100k+ token sessions.
License
MIT — see LICENSE.
The @oh-my-pi/snapcompact renderer is also MIT-licensed.