Recall is in public beta: the free tier needs no card. Get a key
RECALL AI
For coding agents · also at /llms.txt
Loading…

long-term memory
for AI agents.

Save what your agent learns, find it with no model in the loop, and let newer facts supersede older ones. One API, an MCP server, a CLI and a TypeScript SDK.

Install Recallor paste into your agent ↓
npm install @recall-ai/sdk

Works with

Features

Your coding agent saves what it learns once. Recall keeps the source, the facts in it, and a summary of the project, for every tool you code in.

Notes

Tell Claude Code “we switched from npm to pnpm” and that note supersedes the old one. Open Cursor the next day and it installs with pnpm. The npm note stays as history, never as an answer.

Files and pieces

Save a README or bring in a GitHub repo. Each file is split into pieces, and every piece remembers its file, so Codex can show where an answer came from.

About

Core facts plus changing facts for each repository. Claude Code and OpenCode get them when a session starts, so your agent knows the project before you explain it.

How it works

Saving and finding take no AI, so your agent never waits. AI runs only during Sync, in the background, to keep what Recall knows current.

YOUR TOOLSClaude CodeCursorCodexOpenCodeCLI · SDKRECALL APIKey or loginRealm isolationUsage limitsRate limitsSAVEinstant · no AISplit piecesEmbedRules: notesFINDmilliseconds · no AIFull textVectorsRank, citeSYNCbackground · AI · new / supersedes / repeatNew notesFind nearbyDecideYOUR REALMFilesPiecesNotesConnectionsAboutAbout and relevant notes go back to your agent as contextMCP · REST · hooks
01

Save

Your text is split into pieces, embedded and findable within seconds. Facts become notes by rules, with no model call.

queued → extracting → chunking → embedding → done
02

Sync

In the background, per realm, a language model asks one question about each new note: new, superseding an older one, or a repeat. Capped by monthly sync credits.

new · supersedes · repeat
03

Find

Find combines Postgres full-text and vector search over notes and pieces. No model call, so it stays fast and cheap.

hybrid · notes · pieces

Quickstart

Create a key in the console, then save and find. A realm is created the first time you save to it. That's the integration.

import { Recall } from "@recall-ai/sdk";

const recall = new Recall({ apiKey: process.env.RECALL_API_KEY!, baseUrl: "https://<your-host>" });

await recall.save("user_42", "I moved to Toronto last month and I prefer Python.");
const { results } = await recall.find("user_42", "where does the user live?");

CLI

Save, find and remove notes from your terminal or a script. Sign in once with recall login; every other command is refused until you do. Inside a project it uses the same realm as your coding agents. Add --realm <name> to pick another one, or --json for scripts.

npm install -g @recall-ai/cli

recall login                # opens your browser
recall status               # account, realm and usage
recall connect my-project   # link this folder to a realm

Plugins

One memory for every tool you code in. Claude Code, OpenCode, Cursor and Codex all use the realm project-<repo folder>, so a decision made in one is remembered in the others. Each adds the MCP tools recall_save and recall_find; Claude Code and OpenCode also bring in and save notes on their own. Sign in once with npx @recall-ai/cli login. Source

# 1. sign in once (opens your browser)
npx @recall-ai/cli login

# 2. in Claude Code: recalls the project at session start and with each prompt,
#    keeps learning as the conversation grows, adds the Recall tools
/plugin marketplace add Ravicodess/Recall-AI
/plugin install recall@recall-ai

Benchmark

Measured by us, on our own published eval set. No borrowed numbers.

CheckResult
Exact recall@5 on our 50-case eval90%
Supersede accuracy, background step on10/10
Cross-tenant leaks, every endpoint tested0
Restore drill: same answers after restore100/100
Language-model calls when you Find0

Pricing

Start free. Limits are per calendar month. Paid plans open soon.

Prosoonopens with paid billing
  • 250K API requests
  • 25K files
  • 2M pieces
  • 125K finds
  • 2.5M sync credits
Scalesoonopens with paid billing
  • 2M API requests
  • 250K files
  • 20M pieces
  • 1M finds
  • 25M sync credits
Enterprisesoonopens with paid billing
  • 100M API requests
  • 100M files
  • 1B pieces
  • 100M finds
  • 1B sync credits

Frequently Asked Questions

Short answers.

Does Find call a language model?

No. Find is Postgres full-text plus vector search. A model only runs during Sync, in the background, to decide which notes supersede which.

What happens if the model is down?

Saving and finding keep working; Sync retries later. Until it runs, a new note and an old one can both appear as current.

Where is my data stored?

In Postgres with pgvector, on Supabase, in a single region. We don't train models on it. Sync sends new notes to our language-model provider to decide which ones supersede which.

Can I delete everything?

Yes. Delete files, and remove notes by id or by meaning, with a dry run first. Deleted content can no longer be found.

Can I self-host Recall?

No. Recall is a hosted service, so you never run a database or a queue.

Is there an SDK?

Yes, for TypeScript: npm install @recall-ai/sdk. Any other language can use the plain JSON API.

Get Started

Give your agent a memory today.

start now for free