# Developer Quickstart

> Choose MCP, the Ditto CLI, or the app platform, then verify memory across two sessions.

---

Start with the interface your project needs. Connecting an AI client to Ditto memory is different from building an app that requests access to a user's data.

## Choose Your Path

| What you are building                           | Start here                                          | Authentication                               |
| ----------------------------------------------- | --------------------------------------------------- | -------------------------------------------- |
| An existing AI client that recalls Ditto memory | [MCP client setup](/docs/mcp-server)                | Follow the client's OAuth or key setup guide |
| A terminal-based agent                          | [Ditto CLI](/docs/ditto-cli)                        | Agent-native signup or an existing key       |
| An app for other Ditto users                    | [Build apps on Ditto](/docs/building-apps-on-ditto) | App credentials and user-approved scopes     |
| An agent with separate project memory           | [Dedicated graphs](/docs/dedicated-graphs)          | A key scoped to that graph                   |

## Connect a Client

For MCP, the endpoint is:

```text
https://api.heyditto.ai/mcp
```

Use the [client-specific instructions](/docs/mcp-server) to connect and authorize access. Keep credentials out of source control and chat transcripts.

For CLI-based agents, follow [agent-native signup](/docs/agent-native-signup). That flow creates an account and returns a claim link for its human owner. It is not necessary if you already have a connected MCP client.

## Verify Save and Recall

Use harmless sample information in a test graph or account. These instructions create a real memory when you run them.

1. Ask your connected assistant: `Save a test memory: Project Cedar uses a Tuesday review meeting. Mark it as quickstart test data.`
2. Check that the tool reports success. Inspect the saved memory in Ditto rather than relying only on the assistant's reply.
3. Open a new conversation using the same authorized graph. Ask: `Search Ditto for Project Cedar's review day, fetch the matching memory, and show me what it says.`
4. Confirm it retrieves Tuesday from the stored record. If nothing appears, check the selected graph, read/write permissions and the save result.
5. Delete only your test memory when you finish. Revoke temporary credentials you no longer need.

Once this works, add the [memory workflow instruction](/docs/ai-assistant-memory-workflow) so the assistant knows when to recall context and when to save a useful checkpoint. Connecting a client alone does not guarantee that every conversation is saved.

## Build With User Permissions

For a multi-user app, read these in order:

1. [Create an app and manage its keys](/docs/building-apps-on-ditto).
2. [Choose the permissions your app requests](/docs/app-permissions).
3. [Understand cross-app sharing](/docs/cross-app-data-sharing).
4. [Use separate graphs for isolated workloads](/docs/dedicated-graphs).

The app-building guide points to the Developer settings' **API docs** action for the endpoint reference. Use that reference for exact request and response schemas; MCP tools, CLI commands and app-management endpoints are different interfaces.

## Understand the Memory Model

- [Memory network](/docs/memory-network): inspect related context and its sources.
- [Graph sharing](/docs/knowledge-graph-sharing): decide who can access a graph.
- [Agent accounts](/docs/agent-accounts): manage agents and their access.

Framework-specific compatibility needs its own tested setup. The [framework outlines](/developers/frameworks) are in preparation, not a claim that every framework or SDK is supported.