For work that spans AI sessions

Pick up where the work actually left off.

Save what happened, what you decided, and what comes next. A fresh connected AI chat can read that record and continue without rebuilding the project context from scratch.

Use it on real work you’ll come back to. The record is explicit and inspectable, and it outlives the chat where the work happened.

Request alpha accessInstall locally · CLIInvite-only alpha · In the browser or on your machine
proof of use

mcue is used to build mcue: the site, Hub, and CLI continue from recorded closeouts and resume packets. The hosted alpha is intended to test that workflow with more people.

01 — THE CONTINUITY LOOP

Finish a session. Inspect the record. Start again.

A closeout captures the state of the work. A resume packet gives the next session bounded context from that record.

A session ends in an authored closeout. The closeout becomes an immutable lane checkpoint. The checkpoint updates the governed lane state. From that state mcue derives a bounded resume packet, and the next session resumes from it.A session ends in an authored closeout. The closeout becomes an immutable lane checkpoint. The checkpoint updates the governed lane state. From that state mcue derives a bounded resume packet, and the next session resumes from it.The next session reads a packet derived from saved work state. The full record remains available to inspect.
01 / Finish

Save where the work stands

Record the outcome, decisions, blockers, and next action through your connected agent, the browser, or the CLI.

02 / Inspect

Read the saved record

Check what was captured. Closeouts preserve the work episode; the current state makes the next action visible.

03 / Resume

Continue in a fresh session

Ask a connected client to resume the project. It reads the saved state before taking the next step.

You control access

Restrict or revoke any client

AI apps you connect can save to your own projects. In Hub, restrict any client to read, or revoke it.

02 — TRUST MODEL

Know what was saved, and who can change it.

Explicit writes, inspectable records, and access you control. Local use remains complete without an account.

✓

Explicit saves

Closeouts record the outcome, blockers, and next action at a clear write boundary.

✓

Permissioned access

An AI app you connect can read and save to your own projects. Restrict any client to read, or revoke it, from Hub.

✓

Human-readable state

Markdown and YAML you can inspect, diff, and repair by hand.

✓

Your source stays untouched

mcue holds operating state, nothing more.

✓

Local or hosted

Keep state on your machine, or make it available to connected clients through Hub.

03 — WHERE YOUR STATE LIVES
invite-only alphahosted or local

One work record. Local or hosted.

Keep state on your machine, or use hosted state from connected AI apps while your computer is offline. Start in the browser with alpha access; the CLI can join later.

01

Create a project

Start in the browser with alpha access, or publish an existing local project.

02

Connect your AI app

Follow the MCP setup guide for your client. Once you sign in, it can read and save to your projects.

03

Save the work state

Record what happened, what is unresolved, and the next action.

04

Resume in a fresh chat

Ask a connected client to read the project’s saved state before continuing.

On your machine

Start locally, without an account.

  • CLI and local MCP
  • Offline operation
  • Full state model and reconciliation
  • BYO-S3 remote path
  • Licensed Apache-2.0
Hosted

Reach your state through connected apps.

  • Accepted event ordering
  • Persistent hosted MCP
  • Create a project in the browser
  • Lane-level sharing, read-only by default
  • Private · invite-only alpha · proprietary service
The Hub dashboard, showing per-project re-entry signals and the resume queue.Inspect your projects and their next actions in the Hub.
Streamable HTTP endpointhttps://api.mcue.dev/mcp
invite-only alpha

Hub is open to a small number of accounts while it is proven in daily use.

Request alpha access
04 — INSTALL

Start in the browser, or install the CLI.

During the alpha, your invite carries both: Hub access, and a personal key that unlocks the CLI download. Once installed, closeout and resume work offline without an account.

no install · invite-only alpha

Start in the Hub

Create a project in your browser, then connect your AI app. No CLI installation required.

Request alpha access
macOS · Linux · alpha download key

Install the CLI

curl -fsSL https://mcue.dev/install.sh | MCUE_DOWNLOAD_KEY=<your-key> sh

Use the key from your invite. Download page for Windows and direct binaries.

05 — QUESTIONS

Before you start.

The practical details of saving work and picking it up again.

Do I need both Hub and the CLI?

No. Start in the browser with Hub, or install the CLI and work locally, with no account. They are ways to work with the same mcue state model. You can connect them later.

How is this different from chat memory?

mcue keeps an explicit work record: objective, outcome, blockers, decisions, and next action. You can inspect that record and read it through connected clients. It complements your AI app’s memory rather than relying on a transcript to reconstruct the project.

Does an agent need my approval for every save?

No. An AI app you connect can write closeouts to your own projects. The mcue access rules ask an agent to propose each closeout and save it when you confirm, but mcue does not enforce a separate approval prompt for every save. To stop a client saving, restrict it to read or revoke it in Hub.

Can I try it without an invite?

Not yet. During the alpha, both routes start with an invite: Hub access for the browser, and a personal download key for the CLI. Request access and you get both. Once installed, the CLI works offline without an account.

Which AI apps can use it?

Compatible MCP clients can connect to mcue. Local and hosted connections have different setup requirements; the Getting Started guide covers the available paths. Cross-app continuation requires each client to be connected and authorized.

Does mcue store my code or replace my project tools?

mcue stores work state, not your source repository. Keep code, documents, and tasks in their existing tools, and record pointers to the artifacts the next session needs. A project can also begin without a repository.

Read the Getting Started guide →

06 — DEVELOPERS · AGENTS

Your agent should read the state before it reads the code.

For coding agents, add the mcue access rules to your repository. Local and hosted MCP share the core read and write tools; follow the setup guide for the connection your client supports.

mcue agents-snippet
## mcue access rules

This project uses [mcue](https://github.com/ck46/mcue) for its
operating state — current objective, blockers, next action, resume
pointer, and checkpoint history. mcue is a local-first CLI and its
state is file-backed under `~/.mcue/`.

**Agents working on this project must access mcue only through the
CLI or (when available) the MCP read surface. Do not read or edit files
under `~/.mcue/` directly.**

### Start here, every time

Before any project work, recover context from mcue. This is the first
step at the start of a chat, again after your context is compacted or
reset, and again whenever the operator switches project or workstream.
It applies to **every kind of request** — a review, a fix, an
explanation, a question about a named file, a new idea — not only to
"where were we". The one exception is an explicit operator instruction
to skip it. Reading instruction files and discovering your tools first
is fine; searching the repository for the answer is not.

1. **Find the project.** A project the operator names wins. Otherwise
   start from the cwd: `mcue review` with no id resolves the `.mcue`
   footprint there. If neither settles it, `mcue index` lists every
   project — pick the one the operator is talking about, not the one you
   saw last.
2. **Discover its lanes.** `mcue review <project-id>` lists the active
   lanes by name with each one's next action. Lanes are streams of work,
   not branches; the list is dynamic, so read it rather than assuming.
… 271 more lines — read the full snippet
Copy carries the complete snippet. Paste into AGENTS.md or CLAUDE.md; also served at /agents-snippet.md.
the tool surface8 tools · same locally and hosted
resumereadFetch a bounded resume packet for a project lane
project_statereadRead current governed project state
indexreadThe derived portfolio view across projects
checkpoint_latestreadRead the most recent checkpoint
checkpoint_historyreadList checkpoint headers newest first, without bodies
closeoutwriteWrite a checkpoint and advance governed state
initwriteCreate a project with project state, decisions log, and default lane
lane_createwriteCreate a named operating lane inside a project
what it looks like in practice

youpick up where we left off on payments-api

agentcalling resume — project_id: payments-api…

agentYou were wiring refunds to the ledger. Their client keys on UUIDs and ours are ULIDs, so every retry double-posts — you were waiting on Sam to say whether the ledger team would change the format. Resume at internal/ledger/client.go:88; TestRefundRetry is still red. Want me to start there?

The agent reads state before it reads code. That is the whole integration.
07 — DEVELOPERS · CLI

Closeout and resume from the terminal.

Three commands cover the loop, and the state they write is plain Markdown and YAML you can inspect.

zsh · ~/work/payments-api
$mcue init payments-api --name "Payments API"register a project, anchored to this directory
$mcue closeout payments-apicapture intent, outcome, next action, and resume pointer
$mcue resume payments-apire-enter with a bounded context packet
~/.mcue/registry/projects.yaml · projects/<id>/lanes/<lane>/lane_state.md · checkpoints/<timestamp>.md
Inspectable state. Your source stays where it is.

A local closeout, and the context it gives the next session.

mcue closeout payments-apifive questions
Intent what you set out to do
Wire refunds to the ledger.
Outcome what happened, including what did not work
Ledger client assumes idempotency keys are UUIDs; ours are ULIDs, so every retry double-posts.
Blockers what is in the way, concretely
Whether to change our key format or wrap the client.
Next action small enough to start cold
Ask Sam which one the ledger team will support.
Resume pointer the file, the branch, the failing test
internal/ledger/client.go:88, TestRefundRetry fails
mcue resume payments-apithree weeks later

Resume: payments-api

Lane: default

Objective: Ship refunds end to end.

Next: Ask Sam which one the ledger team will support.

Blockers: Key format undecided: change ours, or wrap the client.

Resume at: internal/ledger/client.go:88, TestRefundRetry fails

Clarity: high | Cost: low | Fresh: fresh | Trust: high

Last Session Intent

Wire refunds to the ledger.

Last Session Outcome

Ledger client assumes idempotency keys are UUIDs; ours are ULIDs, so every retry double-posts.

~180 / 1000 tokens — the cap is the point
the cue to resume

Your project state should survive the session that created it.

Request alpha access