Skip to main content

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

ParameterTypeRequiredDefaultDescription
namestringYesPlan name (unique identifier for upsert)
summarystringNonullShort one-line summary of what this plan tracks
bodystringNonullMarkdown body content. Replaces existing body entirely on update
statusstringNo"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

StatusMeaning
activeWork is ongoing
pausedTemporarily on hold
completedWork is finished
archivedNo 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.