Openclaw
/install demarkus
Setup
First, ask the user: local server or remote server?
- Local — install and run demarkus on this machine (default)
- Remote — connect to an existing demarkus server (the user must provide the server URL and a write token)
Option A: Local Server
Check if already installed:
which demarkus
If not found, install the full stack (client, server, MCP binary, daemon):
curl -fsSL https://raw.githubusercontent.com/latebit-io/demarkus/main/install.sh | bash
Store the token and register demarkus-mcp with mcporter:
if [ "$(uname)" = "Darwin" ]; then
TOKEN=$(cat ~/.demarkus/initial-token.txt)
else
TOKEN=$(sudo cat /etc/demarkus/initial-token.txt)
fi
demarkus token add mark://localhost "$TOKEN"
mcporter config add demarkus \
--command demarkus-mcp \
--arg -host --arg "mark://localhost" \
--arg -insecure \
--scope home
Option B: Remote Server
Ask the user for:
- The server URL (e.g.
mark://soul.example.com) - A write token (the server admin provides this)
Install the client binaries (no server, no daemon):
curl -fsSL https://raw.githubusercontent.com/latebit-io/demarkus/main/install.sh | bash -s -- --client-only
Store the token and register demarkus-mcp with mcporter:
demarkus token add SERVER_URL USER_TOKEN
mcporter config add demarkus \
--command demarkus-mcp \
--arg -host --arg "SERVER_URL" \
--scope home
Replace SERVER_URL and USER_TOKEN with the values from the user.
Verify
mcporter list demarkus --schema
For a quick test:
mcporter call 'demarkus.mark_fetch(url: "/index.md")'
About mcporter
- When command
mcporterdoes not exist, usenpx -y mcporterinstead. - https://github.com/steipete/mcporter/raw/refs/heads/main/docs/call-syntax.md
- https://github.com/steipete/mcporter/raw/refs/heads/main/docs/cli-reference.md
Tools
demarkus.mark_fetch— read a documentdemarkus.mark_publish— write or update (fetch first, use returned version as expected_version)demarkus.mark_append— append content, no fetch requireddemarkus.mark_list— list documents and directoriesdemarkus.mark_versions— full version historydemarkus.mark_discover— fetch the server's agent manifestdemarkus.mark_graph— crawl links and build a graphdemarkus.mark_backlinks— find what links to a document
Usage
# Fetch a document
mcporter call 'demarkus.mark_fetch(url: "/index.md")'
# List documents
mcporter call 'demarkus.mark_list(url: "/")'
# Append to journal
mcporter call 'demarkus.mark_append(url: "/journal.md", body: "## 2026-03-10\
Session notes here.")'
# Publish a document (fetch first to get version)
mcporter call 'demarkus.mark_publish(url: "/thoughts.md", body: "# Thoughts\
New content.", expected_version: 3)'
The Soul Pattern
Persistent memory across sessions. Your soul is a collection of markdown documents — a journal, thoughts, architecture notes, debugging lessons — that survive across conversations.
On every new session:
mcporter call 'demarkus.mark_fetch(url: "/index.md")'— orient yourself- Do the work
mcporter call 'demarkus.mark_append(url: "/journal.md", body: "...")'— record what happened
Journaling
Use demarkus.mark_append to record session notes, key decisions, and what you learned. Each entry should include a date and a brief summary. This is your running log — append freely, never overwrite.
Thoughts and Reflections
Use demarkus.mark_publish to store your own reflections, open questions, and ideas. Unlike the journal (which is append-only), thoughts can be rewritten as your understanding evolves. Always fetch first to get the current version.
Recommended Structure
/index.md — hub page linking to all sections
/journal.md — session notes and evolution log (append-only)
/thoughts.md — your reflections, ideas, open questions
/architecture.md — system design and key decisions
/patterns.md — code patterns, conventions, workflow
/debugging.md — lessons from bugs and investigations
/roadmap.md — what's done, what's next
Use demarkus.mark_append for journals and running notes — cheaper than fetch + republish.
Never publish without fetching first — the server enforces optimistic concurrency.
Security and Privacy
- Token handling: The installer writes a random token to
~/.demarkus/initial-token.txt(macOS) or/etc/demarkus/initial-token.txt(Linux). The setup script stores this token in the demarkus token store viademarkus token addso it stays out of config files and long-running process args. The MCP binary resolves tokens from the store at runtime and sends them only to the configured Mark server. - MCP bridge: mcporter spawns
demarkus-mcpvia stdio. No tokens appear in mcporter's config — they are resolved from the demarkus token store at runtime. - Network: The install script downloads binaries from
https://github.com/latebit-io/demarkus. The server listens on all interfaces (:6309) — on Linux the installer opens UDP 6309 via ufw when available. In remote mode, the user provides the server URL explicitly. - Data storage: All documents are stored locally on disk (local mode) or on the user-specified remote server. No data is sent to third parties.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install demarkus - 安装完成后,直接呼叫该 Skill 的名称或使用
/demarkus触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Openclaw 是什么?
Persistent agent memory and versioned markdown documents over the Mark Protocol (mark://). Use when asked to remember something across sessions, fetch or pub... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 339 次。
如何安装 Openclaw?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install demarkus」即可一键安装,无需额外配置。
Openclaw 是免费的吗?
是的,Openclaw 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Openclaw 支持哪些平台?
Openclaw 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(darwin, linux)。
谁开发了 Openclaw?
由 Fritz (Fredrick Seitz)(@ontehfritz)开发并维护,当前版本 v1.1.0。