Setup
Set up Zanei with native integration or printed instructions for manual placement.
Zanei ships one canonical skills/SKILL.md. zanei setup installs it unchanged for every agent that runs the CLI. For MCP, setup prints the registration command to run; only Claude Desktop’s config file is written directly, and opencode’s MCP JSON is printed for manual configuration.
zanei setup --agent <claude|codex|opencode|hermes|pi|claude-desktop> [--scope project|user] [--print]
See the setup CLI reference for flag semantics.
Per-agent setup
zanei setup --agent claudeThis installs the canonical SKILL.md unchanged where Claude Code discovers skills, and prints the MCP registration command to run:
claude mcp add zanei -- zanei mcpClaude Code installs the skill at .claude/skills/zanei/SKILL.md for project scope and ~/.claude/skills/zanei/SKILL.md for user scope.
zanei setup --agent codexInstalls the canonical SKILL.md unchanged at ~/.codex/skills/zanei/SKILL.md and prints the MCP registration command to run:
codex mcp add zanei -- zanei mcpor in Codex’s config.toml:
[mcp_servers.zanei]
command = "zanei"
args = ["mcp"]Codex skills and MCP registration are user-global, so setup always targets ~/.codex/ regardless of --scope.
zanei setup --agent opencodeopencode reads Agent Skills natively, so the command installs the canonical SKILL.md unchanged:
$XDG_CONFIG_HOME/opencode/skills/zanei/SKILL.md # --scope user
.opencode/skills/zanei/SKILL.md # --scope projectXDG_CONFIG_HOME falls back to ~/.config when unset, matching opencode’s own lookup.
MCP stays manual, because opencode mcp add is an interactive wizard with no non-interactive flags. Add the entry below to opencode.json yourself:
{
"mcp": {
"zanei": { "type": "local", "command": ["zanei", "mcp"] }
}
}zanei setup --agent hermesHermes Agent has first-class skills and MCP, both user-global under ~/.hermes/. Setup installs the canonical SKILL.md unchanged at ~/.hermes/skills/zanei/SKILL.md and prints the MCP registration command to run:
hermes mcp add zanei --command zanei --args mcpor in ~/.hermes/config.yaml:
mcp_servers:
zanei:
command: "zanei"
args: ["mcp"]Because Hermes Agent configuration is user-global, --scope project does not apply here; setup always targets ~/.hermes/.
zanei setup --agent claude-desktopClaude Desktop’s chat cannot run zanei on your Mac, so MCP is its surface. The command registers the server in claude_desktop_config.json:
{
"mcpServers": {
"zanei": {
"command": "zanei",
"args": ["mcp"]
}
}
}This covers the chat surface only. For Claude Code running inside the same app, run zanei setup --agent claude.
Claude Desktop setup always targets claude_desktop_config.json regardless of --scope.
zanei setup --agent pipi reads Agent Skills natively, so the command installs the canonical SKILL.md unchanged:
~/.pi/agent/skills/zanei/SKILL.md # --scope user
.pi/skills/zanei/SKILL.md # --scope projectpi has no MCP support by design, so zanei mcp is not registered and the skill is the only surface.
For MCP-capable agents not listed above, register zanei mcp as a stdio server using the client’s standard MCP configuration; the JSON shape is the same as the Claude Desktop snippet.
Verify it works
- Make sure recording is on:
zanei status(agents can check this themselves viaget_status). - Ask your agent something like “check what I was working on in the last hour.”
- The agent should call
get_timeline(MCP) orzanei timeline(CLI) and answer from your actual activity.
If the agent reports that recording is off, run zanei start. If it exits with code 3, the recorder is running but needs permissions: grant them using its instructions, run zanei stop && zanei start, then verify with zanei doctor (see the permissions guide).