Rather than treating the CRM as a form to fill in, the `summary` field is a dossier the assistant reads before a meeting and rewrites afterwards with new facts and preferences — which is the one piece of CRM hygiene humans reliably skip. Pasting `AGENT.md` into your project instructions is what makes that behaviour consistent; without it the agent will use the tools but not the habit.
A terminal CRM that ships an MCP server inside the same binary. Contacts, organisations, interaction logs, deals and tasks live in a local SQLite database with full-text search; the CLI is for you and the MCP tools are for an agent, both against the same data. No cloud, no account — the database is a file on your machine.
- People searched by name, email, tag or organisation, read in full, created, updated, archived and linked to each other — `crm_person_search`, `crm_person_get`, `crm_person_create`, `crm_person_update`, `crm_person_delete`, `crm_person_relate`
- Organisations searched and read with their members — `crm_org_search`, `crm_org_get`
- Calls, emails, meetings and notes logged against a person and listed back — `crm_interaction_log`, `crm_interaction_list`
- Full-text search across every entity at once, and a complete briefing for one person — `crm_search`, `crm_context`
- Deals created and moved through stages, tasks created and listed, tags applied, and summary statistics — `crm_deal_create`, `crm_deal_update`, `crm_task_create`, `crm_task_list`, `crm_tag_apply`, `crm_stats`
- A `summary` field on each contact that acts as a living dossier — read before meetings, updated after interactions
- The same data from the terminal with table, JSON, CSV and TSV output, Unix exit codes (`0` success, `1` error, `2` usage, `3` not found, `4` conflict, `10` database error), and composition with tools like jq and fzf
- Relationship types between people: `colleague`, `friend`, `manager`, `mentor`, `referred-by`
Nothing — no account, no key, no cloud. Install with `brew install jdanielnd/tap/crm`, `go install github.com/jdanielnd/crm-cli/cmd/crm@latest`, or a binary from GitHub Releases. Register the MCP server with `claude mcp add crm -- crm mcp serve`, or point a client at the full binary path with the `mcp serve` arguments — `which crm` gives you the path, since Homebrew's location differs between Apple Silicon and Intel. The database lives at `~/.crm/crm.db` by default; `--db` or `CRM_DB` moves it, including into iCloud Drive for cross-machine backup, though the README warns against writing from two machines at once even with SQLite WAL mode. Building from source needs Go 1.23+ and no CGO. The repository's `AGENT.md` is meant to be pasted into your project or Claude project instructions — it teaches the assistant when to log interactions and how to maintain contact summaries.
One command — brew install jdanielnd/tap/crm
