Most catch-up tooling diffs on a timestamp, which quietly breaks the moment history is rewritten. Here the git delta is anchored on the exact sha recorded when the previous session ended; if that sha becomes unreachable after a force-push, it falls back to a timestamp and says so in degraded_reasons rather than presenting a wrong answer as a right one. The same honesty shows in the gap label — a gap over fourteen days comes back marked stale with a hint to re-verify rather than trust the stored next steps. Nothing here calls a model or touches the network: it is local git subprocesses and a local database.
Project memory for an assistant, held in a SQLite database on your own machine at ~/.mindpm/memory.db. It tracks tasks, decisions with their rejected alternatives, notes, key-value context and sessions, and serves a Kanban board on http://localhost:3131 alongside the tools.
- A session that opens with an orientation rather than a blank slate: start_session returns the last session's next steps, active tasks, blockers and recent decisions, and end_session records what was accomplished and what comes next.
- A read-only brief of what changed while you were away — commits, branch and working-tree state, task status changes, new blockers, decisions and notes — without opening a session (get_session_brief).
- Tasks with status, priority, blockers and sub-tasks, plus two queries that answer the actual question: what should be worked on next, and what is blocked and by what (create_task, update_task, list_tasks, get_task, get_next_tasks, get_blockers).
- Decisions recorded with the reasoning and the alternatives that were rejected, tagged and listed back later (log_decision, list_decisions).
- Notes for architecture, bugs, ideas and research findings, and key-value context for conventions, config values and constraints (add_note, search_notes, set_context, get_context).
- Ranked full-text search across tasks, notes and decisions for a project, using FTS5 (search).
- Project-level views: a full status overview, a high-level summary of tasks by status with recent activity and upcoming priorities, and DORA-inspired delivery metrics covering throughput, lead time and flow efficiency (get_project_status, get_project_summary, get_delivery_metrics).
- The project record itself, including the local git repository path the brief needs in order to report commits (create_project, list_projects, set_project_repo_path).
- A read-only SQL escape hatch for questions the other tools do not cover — SELECT statements only (query).
- The recommended usage instructions, so you can hand the same conventions to another client (get_agent_instructions).
Node — `npm install -g mindpm` — and nothing else: no account, no key, no network. The database lives at ~/.mindpm/memory.db unless MINDPM_DB_PATH says otherwise, and every client you configure shares it, so you can switch tools mid-project. MINDPM_PORT moves the Kanban board off 3131. Git activity in the brief needs the repository path registered against the project; without it the brief still reports the task, blocker and decision delta.
One command — npx -y mindpm
