session_startLABSCO SUMMARY
Automatic beats explicit, and that is the whole argument.
Memory tools that wait for a remember call collect what you thought to save, which is rarely what you needed. Hanging the work on lifecycle hooks means the context appears before you ask, and the compaction handover covers the one gap that hurts most — everything you explained in the first hour, gone at the compact. Local storage keeps it free and private; the trade is that the quality of what gets injected depends on the classifier, so expect to prune occasionally.
What it is
A local memory server for coding agents, paired with five lifecycle hooks that do the remembering automatically. On session start it injects the project state, recent sessions, commits and decisions; on compaction it writes a handover; on exit it extracts commits, decisions and error-fix pairs from the transcript. Claude Code, Codex CLI and Gemini CLI share one local database, so context carries between them.
What you get
- Automatic injection rather than a
remembercall — theSessionStart,UserPromptSubmit,PostToolUse,PreCompactandStophooks each do one job, and none of them need a command from you - A compaction handover: before the context is compressed, the working state, hot files and last build status are carried across
- Session tools for when you want them —
session_start,session_end,session_historyandsearch_sessionsfor semantic search over past work - A classified memory store —
memory_storetags each entry as observation, decision, learning, error or pattern;memory_searchreturns an index first andmemory_getfetches the body, so a large store does not flood the context - A knowledge graph over those memories —
graph_connectlinks two with a typed relation such as solves or causes,graph_explorewalks it,memory_relatedmixes graph and semantic neighbours - An error archive that fills itself:
solution_record,solution_findandsolution_suggest, fed automatically when a Bash command fails and is later fixed - Task tracking and verification —
task_add,task_update,task_list,task_suggestfrom TODO comments, plusverify_build,verify_testandverify_all - Feature toggles in a plain JSON config, with an environment override per feature for one-off runs
Requirements
Node.js and a global install of the npm package passbaton, version 2.1.3, which registers the MCP server and the hooks for whichever agents it finds. WORKSPACE_ROOT, MCP_HOOKS_DISABLED, LOG_LEVEL and LOG_FILE are all optional; without WORKSPACE_ROOT it uses the nearest monorepo root, the repository root or the current folder. Everything is stored in a local SQLite database with a full-text index and local embeddings — no API key, no network call, no per-token cost. Codex file-change tracking is not wired yet, and Gemini's session-start injection is advisory in the upstream CLI, so on that client the continuity comes from saved history rather than injected context.
Setup effort
One command — npm install -g passbaton
USE CASES
Picking up yesterday's work without re-explaining it
The session opens with the current state, recent commits and the decisions behind them already in view.
Surviving a context compaction
The handover carries the working state, hot files and build status through the compression.
Not solving the same error twice
A failing command is matched against the archive and the previous fix is surfaced with it.
Finding a decision you made weeks ago
Search past sessions and memories semantically, then pull the full entry once you have the right one.
Carrying context between different agents
Work done in one CLI is available in the next, because all of them read one local database.
25 tools
Listed in project docs. Your client may show a different list.
session_endsession_historysearch_sessionsproject_statusproject_initproject_analyzelist_projectstask_addtask_updatetask_listtask_suggestsolution_recordsolution_findsolution_suggestverify_buildverify_testverify_allmemory_storememory_searchmemory_getmemory_relatedmemory_statsgraph_connectgraph_exploreBEFORE YOU INSTALL
What to know first
Tools you get
25 tools named in the project's documentation.
Requires
npx on PATH
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
npm install -g passbatonMCP Clients
Claude Code
{
"mcpServers": {
"project-manager": {
"command": "npx",
"args": [
"passbaton"
]
}
}
}