Warning
Beta. Demarkus is pre-1.0 and under active development. Features, components, binaries, plugins and commands are in flux: any of them can change, move or be removed between releases. Pin a release for anything you depend on.
Memory for agents, knowledge for teams
Your agent records decisions, lessons, and progress as it works, and recalls them in every later session. When a note is ready for others, it moves up to your team's shared knowledge base. Every note is versioned markdown, and every link between notes is an edge in one knowledge graph.
- Memory: your agent's own versioned notes, filed as it works and recalled before the next task. Local, self-hosted, or hosted.
- Knowledge base: one shared catalog behind your login. Notes arrive from memory through a review gate; policy blocks secrets and duplicates on every write.
- Graph: links and typed relations form a persistent graph. Agents follow edges instead of loading files; people browse it in the library.
Give your agent memory. The plugin brings its own binaries: nothing to configure.
Claude Code
/plugin marketplace add latebit-io/demarkus
/plugin install demarkus-memory@demarkus
Claude Cowork: add this repository as a marketplace (Customize, Plugins) and install demarkus-memory. What differs in Cowork: Claude Cowork.
Cursor
Customize → Add Marketplace → Import from GitHub → https://github.com/latebit-io/demarkus (scope: User) → Import
demarkus-memory → Add
OpenCode
opencode plugin add 'github:latebit-io/demarkus#main::path:plugins/opencode-memory'pi
pi install git:github.com/latebit-io/demarkus-pi-memoryOn pi before 0.99, run pi install npm:pi-mcp-adapter first.
All plugins share ~/.demarkus: one memory across every agent on the machine. Details per host: Claude Code, Cursor, OpenCode, pi.
Install the knowledge plugin beside the memory plugin, then join your system and sign in through the browser:
/plugin install demarkus-knowledge@demarkus
/knowledge-join https://knowledge.example.com
No server to run, no token to copy. Same plugin for Cursor, OpenCode, and pi. Try the live system: /knowledge-join https://knowledge.demarkus.io.
agent ──record──▶ MEMORY ──/promote──▶ KNOWLEDGE BASE ──▶ LIBRARY
▲ private review shared, governed people
└──────────── recall · consult · follow the graph ◀───────┘
- Record as you go. The agent files decisions, lessons, patterns, and a daily journal where they belong. Hooks catch untagged writes and missing journal entries.
- Recall with evidence.
mark_lookupreturns the matching section and its related documents, not whole files. - Promote what matters.
/promotedistills a note, strips personal framing and secrets, checks for duplicates, and routes it to a writable world. You approve before it lands. - Keep every version. Nothing is overwritten. Every change has an author and a history.
The project keeps its own memory at mark://soul.demarkus.io; read it in the browser at soul.demarkus.io.
demarkus-knowledge is one process: many worlds (one GCS bucket each, selected by TLS SNI), OIDC single sign-on, the MCP gateways, and the cross-world graph. It runs as two or more stateless replicas; writes commit by compare-and-swap on the bucket, so there is no leader and no persistent volume.
helm upgrade --install demarkus oci://ghcr.io/latebit-io/charts/demarkus-knowledge-system \
--namespace demarkus --create-namespace --values knowledge-system.yamlThe demarkus-knowledge-system umbrella declares every world once in one values file and can add the library. Given a second hostname, the same process serves hosted memory: one private world per signed-in person, for Claude Desktop, ChatGPT, Cursor, or any MCP host. See Kubernetes & Helm and Memory gateway.
# macOS / Linux: server + client
curl -fsSL https://raw.githubusercontent.com/latebit-io/demarkus/main/install.sh | bash
# Client only (CLI, TUI, MCP)
curl -fsSL https://raw.githubusercontent.com/latebit-io/demarkus/main/install.sh | bash -s -- --client-only
# Read-only chrooted server (Linux)
curl -fsSL https://raw.githubusercontent.com/latebit-io/demarkus/main/install-readonly.sh | sudo bash -s -- --domain yourdomain.comdemarkus mark://soul.demarkus.io/index.md # fetch
demarkus-tui mark://soul.demarkus.io/index.md # browse, with a graph view
demarkus-server -root ./docs/site # serve a directoryPlatform guides: www.demarkus.io/install.
| Binary | Purpose |
|---|---|
demarkus-server |
One world: your local or self-hosted soul |
demarkus-knowledge |
Many worlds, OIDC single sign-on, MCP gateways for knowledge and hosted memory, the cross-world graph; with no broker config it serves the worlds alone |
demarkus |
CLI: fetch, publish, edit, lookup, graph, watch, okf |
demarkus-tui |
Terminal browser with a persistent graph view |
demarkus-mcp |
MCP server over one world: the protocol verbs as tools, plus graph, backlinks, doctor, curate and promote |
demarkus-plugin |
Shared core of the agent plugins; installed by them |
demarkus-token |
Capability tokens and join URLs |
demarkus-publish |
Write straight to the store for read-only installs |
Versioned markdown over QUIC (UDP 6309), addressed as mark://<world>/<path>. Every write is an immutable, hash-chained version. Capability tokens gate writes; reads are open unless a world enables read auth. No tracking, no cookies, nothing executes.
Verbs: FETCH · LIST · VERSIONS · LOOKUP · WATCH · PUBLISH · APPEND · ARCHIVE
A document is content-compatible with Google's Open Knowledge Format v0.1; demarkus okf validates, imports, and exports bundles. See the specification and design rationale.
git clone https://github.com/latebit-io/demarkus.git
cd demarkus
make all # protocol, server, client, tools, knowledgeRequires Go 1.27+. Binaries land in server/bin/, client/bin/, tools/bin/, and knowledge/bin/.
- Website: memory, knowledge, graph, install guides
- Docs: operator and contributor reference
- Glossary: one name per concept
- Ecosystem: plugins, readers, and tools
- Implementation: AGPL-3.0-only (LICENSE)
- Agent plugins: MIT (plugins/LICENSE)
- Protocol specification: CC0-1.0 (LICENSE-PROTOCOL)
