CheckpointOpen dashboard

One command, then a browser login

Docs

Checkpoint gives your AI coding agent persistent project memory: a state digest at session start, purpose-built verbs while you work, and a reconcile step at session end. Setup is one command and a browser login.

How it works

  • Session start: a Claude Code or Codex hook fetches your project's state digest — one dense, token-budgeted block covering current phase, where you left off, open bugs and questions, and recent decisions — and injects it before you type anything. Cursor loads the same digest through its project rule.
  • During the session: the agent logs builds, decisions, ideas, bugs, and questions over MCP as they happen.
  • Session end: the agent calls reconcile_session with a summary and an exact left-off line, which recomposes the digest for next time.
  • If the agent forgets: Claude Code and Codex use a session-end hook to send the session to Checkpoint, which distills and logs it automatically. Cursor cannot expose its transcript today, so its rule must complete the reconcile step.

Setup

  1. Run this inside the repository. The CLI supports Claude Code, Codex, Cursor, or several at once:

    npx checkpoint-memory-cli@latest init --origin https://checkpoint-silk.vercel.app
  2. Approve the browser login. The CLI creates or selects a permanent Checkpoint project before it installs MCP, instructions, and hooks. There is no API key to copy.

  3. Paste the prompt printed by the CLI into the first agent session. Fresh repositories get a planning interview; existing ones get a scan-and-import interview. Both prompts call initialize_project with the already-reserved project ID.

    See canonical prompt examples

    Fresh repository:

    Initialize Checkpoint project "My Project" (id: 00000000-0000-0000-0000-000000000000) for this new repository. Do not create another project. If we have not already agreed on the plan, interview me one question per message about what I am building, who it is for, and the outcomes it should deliver. Draft a feature map (name, one-sentence purpose, status, next step) from my answers and ask me to edit it; do not silently invent product requirements. Then call initialize_project for project id 00000000-0000-0000-0000-000000000000, save or draft a PRD for me to confirm, and call get_project_state with the same project id.

    Existing repository:

    Initialize Checkpoint project "My Project" (id: 00000000-0000-0000-0000-000000000000) from this existing repository. Do not create another project.
    
    1. Scan the repository structure, README, key configuration, and recent git history. Skim; do not read every file.
    2. Tell me briefly what you found, then interview me one question per message. Ask why I made 3–5 deliberate-looking choices, but never suggest or invent the reason. If I say "skip", record nothing for that choice.
    3. Propose the exact point where work was left off and a feature map: name, one-sentence outcome, cautious status, and next step. Treat every code-detected feature as a suggestion. Ask me to confirm or correct it; never call something Live just because code exists.
    4. After I confirm, call initialize_project for project id 00000000-0000-0000-0000-000000000000 with the agreed features. Preserve any historical work as optional legacy phases only when useful to this repository, record only decision reasons I actually gave, seed the confirmed left_off, and save a PRD based on the code plus my answers.
    5. Call get_project_state with project id 00000000-0000-0000-0000-000000000000 and show me the result.

Codex

Choose codex in the CLI. It configures shared MCP OAuth, writes the short protocol into AGENTS.md, and installs project hooks. Open /hooks once to review and trust them. Add another agent later with checkpoint agent add cursor.

Cursor

Choose cursor in the CLI. It writes the MCP server and always-on project rule. Cursor does not currently expose the transcript for automatic capture, so its rule makes reconcile_session the required session-end path.

Other MCP agents

Any MCP-capable agent works. Connect to https://checkpoint-silk.vercel.app/api/mcp over streamable HTTP — tools that support MCP authorization will open a browser login automatically. For tools without OAuth support (or headless use), pass an API key instead:

{
  "mcpServers": {
    "checkpoint": {
      "url": "https://checkpoint-silk.vercel.app/api/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_API_KEY>"
      }
    }
  }
}

Have the agent call get_project_state at session start and reconcile_session before ending. For hook-style integrations, the digest is also plain text at GET https://checkpoint-silk.vercel.app/api/state?project=<project-id> with the same Bearer auth.

Verb reference

get_project_stateThe state digest — call at session start (the hook does this for you).
list_projectsCompact list of your projects with status and current phase.
create_projectNew project in one call — confirmed features, decisions, and a PRD. Legacy phases remain accepted for existing agents.
suggest_feature / update_featurePropose a code-discovered feature for human confirmation, then keep confirmed feature status and next step current.
note_to_agentSave a trusted human note for the next agent session.
initialize_projectPopulate the permanent project ID reserved by CLI or dashboard onboarding.
log_buildRecord what got built this session — where it stopped, the options for next time, plus the commit SHA to anchor it to a code state.
update_phaseChange phase status, check off tasks, add tasks, set the current phase.
log_decisionRecord a settled choice with its rationale, marked yours or the agent's — yours bind, the agent's can be argued with.
add_ideaPark an idea so it stops occupying the conversation.
add_bugFile a bug with severity.
update_bugChange bug status or severity, or append a note.
add_questionRaise a question that needs a human answer.
resolve_questionAnswer an open question.
get_docFetch the PRD or any project doc.
update_docRewrite or append to a doc.
searchFull-text search across everything in a project.
reconcile_sessionSession-end protocol: summary, where it stopped, what to pick between next, commit SHA, completed tasks — one call.

Limits & your data

  • Rate limits: 120 requests/min per connection on the MCP endpoint, 60/min on the state endpoint — far above what a working session needs.
  • API keys are stored as SHA-256 hashes and shown exactly once. Revoke any key instantly from Settings.
  • Projects are isolated per account; every verb is scoped to the key's owner.
  • Your data is plain text by design — the digest and every doc are readable via the API whenever you want them out.