Ditto can live inside the agents you already use. The right setup depends on how the agent integrates with outside tools.
Choose Your Path
| Agent or tool | Integration type | Start here |
|---|---|---|
| Any CLI-first agent that can run a shell command | Agent-native signup with local CLI auth | Agent-Native Signup |
| Ditto CLI | Local command surface for agent skills | Ditto CLI |
| OpenClaw | ClawHub skill that calls the Ditto CLI | Connect Ditto to OpenClaw |
| Hermes Agent | Hermes skill tap that calls the Ditto CLI | Connect Ditto to Hermes Agent |
| Codex, Claude, Cursor, Antigravity, other MCP clients | Remote MCP server | Ditto MCP Server |
OpenClaw and Hermes do not connect to Ditto as MCP clients. They install a skill that invokes the Ditto CLI. The CLI talks to Ditto’s API, stores or reads the same memory graph, and can now self-provision a temporary claimable account with one command.
What The CLI Gives Agents
The Ditto CLI exposes the memory operations an agent needs while keeping auth local:
npx -y @heyditto/cli searchfor semantic memory searchnpx -y @heyditto/cli fetchfor retrieving specific memoriesnpx -y @heyditto/cli savefor durable preferences, decisions, and factsnpx -y @heyditto/cli subjectsfor subject lookupnpx -y @heyditto/cli memoriesfor memory previews scoped to a subjectnpx -y @heyditto/cli networkfor related memories and subject contextnpx -y @heyditto/cli statusfor verifying auth and endpoint access
After a global install, use heyditto <command> instead. Avoid relying on ditto on macOS because it collides with Apple’s built-in /usr/bin/ditto file-copy utility.
Use the dedicated docs for the exact install commands, API key flow, and troubleshooting steps for each agent. Use Ditto CLI when you need standalone install, auth, verification, or command reference details.
Preferred Auth Flow
For CLI-first agents, start with:
npx -y @heyditto/cli init --agent --agent-caller "NAME_OF_AGENT" --json
# or: bunx @heyditto/cli init --agent --agent-caller "NAME_OF_AGENT" --json
Set --agent-caller to the agent’s name (or a name the human has chosen). It is set once at init and labels the agent’s saved memories, so pick it up front — see Agent-Native Signup.
That gives the agent a working local key stored in CLI config and a claimURL to hand to the human owner. The CLI should not print the generated key. The human claims the account later without changing the key the agent already uses.
See Agent-Native Signup for the full flow and security details.