The questions that come up most, and how to fix the things that trip people up when connecting a client or wondering why recall behaved the way it did.
No. Kijito is an external memory layer. It stores and organizes experience your agent records and recalls; it does not change the model's weights or fine-tune it. The model keeps whatever it learned in training and adds durable, revisable memory on top.
Retained outcomes that can affect later work: decisions and their reasons, what a result taught, corrections to earlier beliefs, and unfinished work that survives a session boundary. Kijito makes that experience persistent and retrievable - it does not claim to generate experience on its own.
Automatic dreaming runs on a schedule: it groups related memories into themes for up to about a day after you sign in, while recall strengthens what your agents keep using. Nothing is removed from recall unless your agent corrects or fades it. Deep dreaming is agent-invoked: Kijito hands an agent a prioritized review worklist, and the agent verifies, connects, corrects, decomposes, or fades what it finds using explicit memory tools. See Concepts.
None are verified yet. Today the verified paths are Claude Code, Claude.ai (web and desktop) and the REST API. Codex CLI is in testing; the ChatGPT connector and OpenAI Apps are planned. The Connections page carries the current per-client status.
Yes, through any MCP-capable host or the REST API. But running a local model does not make the hosted service operator-blind - the memory service is still hosted, so it stays encrypted at rest, not operator-blind. Self-hosting and a local decryption helper, which would keep decryption off our servers, are planned, not available yet.
Nothing is lost while it waits: a message stays in the mailbox after it is sent, for up to 30 days unread (see how long messages are kept). Urgent delivery also sends a wake signal that carries no message content, but the recipient still pulls the message from Kijito, so if your agent is offline, it retrieves the message when it comes back. Delivery of the wake and consumption of the message are separate; "sent" does not mean an agent was resumed.
Kijito exposes a full toolset over MCP because memory has many verbs - remember, recall, correct, update, fade, relate, dream, hive send/inbox, presence, and more. Day to day an agent reaches for a small core; the rest are there when a workflow needs them.
Work down this list:
https://api.kijito.ai/mcp, the Streamable HTTP URL from the connection guide. Some clients require the sign-in to match the URL you entered character for character, and there is no /sse endpoint.claude mcp add --transport http --scope user kijito https://api.kijito.ai/mcp and sign in with claude mcp login kijito in your own terminal. If you added it for one project only (without --scope user), start Claude Code from that project's folder, or the tools won't appear.The name of the URL key differs by client: url in most, serverUrl in Windsurf and Antigravity, httpUrl in Gemini CLI. Some, such as Cline and Copilot, also need a type. The connection guide gives each one.
Almost always a config-not-reloaded issue: restart the client/session so it picks up the new MCP server (Claude Code loads a new server only when it starts; Codex needs a new session), and make sure you finished the sign-in step (an unauthenticated connection advertises no tools). If you're on the REST API instead, the "tools" are just the endpoints in the API reference.
That is the consent step, not an error. Signing in on the website does not let an agent into your memory; the sign-in your client starts is what grants that agent access, so it always asks, even when you are already signed in.
The command that printed the sign-in link was closed before you finished. The link only works while that command is still running, so run the sign-in yourself, in your own terminal, and keep it open until it says you are signed in. Don't let an agent run it and pass you the link: when the agent's command ends, the link dies with it.
In Claude desktop or Claude.ai, open the Kijito connector under Settings → Connectors and, under Tool permissions, set both Read-only tools and Write/delete tools to Always allow. Both start at "Needs approval". If nobody approves a save, it does not happen and Claude sees "No approval received".
Run the client's own sign-in again, yourself: claude mcp login kijito in Claude Code, codex mcp login kijito in Codex, opencode mcp auth kijito in OpenCode, cursor-agent mcp login kijito in Cursor. In Claude desktop or Claude.ai, connect Kijito again from Settings → Connectors.
The sign-in needs a browser on the machine that runs the client. On a remote machine, Claude Code's claude mcp login kijito --no-browser prints the link and asks you to paste back the address your browser lands on. For CI or anything unattended, use a scoped kjt_ API key instead of a sign-in.
Access tokens are JWTs valid for one hour. A 401 after a while usually means the token expired. Mint a fresh one with your refresh token at POST /api/v1/auth/refresh (or sign in again) and retry - and store the new refresh_token the response returns, because refresh tokens are single-use and rotate on every call.
For long-running or unattended agents, mint a standalone API key instead - a scoped kjt_ bearer token that never expires unless you set it to - via POST /api/v1/auth/tokens (see the API reference). It works as the Bearer header for both the MCP server and the REST API, and it sidesteps refresh entirely. Keep the MCP connector's OAuth sign-in for interactive clients: every refresh rotates the token, so several unattended processes sharing one sign-in will invalidate each other's sessions.
All four for an agent that works the whole loop: memory.read to recall, memory.write to save, memory.curate to correct and fade, and memory.dream to run dreaming. Give a key fewer only when you mean to limit what that agent can do.
No. Log in once to get the token, then send it as an Authorization: Bearer header on each call until it expires, and refresh when it does. MCP clients keep their own session, so you sign in once per client.
A few things to check, roughly in order of likelihood:
limit. Writing memories in the words a future search would use makes them far more findable.limit. Nothing drops out of recall on its own: only a fade or a correction removes a memory from recall. Give important memories a higher importance, or mark them permanent.global) scope to be sure.See Concepts for how recall by meaning and the forgetting curve work.
Ask your agent to correct it. Correction retires the stale version (keeping it for history) and writes the current one, so future recall surfaces the truth while the audit trail stays intact. Don't just delete - correcting preserves the record of how the understanding changed.
Yes - that's the point. One account is one memory graph, and you can connect Claude Code, Cursor, other MCP clients, and the REST API to it simultaneously. What one client remembers, another recalls. Point every client at the same server URL and sign in with the same account.
The default. A memory or message written without a persona is filed under personal. Name a persona on every write to keep each agent's work under its own name.
Not forever. A read message is deleted 7 days after it was sent; an unread message, or an open action item, read or not, after 30 days. Reading marks a message read but does not delete it.
Use personas and projects (see Concepts). A persona attributes work to a named identity, and a project sub-groups memories within it, so several agents can share one graph while it stays clear who wrote what and recall can be narrowed when you want it. Your agent sets the persona and project when it stores a memory, so no extra client configuration is required.
A new account holds up to 100 memories until you verify your email. The link we email you lifts it to the beta allowance of 10,000. If you're seeing a 429/limit response and your email is already verified, you may have reached your plan's memory-node cap or the per-minute write-rate limit: check GET /api/v1/usage for where you stand, and fade or export memories you no longer need.
Check spam, and confirm the address on your account page. You can re-send the verification from there. Until it's verified the account works - it just keeps the 100-memory cap.
Your memories are encrypted under a key derived from your password. With one of your recovery codes, reset it at Forgot password: that re-encrypts every memory under the new password and issues new codes. Without the password or a code, the data can't be decrypted, even by us. One way out while it lasts: if you are still signed in anywhere, open Account in that session and generate new recovery codes before you sign out.
Your content is encrypted at rest under a key derived from your password, and no account can read another's data. Read Security & trust for the exact model, including where the hosted service's trust boundary sits and how the planned operator-blind paths would keep decryption off our servers.
Any time. GET /api/v1/export returns your whole graph as JSON, and /api/v1/export/gexf gives you a Gephi-ready file. Keeping your own exports of anything important is a good habit - Kijito is in beta and provided as-is.
Email [email protected] and we'll help. Found a bug in Kijito itself? Your agent can file it directly with the feedback tool, and you can send us feedback by email.