Docs
Own your context. Carry it between agents.
Choose your own storage, connect an agent, then save one chat. The rest of this guide explains handoff, resume, retrieval, skills, sharing, and commands.
Get started
Storage, then an agent, then one saved chat.
About two minutes.
- 1StorageChoose GitHub or Google Drive
- 2AgentRun two terminal commands
- 3SaveType one line in the agent
Choose where your context lives
Pantheon does not keep any of your data. You do, in a GitHub repo or a Google Drive folder.
- GitHub — a private repo for code and product work.
- Google Drive — a visible Pantheon Vault folder for writing, research, and design.
Connect your agent
Run these in your terminal, then reload Cursor, Claude, Codex, or Windsurf.
npm install -g pantheon-cli@latestpantheon connect <pairing-code> --host https://www.pantheonvault.spaceOverview gives you the second command with your code already filled in. Needs Node.js 20 or newer.
Using Grok Bot or Replit? Open Agent setup.
Save a conversation
Type this in the agent chat, not the terminal. The name you pick is the space. First save creates it.
/pantheon-handoff my-projectContinue later, in any connected agent
/pantheon-resume my-projectAsk one question from the archive
No need to resume first. Paste an ID such as cursor-session#25994 into Context search to open that turn and its surrounding conversation.
/pantheon-retrieve my-project Why did we choose this approach?How Pantheon works
Every agent starts empty. Pantheon stores a conscience — the real conversation, the durable facts, and the files you made — in your selected vault. Developers can use a private GitHub repository; writers, researchers, designers, and product teams can use a Pantheon Vault folder in Google Drive. A project conscience is called a space: a short name you choose, like preorders or annotation-design.
Agent A
/pantheon-handoff
Your vault
private GitHub or visible Drive folder
Agent B
/pantheon-resume
This is not a transcript copier. Handoff archives the conversation verbatim and writes a distilled packet on top of it — the packet is a layer, never a replacement. Hand the same chat off twice and only the new turns are added; hand off a different chat and it joins the space as another session. Nothing a space has ever held is overwritten.
Your context belongs to you
Your provider vault is the source of truth—not a backup or export. Pantheon's database stores account and pairing records plus the credentials needed to connect to your vault, but never your conversations, memories, decisions, or artifact contents.
Developer · GitHub
A temporary broad token creates one private repository and is immediately revoked. Ongoing GitHub App access is restricted to that vault.
Creator · Google Drive
The drive.file scope creates and accesses the visible Pantheon Vault folder and its files, not the rest of your Drive. No GitHub installation is required.
Plain, inspectable files
Both vaults contain readable files. GitHub provides Git history; Drive provides its own file activity and version behavior.
Provider refresh credentials are encrypted before server storage. Hosted operations process vault files temporarily and do not create a second conversation-content database. See the privacy page for exact scopes, processing, cache, and revocation details.
Disconnect and deletion
Disconnecting erases your Pantheon account, paired machines, tokens, and provider access. A Google Drive vault folder is retained by default; deleting it requires an explicit checkbox. GitHub keeps its existing choice to retain the repository or delete it together with the account.
Disconnecting does not pretend to recall copies another person exported. Revoked shared spaces disappear from their managed local cache on the next sync. Review all details under Settings → Account.
Context continuity
A context window is temporary working memory. Context continuity is the system property that carries the state of the work across a fresh chat, a model switch, or a different agent application—and reconstructs only the part the next task needs.
Outside the model
The conversation, decisions, files, and reviewed lessons persist in your vault after the active context disappears.
Bounded on resume
The next agent receives a compact packet and a complete map rather than spending its window on the whole archive.
Evidence remains openable
A summary points back to addressable sessions, turns, tool calls, and artifacts instead of becoming the only surviving account.
Portable across agents
The conscience is stored independently of one model and exposed through the same MCP retrieval tools to supported desktop clients.
Long context stores more tokens inside one run. Continuity preserves the project when that run ends. The research page reviews the evidence from long-context and long-term-memory benchmarks and documents Pantheon's design boundaries.
Resume and retrieval
Resume does not pour the archive into the model — that would spend the context window it is trying to save. It hands over a complete map and lets the agent fetch what it needs. That map is synthesized orientation, not exact evidence, so project-state and decision claims still resolve to archived turns before the agent presents them as verified history.
handoffThe space packet: current and earlier summaries, stored files, and the latest fourteen spoken turns across sessions.
memoryEvery durable fact ever saved to this space, appended across all handoffs.
storyPackets from earlier handoffs, oldest first, so the narrative outlives any single session.
sessionsEvery archived conversation with its turn count and dates. Each id opens directly.
turnsHow many turns the whole space holds — not just the session the packet describes.
artifactsFile names across every session. The actual bytes are fetched on demand with pantheon_get_artifact.
For one historical question, you do not need to resume the whole conscience first. This shortcut refreshes the space, ranks connected evidence from every session, verifies the strongest exact turns, and answers with session_id#turn_id citations:
/pantheon-retrieve my-project Why did we reject the first navigation layout?Every historical answer includes an Evidence line. Each returnedevidenceId uses the same session_id#turn_id format; paste it into the Context search box to open that exact turn, its surrounding conversation, and the highlighted source.
Empty queries, sync status, and handoff receipts are operational results, not historical claims. They report their status without inventing an evidence citation.
Retrieval is bounded: the agent may make at most two narrower follow-up queries when evidence is incomplete. Every natural-language question starts with pantheon_retrieve, even when you are asking for an unknown name, file, command, or quote. pantheon_search is only for exact text you supplied or retrieval already discovered. If an agent sends a question to search anyway, Pantheon automatically routes it through ranked retrieval.
sessions and story are what stop a thin handoff hiding a long project. handoff.md is written for the space rather than the last chat — its totals, its stored files, its most recent turns wherever they happened — so ten minutes of tidying cannot overwrite the account of a month’s work. Resume also reports the total turn count across the space and names every conversation in it, so the agent knows the rest exists and can open it.
When the packet does not cover what you are asking about, the agent searches rather than guessing. pantheon_search reads tool calls as well as messages — a file is findable by name even if nobody typed that name in prose — and takes a context window so a hit comes back with the turns around it. From a hit it can widen with pantheon_get_turns or read a whole conversation with pantheon_get_session.
If a resumed agent says it has no context for something you know you discussed, ask it to search the space. Missing context is nearly always unsearched rather than unsaved.
Skills
A skill is a lesson this project already learned, written down so the next agent starts with it. Memory is fetched when an agent goes looking; resume hands over every promoted skill's name and trigger, then the agent fetches the body only when the work matches. That is the whole difference, and it is why there are never many.
When a successful handoff adds turns, the agent compares recurring signals with existing live and draft lessons, reads the cited turns, and batch-saves at most five justified drafts without interrupting you. Run this command to review again at any time:
/pantheon-skills my-projectSkills walkthrough
Review evidence, promote a draft, and watch the next agent apply it.
What it reads: the corrections you had to repeat across conversations, the commands that recur across sessions, and any failure that hit more than once. It also checks your AGENTS.md and README, and will not write something they already say.
The strongest evidence usually is not in the vault at all. Most agents record which tools they called but not what came back — Cursor writes no tool results to disk — so what a command actually printed when it failed exists only in the live conversation. That is why the review runs during handoff, where the agent can weigh what it saw alongside what was stored.
You approve on the space page
The agent writes at most five drafts without interrupting the chat. A draft is inert and given to no agent until you promote it; discard anything that did not earn its place.
A lesson is recorded once
Review exposes existing live and draft triggers before writing. The vault also refuses repeated names, candidate keys, triggers, and bodies instead of quietly creating another copy.
Every claim cites its source
A skill records the sessions and turns it came from, and the vault refuses to save a citation that does not resolve to a real turn. You can open the moment and judge it yourself.
Twelve live skills per space
Resume carries each promoted skill's name and trigger. The agent fetches its body only when the work matches, and promoting a thirteenth is refused rather than silently dropping another.
Drafts wait on the space's own page in this app, under Skills, with the turns each one cites listed beside it. Promote one and every future resume of that space names it; retire it and it stops being served. An agent reads the guidance itself with pantheon_get_skill when it is about to work in an area a skill covers — resume only carries the names and triggers, so an unopened skill costs a line rather than a page.
Pantheon Notes
The web notes editor is coming soon. The Notes page is paused until it ships. Context — spaces, handoff, resume, and retrieval — is unchanged.
Data fidelity: what gets saved
Every handoff starts in server-controlled auto mode. Pantheon captures highest-fidelity history only through a verified adapter for the calling client. If none is available, it asks the agent to retry automatically with every conversation turn still visible in its context.
Handoff capture
Automatic: Cursor · Claude Code · Codex · ChatGPT.app
Agent-supplied: Claude Desktop · Windsurf · Replit · Grok Bot · Web/mobile
- Visible user and assistant turns
- Stored word for word
- Recorded tool activity
- Included when available
- Files made during the chat
- Captured or attached
- Older turns outside the context window
- Marked truncated
Every handoff tries safe automatic capture first. If the calling client has no verified adapter, Pantheon asks the agent to supply its visible transcript automatically—without asking you to export or copy anything.
A model-supplied transcript can omit older turns that have already fallen outside the client's context window, and may not include hidden tool activity. Pantheon marks that boundary instead of presenting it as local capture.
Supported apps
Every listed integration supports handoff, resume, direct ranked retrieval, and exact search. Pantheon chooses the safest available source at runtime: verified local capture first, then an agent-supplied visible transcript.
Remote clients discover Pantheon's OAuth 2.1 sign-in automatically. Authorization uses browser consent, PKCE, short-lived access tokens, rotating refresh tokens, and an account-bound MCP resource. Static bearer tokens remain available for clients that support custom headers but not MCP OAuth.
Cursor
Handoff supportedpantheon connect writes ~/.cursor/mcp.json (Windows: %USERPROFILE%\.cursor\mcp.json)
Reload MCP, then type /pantheon-handoff <space> in a new chat.
Claude Code
Handoff supportedWrites ~/.claude.json and ~/.claude/commands/pantheon-*.md (same paths under %USERPROFILE% on Windows)
Restart Claude Code so the slash commands load.
Claude Desktop
Handoff supportedWrites Claude Desktop mcpServers (macOS Application Support or Windows %APPDATA%\Claude). Launches Node directly — no bash.
Fully quit and reopen after install. Claude supplies the conversation visible in its current context automatically.
ChatGPT.app / Codex
Handoff supportedWrites ~/.codex/config.toml (Windows: %USERPROFILE%\.codex\config.toml). On macOS also writes ChatGPT.app's shared MCP file when that app exists.
Use the new ChatGPT.app (Chat or Codex), not Classic. Settings → MCP servers, then /mcp in a new chat.
Windsurf
Handoff supportedWrites ~/.codeium/windsurf/mcp_config.json when that folder exists
Cascade supplies the conversation visible in its current context automatically during handoff.
ChatGPT Classic
Not local MCPNo local MCP config. OpenAI left this as the legacy chat app.
Local stdio MCP lives in ChatGPT.app / Codex. Classic cannot start pantheon-mcp, so /pantheon-spaces will guess.
Replit Desktop
Handoff supportedConnects through an account-bound HTTPS MCP URL in Replit Desktop's synced MCP Servers settings.
Replit supplies the visible transcript automatically. After switching Pantheon accounts, replace the Pantheon URL and token in Replit Desktop so a stale connection cannot target the previous vault.
Grok Bot
Handoff supportedThe native macOS and Windows app adds Pantheon as a public HTTPS MCP server through its in-chat Add MCP server flow, then signs in through standard MCP OAuth.
Grok Bot's computer and connectors run in the cloud, so pantheon mcp-install cannot write this account-wide connector locally. Use Settings → Agent setup → Grok Bot, click Authenticate, and approve the Pantheon account in your browser.
OAuth-capable remote clients
Handoff supportedAdd the account-bound Pantheon HTTPS endpoint. The client discovers Pantheon's authorization server and opens browser sign-in automatically.
OAuth access tokens are short-lived, refreshable, and bound to the approved client, account, vault, and MCP resource. Static bearer-token setup remains available for clients without MCP OAuth.
The complete desktop instructions live at the top under Get started, so there is one setup sequence to follow. After changing any MCP configuration, reload MCP or restart the app before the first handoff.
ChatGPT.app and Codex share ~/.codex/config.toml. ChatGPT Classic is the legacy app and cannot start a local MCP server.
Command reference
Type these to a connected agent. Behind each one is a pantheon_* tool the model calls; if those tools are missing it should say so rather than invent spaces.
/pantheon-handoff <space>Archive the real back-and-forth, attach the files that thread produced, then persist it. Every handoff ends with HANDOFF RESULTS: complete or incomplete status, turns, tool calls captured, artifacts, potential decision and open-issue signals, destination, integrity, and ready-for-resume status. Skipped files stay visible while the conversation remains safe. Repeating the same chat adds only new turns. First handoff creates the named space.
/pantheon-resume [space]Refresh the vault, then load evidence-backed Project State, the latest packet, durable memory, earlier handoffs, every archived conversation, and stored files. If you omit the name, Pantheon selects only when one owned space exists. With multiple spaces, task wording orders the real choices and asks rather than guessing. Historical claims resolve to exact archived turns before the agent presents them as verified.
/pantheon-resume-note [note]Load one standalone Markdown note into the current chat — title, body, linked highlights, and attachments. Notes are not a space. Omit the name to list exact titles, then ask which to open. Agents must not invent a nearby document.
/pantheon-retrieve <space> <question>Answer one question from the entire space without running resume first. Pantheon refreshes storage, ranks a bounded evidence packet, opens the strongest exact turns, and always returns supporting evidence IDs in session_id#turn_id form. Paste any ID into Context search to open that exact turn and its surrounding conversation. Natural-language questions always use retrieval first—even when asking for an unknown name, file, command, or quote. Exact search is only for a literal already supplied or discovered.
/pantheon-park <space>Archive turns or files into that conscience without rewriting the latest packet, then push. A new name is allowed — park can create the space.
/pantheon-remember <space> <fact>Save one durable fact on that conscience, then push. Does not dump the chat. A new name is allowed.
/pantheon-spacesList consciences from the vault. The agent must call pantheon_list_spaces and show only that result. It must not invent names from memory.
/pantheon-skills <space>Re-run the post-handoff skill review for a space. The agent checks recurring corrections, procedures, and failures against existing lessons, then batch-saves up to five justified drafts. Approve or reject them on the space page.
/pantheon-helpShow the Pantheon guide inside the agent.
Naming spaces
A space is the short name you give a conscience. Letters, numbers, dots, underscores, hyphens — one token, not a sentence.
- Handoff, park, remember — if you typed the name, the agent calls the tool. First write creates the space. It must not say the space “still needs to be created.”
- Resume — existing spaces only. If you omit the name the agent lists live spaces and asks which one; if the name is not in the vault it should say so rather than pick a neighbour.
- /pantheon-spaces — the live vault list and nothing else. Never memory, this chat, or another app.
Files
If the chat produced a PDF, letter, CV, or spreadsheet, handoff attaches it as an artifact. Naming a .pdf without attaching it is rejected, so a space never promises a file it does not hold. Desktop agents pass an existing local path, agents without a shared filesystem can pass a downloadable HTTPS URL, and inline base64 remains a fallback. Pantheon never needs the agent to regenerate or convert a file for handoff. Named code fences are stored automatically.
Resume lists file names without loading their bytes into the context window. When one is needed, pantheon_get_artifact returns the actual file as an MCP resource. A local desktop agent can instead restore it into the current workspace with save_to; Pantheon confines the destination to that workspace and will not overwrite an existing file.
Host it yourself
The control plane is a Next.js app backed by Postgres. It stores accounts, tokens, and paired machines — never a separate archive of conversation content, which lives in the user's GitHub or Drive vault. GitHub uses a revoked one-time creation token and a repository-scoped App installation; Google uses encrypted refresh credentials and the drive.file scope.
- Create a Supabase project and copy the Transaction pooler URI — port 6543, not the direct connection, which resolves to IPv6 only.
- Put it in DATABASE_URL, then create the schema. Tables live in a dedicated pantheon schema so Supabase never exposes them through PostgREST.
cd apps/webpnpm db:migrate- Set NEXT_PUBLIC_APP_URL to your HTTPS origin before building — it is compiled into the client bundle, not read at runtime.
- Point the GitHub App callback to https://your-domain/api/github/callback and the setup URL to https://your-domain/api/github/setup.
- On Vercel, set the root directory to apps/web and leave “include files outside the root directory” on — the app depends on workspace packages, so the install has to run at the repo root.
Confirm it came up. A green check here means Postgres is reachable, not merely that HTML is being served.
curl https://your-domain/api/healthFree Supabase projects pause after about a week of inactivity, so point an uptime check at that endpoint — it runs a real query, which keeps the project awake.
Troubleshooting
Open the one that matches what you are seeing.
Does Pantheon access all my GitHub repositories?
The one-time vault creation authorization requests GitHub's repo scope, creates pantheon-vault, and immediately revokes that token without storing it. Ongoing access uses the GitHub App: choose Only select repositories and select only the vault. Installations that can see every repo are refused.
Can Pantheon read everything in my Google Drive?
No. Creator setup requests exactly the drive.file Drive scope. Pantheon can create and access its visible Pantheon Vault folder and files it creates or you explicitly open with Pantheon, not browse the rest of your Drive.
The agent lists spaces that do not exist
It is answering from memory because the Pantheon tools are not attached — either MCP is not connected, or you are in ChatGPT Classic, which cannot start one. Ask the agent what it actually has before trusting the list.
/mcpA handoff saved a summary instead of the real thread
Update Pantheon and reload the MCP client. Every handoff must start in auto mode; if safe capture is unavailable, the agent retries with every real user and assistant turn still visible—not a recap. Pantheon rejects obviously thin summaries. Older turns outside the model's context are marked truncated.
It refuses a space name I just made up
First handoff creates the space; there is no separate create step. Tell the agent to call the tool rather than check a list first.
pantheon_handoffHandoff mentions a PDF and then errors
Naming a file without attaching it is rejected on purpose, so a space never promises something it does not hold. Attach the existing file by local path or downloadable HTTPS URL and retry; inline base64 is only the fallback. Do not regenerate a new file for the handoff.
command not found: pantheon
Apps launched from the dock often start without your shell's PATH. Use the npx config, which needs nothing installed, or point the config at the absolute path.
which pantheonHandoff captured the wrong conversation
Pantheon normally selects the session whose latest human message contains the handoff command, then falls back to the most recently recorded session. Every receipt reports the last message it read. If that is ever wrong, list the sessions on this machine, retry with the correct sessionKey, then delete the wrong archive because an unrelated transcript misleads every later resume.
pantheon_local_sessionspantheon_forget_sessionWhat happens when Pantheon cannot read the host chat log?
Every handoff first asks Pantheon to use a verified capture adapter for the calling client. If there is no adapter or the matching history cannot be found, Pantheon asks the agent to retry with every real user and assistant turn still visible in its context. It never scans an unrelated app's newest chat. The retry is automatic—no export, file path, or copy/paste step for the human. Older turns outside the context window are marked truncated instead of invented.
I switched accounts. Can an old remote agent write to the previous vault?
Yes, until access is revoked from that previous account or the account is deleted. Every OAuth grant and static token stays bound to the account and vault that approved it, so an old connector can never write to your newly selected vault—but it can continue writing to the previous one. Reconnect Grok Bot from the new account's Agent setup page. For a bearer-token integration such as Replit Desktop, replace its URL and token; rotate the previous account's static token if that access should stop immediately.
A resumed agent says it has no context for something we discussed
The packet covers the whole space, but it is a summary — the detail of an older conversation is in the archive rather than in it. Ask one conceptual question directly with /pantheon-retrieve <space> <question>; no separate resume is required. Pantheon ranks bounded evidence, verifies exact turns, and cites them. Questions asking for an unknown filename, path, command, or quote also start with retrieval. Use pantheon_search only when you already have the exact literal to locate.
/pantheon-retrieve my-project Why did we choose this approach?What is a note, if I already have spaces?
The web notes editor is coming soon. A space remains the archive of work with an agent. When Notes ships, it will be standalone Markdown in notes/, not another conversation.
/pantheon-resume-note Interview highlightsVault sync failed
A handoff says so rather than pretending it worked, so nothing is silently lost. Check the app is reachable and retry with pantheon sync. GitHub vaults synchronize through Git; Drive vaults synchronize ordinary files through the Pantheon workspace endpoint.
pantheon syncReady to keep one?
Choose a private GitHub vault for development or a Pantheon Vault folder in Google Drive for knowledge work. Your context stays in readable files you control.
Choose your storage