# Quickstart

Four steps from nothing to a model that remembers. You need a Remiq API key and your server's address.

## 1. Get a key

In the Console, open **API keys** and make a key for your server. Keys start with `prism_`. Keep the key on your server: code that runs on a user's device uses a short-lived user token instead (see [Basics](/docs/basics/)).

Put both in the environment, never in your code:

```
export PRISM_API_KEY=prism_...
export PRISM_URL=https://<your Remiq address>
```

## 2. Pick a client

- **Python:** `prism_client.py`, one file, standard library only.
- **TypeScript:** `sdk-ts/prism.ts`, no dependencies (it uses the global `fetch`).
- **Anything else:** plain HTTPS and JSON, as in the cURL tab below.

## 3. Save, then get the context

```python
import os
from prism_client import Prism
p = Prism(os.environ["PRISM_API_KEY"], os.environ["PRISM_URL"])
p.add("We moved the Atlas launch to Friday.", user="alice")
ctx = p.context("When is the Atlas launch?", user="alice")
messages = [{"role": "system", "content": ctx["instructions"]},
            {"role": "user", "content": ctx["context"] + "\n\nWhen is the Atlas launch?"}]
```
```typescript
import { Prism } from "./prism";
const p = new Prism(process.env.PRISM_API_KEY!, process.env.PRISM_URL!);
await p.add("We moved the Atlas launch to Friday.", { user: "alice" });
const ctx = await p.context("When is the Atlas launch?", { user: "alice" });
```
```bash
curl -s "$PRISM_URL/v1/context" -H "Authorization: Bearer $PRISM_API_KEY" -H "Content-Type: application/json" \
  -d '{"user": "alice", "query": "When is the Atlas launch?"}'
```

## 4. Give the context to your model

Put `instructions` in your system prompt and `context` in the user turn, or return it as a tool result. Ask your model to cite the `[M…]` ids it used.

Memory is data, not orders. Never paste memory text into your system instructions.

## Next

- Retrying a save? Send an `Idempotency-Key` (one UUID per message): [Retries and idempotency](/docs/retries/).
- Documents, events and bulk imports: [Saving](/docs/saving/).
- Token budget, follow-ups and tasks: [Search and context](/docs/search-and-context/).
- Building with Claude Code or Cursor? Copy the [setup prompt](/setup-prompt.md) into your coding agent: it wires the steps above into your app.
