# Agent Integrations

> Connect Ditto memory to CLI-first agents like OpenClaw and Hermes, or use the MCP server with MCP-capable tools.

---

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](/docs/agent-native-signup) |
| Ditto CLI                                             | Local command surface for agent skills    | [Ditto CLI](/docs/ditto-cli)                     |
| OpenClaw                                              | ClawHub skill that calls the Ditto CLI    | [Connect Ditto to OpenClaw](/docs/openclaw)      |
| Hermes Agent                                          | Hermes skill tap that calls the Ditto CLI | [Connect Ditto to Hermes Agent](/docs/hermes)    |
| Codex, Claude, Cursor, Antigravity, other MCP clients | Remote MCP server                         | [Ditto MCP Server](/docs/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](/docs/ditto-cli) exposes the memory operations an agent needs while keeping auth local:

- `npx -y @heyditto/cli search` for semantic memory search
- `npx -y @heyditto/cli fetch` for retrieving specific memories
- `npx -y @heyditto/cli save` for durable preferences, decisions, and facts
- `npx -y @heyditto/cli subjects` for subject lookup
- `npx -y @heyditto/cli memories` for memory previews scoped to a subject
- `npx -y @heyditto/cli network` for related memories and subject context
- `npx -y @heyditto/cli status` for 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](/docs/ditto-cli) when you need standalone install, auth, verification, or command reference details.

## Preferred Auth Flow

For CLI-first agents, start with:

```bash
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](/docs/agent-native-signup#name-the-agent).

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](/docs/agent-native-signup) for the full flow and security details.