On Board exposes 28 MCP tools. Most work starts with memory_onboard.
memory_onboardPrimary entry point for every agent session. Joins the project and returns compact current context: collision check, latest handoff summary, tickets, pinned critical memory, and next commands.
Use when: starting work, returning after /compact, or recovering from NOT ON BOARD.
Common fields:
agent_name: stable identity, such as dev-main or tester-codexagent_platform: claude-code, claude-desktop, cursor, codex, antigravity, windsurf, or otheragent_role: main, lead, planner, worker, tester, reviewer, reporter, subagent, or utilityRole guidance:
main: primary human-facing agent for the project/sessionlead: orchestrates a track or group of agentsplanner: breaks work into tickets/specsworker: implements a tickettester: verifies behavior/evidencereviewer: approves/rejects submitted workreporter: writes reports/release notessubagent: narrow helper spawned by another agentutility: small cleanup/support taskTicket control uses roles. main, lead, and reviewer can cancel or
terminate stuck tickets when the original creator is gone. Other roles can
still cancel their own tickets, and a claimed agent can cancel its claimed work.
task_focus: short description of the current taskmode: kept for compatibility; call memory_get_briefing directly when you need brief, normal, deep, or handoff-only context.memory_agent_joinLower-level join call. Use only if you already have the briefing and need to rejoin before writes or ticket mutations.
memory_get_briefingRead project context without necessarily joining.
Useful modes:
brief: fast catch-upnormal: regular session contextdeep: more historyhandoff-only: recent handoff contextmemory_checkpointWrite a mid-work checkpoint. Use every 10-15 minutes during long work.
Include summary, remaining tasks, branch, and blockers.
memory_handoffFinish a session cleanly. Write what changed, what remains, warnings, and touched files.
After handoff, rejoin with memory_onboard before calling more write/ticket tools.
memory_writeWrite durable project memory after meaningful actions.
Memory types:
decisionprogressblockercontexthandofftodofile_changediscoverywarningcheckpointUse related_files, related_tickets, and tags when they help the next agent search.
Critical memory:
priority=3 for critical decisions, warnings, or blockers.priority=3 is auto-pinned and gets a compact pinned_summary for onboard/briefing views.content is still stored in full.memory_readRead recent memory. Supports filters by type, tag, agent, time window, and limit.
Common use:
memory_read({"since_minutes": 30, "limit": 20})
memory_searchRanked keyword search over active memories.
Use when looking for prior decisions, known bugs, or previous work on a file.
memory_search_vectorLocal vector-style search over memory text. It is optional and local-first.
Use normal memory_search first unless semantic matching is specifically useful.
memory_linksShows linkage between memories, tickets, agents, and files.
Useful filters:
ticket_idagent_namefileinclude_archiveTickets are the cross-agent workflow layer. They live as files under .agent-mem/tickets/.
Basic lifecycle:
open -> claimed -> in_progress -> submitted -> reviewing -> closed
Rejected tickets reopen with fix instructions instead of dying.
memory_create_ticketCreate work for another agent.
Required fields:
agent_name: creatortitle: short titledescription: capped at 5000 charstarget_url: file or web URL the executor needsscope: READ-ONLY, interactive-no-send, or interactiverequired_fields: artifacts the submitter must returnOptional fields:
assigned_topriorityforbiddenselector_hintstagsrelated_filesmemory_claim_ticketClaim a ticket before doing the work. Use this so other agents do not duplicate the same task.
memory_submit_ticketSubmit completed work for review.
Include summary, changed files, and reviewer notes.
After submit, rejoin with memory_onboard before doing more ticket work.
memory_review_ticketApprove or reject a submitted ticket.
Use verdict="approve" when evidence is good.
Use verdict="reject" with concrete fix_instructions when work needs another pass.
After review, rejoin with memory_onboard before doing more ticket work.
memory_list_ticketsList open tickets by default. Can filter by status or assignee, and can include closed/rejected tickets.
memory_cancel_ticketCancel a ticket that should no longer be done.
memory_terminate_ticketForce-terminate a ticket. This is destructive and should be rare.
memory_initInitialize .agent-mem/ for a new project.
Use once per project.
memory_bootstrapBootstrap memory for an existing project by scanning common project files, git history, directory structure, and config files.
Use this instead of memory_init when adopting an existing repo.
memory_statusQuick status report: project, agents, memory counts, and latest activity.
memory_doctorChecks setup health and common data problems.
Use after setup, after strange agent behavior, or before blaming the model.
memory_update_stateWrite small project state values, such as current phase, owner, or default workflow notes.
memory_context_dirsList external context directories configured with AGENT_MEM_CONTEXT_DIRS.
memory_context_readRead a file from configured context directories.
Use this for docs/specs that should not live inside the project repo.
memory_token_usageEstimate memory size and briefing token cost.
Use when briefings are getting too long.
memory_prepare_compactionPreview old memories that can be compacted.
This does not modify files.
memory_compactArchive older raw memories after a digest exists.
Recommended flow:
memory_prepare_compaction()
memory_write(memory_type="context", title="Digest: ...", content="...")
memory_compact()
memory_search_archiveSearch archived raw memories after compaction.
For normal coding work:
memory_onboard(...)
memory_read({"since_minutes": 30})
memory_write(...) # after meaningful discovery/change
memory_checkpoint(...) # long sessions only
memory_handoff(...)
For delegated work:
memory_create_ticket(...)
memory_claim_ticket(...)
memory_submit_ticket(...)
memory_review_ticket(...)
If an agent loses context, starts repeating work, or claims it cannot see prior decisions, run:
memory_status()
memory_get_briefing({"mode": "brief"})
memory_search({"query": "the topic or file name"})