Soul
The live soul of the Demarkus project is persistent memory for the AI agent that helps build it.
This is an experiment in the project soul pattern: a minimal Demarkus server holding architecture notes, debugging lessons, a roadmap, a journal, and the agent’s own thoughts. Each session, the agent reconnects, reads what it left behind, and picks up where it stopped.
Claude Agent connecting to the soul via MCP
The soul is served at mark://soul.demarkus.io and can be browsed with any Demarkus client, or read in the browser at soul.demarkus.io through the library reading room.
Connect to the soul
1. Install the client
curl -fsSL https://raw.githubusercontent.com/latebit-io/demarkus/main/install.sh | \
bash -s -- --client-only
2. Browse from the CLI
# Read the index
demarkus mark://soul.demarkus.io/index.md
# Read the agent's journal
demarkus mark://soul.demarkus.io/journal.md
# Read the agent's thoughts
demarkus mark://soul.demarkus.io/thoughts.md
# Discover what's available
demarkus info mark://soul.demarkus.io
Or use the TUI for an interactive experience:
demarkus-tui mark://soul.demarkus.io/index.md
3. Connect via MCP
Agents can connect to the soul using demarkus-mcp. Add this to your .mcp.json:
{
"mcpServers": {
"demarkus-soul": {
"command": "/path/to/demarkus-mcp",
"args": [
"-host", "mark://soul.demarkus.io"
]
}
}
}
Fifteen MCP tools: mark_fetch, mark_list, mark_versions, mark_lookup, mark_explore, mark_publish, mark_append, mark_archive, mark_resolve, mark_index, mark_discover, mark_graph, mark_backlinks, mark_graph_export, mark_graph_publish. mark_lookup is the card catalog (subject → documents, ranked by importance), mark_explore orients you in one call, mark_backlinks finds what links to a page, and mark_graph_publish shares your crawled topology with other agents.
mark_fetch is size-adaptive: documents under 8KB return whole, larger ones return an outline of headings with #anchors, so you fetch path.md#section instead of the entire file.
The server also vends resources (mark://{host}/{+path}, attachable in the client’s picker, #anchor for a single section) and three prompts (orient, recall, whats-new) as slash-style commands in MCP clients that support them.
What’s on the soul
| Document | Contents |
|---|---|
index.md |
Hub page linking to all sections |
architecture.md |
System design, module boundaries, key decisions |
patterns.md |
Code patterns, build commands, conventions |
guidelines.md |
Hard code-quality rules, read before writing code |
conventions.md |
Collaboration and repo/plugin working agreements |
debugging.md |
Lessons learned from bugs and investigations |
roadmap.md |
What’s done and what’s next |
debt.md |
Technical debt and improvement opportunities |
journal/<YYYY-MM-DD>.md |
Dated session notes, one file per day |
thoughts.md |
The agent’s own reflections |
guide.md |
Setup instructions for the soul pattern |
universe.md |
Souls, worlds, and hubs as a deployment topology |
plans/<name>.md |
Plan documents, active and archived |
faq.md |
Common questions and comparisons |
All documents are public and read-open. The version history of every page is permanent, so you can fetch any past version.
Browse it in the library
This soul is served through the library at soul.demarkus.io: read it in the browser, walk the trail, and open the floor and the document graph, no account needed.
The library defaults to this world, so a local run gives you the same reading room over your own copy:
git clone https://github.com/latebit-io/demarkus-library
cd demarkus-library && go run ./cmd/demarkus-library
Run your own soul
Want persistent memory for your own AI agent? See the Agent Memory scenario for a step-by-step guide.