snyvi: A viewer for the documents your agents write.
Your coding agent writes a plan and sends it to snyvi over MCP. It opens in the viewer, rendered and filed under the project. Open source, MIT.
snyvi
- v0.21.0 · 16 Sept 2026
- MIT
- Rust, one static binary
- Linux · macOS · Windows
- snymrova/snyvi
How it works
Any agent that speaks MCP can send. Setup is one command per agent.
The agent sends
The agent calls one MCP tool, send_document. snyvi init <agent> registers it in the agent's settings; snyvi uninstall removes it.
The daemon renders and stores
A local daemon on 127.0.0.1:7777 renders the document once and stores it in SQLite under the project it came from.
Open pages update
Every open page receives the document over an event stream, about 50 ms after the send. Agents send; snyvi shows.
- Claude Codesnyvi init claude
- Codexsnyvi init codex
- Cursorsnyvi init cursor
- Claude Desktopsnyvi init claude-desktop
- Gemini CLIsnyvi init gemini
- Windsurfsnyvi init windsurf
- VS Codesnyvi init vscode
- Zedsnyvi init zed
Inside the viewer
Six things it does. Pick one to see it; click the picture to enlarge.
Install
One static binary, no dependencies. An optional second package adds a native window. To update, install the new binary and run snyvi restart.
- snyvi send PLAN.md
- a file, or stdin; prints the link
- snyvi watch PLAN.md
- send now, and again on every save
- snyvi browse [dir]
- read a folder from disk, nothing stored
- snyvi app
- a native window, when snyvi-app is installed
- snyvi init <agent>
- register with any of the eight agents
- snyvi status
- what is running, what is registered
From the releases page, download snyvi_<version>_amd64.deb or _arm64.deb. Then:
sudo dpkg -i snyvi_*.debsnyvi send README.md # starts the daemon, prints a linksnyvi init-claude # register with Claude Code
No dependencies: the binary is static. The optional snyvi-app package adds a native window.
Keys
Everything works from the keyboard. ? shows the list in the viewer.
- ⌘K
- search everything
- n
- open the next document waiting
- j / k
- next / previous document
- c
- compare with the previous version
- /
- find in document
- f
- fill the screen with the diagram
- t / \
- toggle contents / sidebar
- p
- pin (kept by prune)
- Del
- delete (⌘Z undoes it)
- ?
- all of them
Benchmarks
snyvi bench --check runs on every push and fails the build if a number goes over budget. Measured on a Linux dev box; the guide has macOS and Windows.
| Case | Result | Budget |
|---|---|---|
| Binary size, snyvi | 12.4 MB | 15 MB |
| Daemon cold start, to first health | 11 to 14 ms | 100 ms |
| Daemon resident, three documents in | 40 MB | 60 MB |
| Send, 100 KB Markdown, round trip | 12 to 14 ms | 100 ms |
| Document page, time to first byte | 1 to 2 ms | 30 ms |
| Render Markdown, 1 MB | 108 ms | 400 ms |
| Highlight Rust, 10k lines | 143 ms | 500 ms |
What it does not do
These limits are deliberate and documented in the roadmap.
No editing
snyvi is a viewer. Editing happens in your editor, via “Open in editor”.
One direction only
Agents send, snyvi shows. Nothing is read back into the agent.
No terminal inside
snyvi never runs anything a document says. “Open terminal here” opens your own terminal in the document's directory, with no command.
Nothing phones home
The daemon listens on 127.0.0.1 only. No hosted mode, no account, no telemetry.
Open source, MIT
We built snyvi for our own work with coding agents. The full source is on GitHub.