Ecosystem
Software that implements or integrates with the demarkus protocol. This page tracks first-party components and third-party implementations as they appear.
Browsers / Readers
Caztor — third-party GUI browser
Cross-platform Java graphical browser for Gemini, Spartan, Gopher, nex, and Demarkus by Kevin Boone. Caztor 1.0.0 shipped in April 2026 with preliminary view-only demarkus support. Requires a JVM 11+.
- Repo: https://github.com/kevinboone/caztor
- Implementation:
src/main/java/me/kevinboone/caztor/protocol/DemarkusConnection.java - Transport:
tech.kwik.coreQUIC library - Port: 6309 (protocol default) — correct
- ALPN:
mark— correct - Scope: FETCH only, latest version only. No PUBLISH / APPEND / ARCHIVE / VERSIONS.
- Auth: none — public-read only. No client certificate / read-token support for demarkus.
Noted TODOs in the Caztor code worth cross-checking against the spec if Kevin asks:
DEMARKUS_MAX_HEADER = 1024(1 KiB cap on frontmatter block) — our spec allows 64 KiB. Large-metadata docs could be truncated or rejected.DEMARKUS_MAX_RESPONSE_HEADER_LINES = 20— 20-line ceiling on metadata. Fine for typical docs, could clip edge cases.- No body-size ceiling visible — memory-safety concern for a browser if a server returns a huge document.
Significance: first third-party client. Validates the protocol surface is small enough to implement in an afternoon in another language, and positions demarkus alongside Gemini / Gopher / Spartan / nex in the "small net" narrative that Kevin's audience cares about. Fritz is in direct contact with Kevin.
Plugins
Obsidian — v0.1.0 RELEASED
- Source of truth: https://github.com/latebit-io/obsidian-demarkus (standalone repo, own release cadence and issue tracker)
- Monorepo:
plugins/obsidian/contains only a README pointer — the source moved to the standalone repo on 2026-04-24 - Architecture: shells out to the
demarkusCLI binary, passes token viaDEMARKUS_AUTHenv var - Install: BRAT beta plugin
Claude Code: demarkus-memory — v0.5.0
Personal, local soul. The original Claude Code plugin.
- Source:
plugins/claude-code/in the monorepo; marketplace manifest.claude-plugin/marketplace.jsonat repo root. - Lazy-spawns a local
demarkus-server, auto-generates a token, wires the MCP tools. Zero config on install. - Slash commands:
/soul,/soul-init,/soul-context,/soul-journal,/soul-status,/soul-doctor. Skill:soul-memory. - Hooks: SessionStart (standing self-documentation guidance + a one-time, ask-don't-force offer to make demarkus the user's single memory store), publish tag-gate (Pre/PostToolUse), session-end journal nudge (Stop), recall nudge (UserPromptSubmit).
- v0.5.0 (#172, 2026-06-03) removed the knowledge-system surface — that moved to the standalone demarkus-knowledge plugin below — leaving this plugin personal-soul only.
- Zero core code changes — reuses
DEMARKUS_AUTH, ALPN negotiation, and CLI stdout redirection.
Claude Code: demarkus-knowledge — v0.1.0
Organizational, broker-fronted knowledge system. Split out of demarkus-memory.
- Source:
plugins/claude-code-knowledge/; a second entry in the same marketplace. - No binaries, no local server — reaches an org's demarkus-broker via
claude mcp add --transport http+ Claude Code's own MCP OAuth. Pure-bash + curl. - Slash commands:
/knowledge-join(validate + register a broker),/knowledge(list joined systems, show eachroothub index). Hooks: SessionStart (KS-first guidance + soul↔system synergy when a sibling soul exists), KS-scoped publish tag-gate, KS-gated recall nudge. - Standalone by design: owns its own
~/.demarkus/plugin-knowledge.*file namespace andDEMARKUS_KNOWLEDGE_STRICTNESSenv; the onlyplugin-memory.*reference is a read-only check ofplugin-memory.confto detect a sibling soul. With both plugins installed, the two publish gates partition by server scope (each silent unless the publish targets its own server), so they never conflict. - Shipped #172, 2026-06-03.
See plan for the original Claude Code plugin design.
Servers / Tools (first-party)
demarkus-server— reference QUIC server (server/cmd/demarkus-server/)demarkus— generic CLI client (client/cmd/demarkus/)demarkus-tui— terminal UI with Bubble Tea + Glamour (client/cmd/demarkus-tui/)demarkus-mcp— MCP bridge for LLM agents (client/cmd/demarkus-mcp/)demarkus-token— token management (server/cmd/demarkus-token/)demarkus-publish— direct-store writer for read-only server setups (server/cmd/demarkus-publish/)demarkus-agent— crawl / index / sync daemon, in progress (client/cmd/demarkus-agent/)
Candidates / Future
- Cursor plugin, Zed plugin — the vendor-neutral soul already exists at
~/.demarkus/; a second vendor plugin would share the same backing server. - Shared plugin code: when demarkus-knowledge split off (#172), its shared awk/bash (the
lib.shJSON parser, strictness/tag helpers) was duplicated rather than shared — Claude Code plugins are self-contained with no shared-lib mechanism. A futureplugins/shared/lift would need a build/copy step at package time; until then, fixes to the shared parser must be applied in bothplugins/claude-code/scripts/lib.shandplugins/claude-code-knowledge/scripts/lib.sh. - Additional third-party clients — none known beyond Caztor.