# Make Ditto Part of Your AI Workflow

> Teach Claude, Codex, Cursor, Gemini CLI, Copilot, or ChatGPT when to recall and save Ditto memories across your daily work.

---

Connecting the [Ditto MCP server](/docs/mcp-server) gives an assistant memory tools. A persistent instruction tells it when to recall context and save a useful checkpoint, so you do not have to mention Ditto in every prompt.

## Copy This Instruction

Add this block to your assistant's persistent or project instructions:

```text
Use Ditto as my long-term memory when it is relevant, not on every turn.

- Before substantive work involving my projects, people, preferences, decisions,
  or commitments, search Ditto for relevant context and the latest checkpoint.
  Fetch the full memories you rely on.
- Save only durable outcomes: confirmed decisions, meaningful milestones,
  changed project state, resolved blockers, commitments, stable preferences,
  corrections, and the next useful step.
- Save the outcome, not a transcript. Skip drafts, raw logs, temporary values,
  facts already clear from project files, secrets, and credentials.
- Avoid duplicates. Update an existing memory when it has changed instead of
  creating a competing version.
- Never publish, share, or delete a memory unless I explicitly ask. Briefly tell
  me what you saved or updated.
```

If you prefer review before every write, append: `Before calling save_memory or update_memory, show me the proposed memory and wait for approval.`

## Set Up Your Assistant

First [connect Ditto](/docs/mcp-server) at `https://api.heyditto.ai/mcp`, then paste the instruction above into the location for your assistant:

| Assistant                  | Persistent instruction                                                                                                                                                        | Connect Ditto                                                                                                                                                              |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Claude.ai / Claude Desktop | Settings → Instructions for Claude, or project instructions ([guide](https://support.claude.com/en/articles/10185728-understanding-claude-s-personalization-features))        | Customize → Connectors → Add custom connector ([guide](https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp))               |
| Claude Code                | `~/.claude/CLAUDE.md` or project `CLAUDE.md` ([guide](https://code.claude.com/docs/en/memory))                                                                                | `claude mcp add --transport http --scope user ditto https://api.heyditto.ai/mcp` ([guide](https://code.claude.com/docs/en/mcp))                                            |
| OpenAI Codex               | `~/.codex/AGENTS.md` or project `AGENTS.md` ([guide](https://learn.chatgpt.com/docs/agent-configuration/agents-md))                                                           | `codex mcp add ditto --url https://api.heyditto.ai/mcp`, then `codex mcp login ditto` ([guide](https://learn.chatgpt.com/docs/extend/mcp?surface=cli))                     |
| Cursor                     | Settings → Rules → User Rules, or `.cursor/rules/*.mdc` ([guide](https://docs.cursor.com/context/rules-for-ai))                                                               | Settings → MCP → add a remote server ([guide](https://docs.cursor.com/context/model-context-protocol))                                                                     |
| Gemini CLI                 | `~/.gemini/GEMINI.md` or project `GEMINI.md` ([guide](https://github.com/google-gemini/gemini-cli/blob/main/docs/cli/gemini-md.md))                                           | `gemini mcp add --scope user --transport http ditto https://api.heyditto.ai/mcp` ([guide](https://github.com/google-gemini/gemini-cli/blob/main/docs/tools/mcp-server.md)) |
| GitHub Copilot in VS Code  | `~/.copilot/copilot-instructions.md`, `.github/copilot-instructions.md`, or `AGENTS.md` ([guide](https://code.visualstudio.com/docs/agent-customization/custom-instructions)) | Command Palette → MCP: Add Server ([guide](https://code.visualstudio.com/docs/agent-customization/mcp-servers))                                                            |
| ChatGPT (plan-limited)     | Settings → Personalization → Custom Instructions ([guide](https://help.openai.com/en/articles/8096356-custom-instructions-for-chatgpt))                                       | Developer mode → add a custom MCP app ([limits](#chatgpt-plan-limited))                                                                                                    |

Complete Ditto OAuth when prompted. Use a global instruction for all work and a project instruction when the memory workflow should stay scoped to one project.

### ChatGPT (plan-limited)

Custom MCP availability differs by plan:

Check whether your plan and workspace allow custom MCP apps and write tools. If your connection exposes only read/fetch tools, use it for recall; saving checkpoints requires a client with memory-write tools enabled.

See OpenAI's [Developer mode and MCP apps](https://help.openai.com/en/articles/12584461-developer-mode-and-mcp-apps-in-chatgpt) documentation for current availability.

## What Good Use Looks Like

1. **Start with context.** On substantive work, the assistant searches for the project's latest checkpoint, decisions, and your established preferences before planning.
2. **Save at real milestones.** It records decisions, resolved blockers, handoffs, or end-of-session state—not every command or aside.
3. **Resume cleanly.** A later assistant can retrieve the saved state, fetch the full memory behind the relevant result, and continue with less re-explaining.

## Privacy and Control

- Ditto sends memory content only when the assistant calls a read tool. Returned content is then handled under that provider's data policies.
- Memory writes are real actions. Use a read-only key or require approval before `save_memory` and `update_memory` if you want tighter control.
- Saving is private by default. Publishing, sharing, and deletion are separate actions.
- Prefer OAuth. If you use API keys, create one per client at [assistant.heyditto.ai/mcp](https://assistant.heyditto.ai/mcp), and never place it in an instruction file or repository.

If Ditto is never used, confirm the server and instruction are enabled, then ask once: `Search Ditto for the latest checkpoint on …`