update_plan
Plans are persistent markdown documents that survive across sessions and AI providers. Use them to track multi-step efforts, record architectural decisions, and coordinate work between sessions.
Upserts by name: if a plan with the given name exists, it’s updated. Otherwise a new one is created. Read plans back with get_entity(type="plan", name="...").
Parameters
| Parameter | Type | Required | Default | Description |
|---|
name | string | Yes | — | Plan name (unique identifier for upsert) |
summary | string | No | null | Short one-line summary of what this plan tracks |
body | string | No | null | Markdown body content. Replaces existing body entirely on update |
status | string | No | "active" | One of: active, completed, archived, paused |
Read-only
No. This tool writes to your memory.
Example usage
Creating a new plan:
{
"name": "auth-refactor",
"summary": "Refactor auth to PKCE flow",
"body": "## Steps\n- [ ] Design schema\n- [ ] Implement endpoints\n- [ ] Update client SDK\n\n## Decisions\n- Using RS256 for JWT signing",
"status": "active"
}
Updating progress:
{
"name": "auth-refactor",
"body": "## Steps\n- [x] Design schema\n- [x] Implement endpoints\n- [ ] Update client SDK\n\n## Decisions\n- Using RS256 for JWT signing\n- Client SDK will use refresh token rotation"
}
Completing a plan:
{
"name": "auth-refactor",
"status": "completed"
}
Workflow
1. update_plan(name="auth-refactor", ...) → create the plan
2. get_entity(type="plan", name="auth-refactor") → read it back in a future session
3. update_plan(name="auth-refactor", body="...") → update as work progresses
4. update_plan(name="auth-refactor", status="completed") → mark done
Use list_entities(type="plan") to browse all plans.
Write plan bodies as self-contained documents. Any agent — even from a different AI provider — should be able to read it cold and understand the full state of the effort. Include context, decisions made, and what’s left to do.
Plan statuses
| Status | Meaning |
|---|
active | Work is ongoing |
paused | Temporarily on hold |
completed | Work is finished |
archived | No longer relevant, kept for history |
The body parameter replaces the existing body entirely on update. Always include the full plan content when updating, not just the changes.