Hey HN, I built a personal CRM that lives entirely in the terminal.
I kept losing track of people — who I met at conferences, what we discussed, when I last followed up. I tried Notion, spreadsheets, and a few CRM apps, but they were all too heavy for what I needed. I just wanted something fast that I could use without leaving the terminal.
crm-cli stores everything in a local SQLite file (~/.crm/crm.db). Single binary, no accounts, no cloud. You can manage contacts, organizations, log interactions, track deals, set follow-up tasks, and tag anything.
What makes it different:
- Built-in MCP server — you can connect it to Claude (or any MCP-compatible agent) with claude mcp add crm -- crm mcp serve. After a meeting, you just tell Claude what happened and it logs the interaction, updates deals, and creates follow-ups automatically.
- Unix-native — data to stdout, messages to stderr, proper exit codes. Supports table/JSON/CSV/TSV output, so it pipes into jq, fzf, awk, etc.
- Pure Go, no CGO — uses modernc.org/sqlite, so it cross-compiles cleanly. Single static binary for macOS, Linux, and Windows.
The AI integration is what I use most now. The summary field on contacts acts as a living dossier that Claude maintains — it reads it before meetings for context and updates it after with new info.
Tech: Go, Cobra, SQLite (FTS5 for search), mcp-go for the MCP server. ~3k lines of Go.
Would love feedback on the CLI design and what features would be useful.
jdanielnd•1h ago
I kept losing track of people — who I met at conferences, what we discussed, when I last followed up. I tried Notion, spreadsheets, and a few CRM apps, but they were all too heavy for what I needed. I just wanted something fast that I could use without leaving the terminal.
crm-cli stores everything in a local SQLite file (~/.crm/crm.db). Single binary, no accounts, no cloud. You can manage contacts, organizations, log interactions, track deals, set follow-up tasks, and tag anything.
What makes it different:
- Built-in MCP server — you can connect it to Claude (or any MCP-compatible agent) with claude mcp add crm -- crm mcp serve. After a meeting, you just tell Claude what happened and it logs the interaction, updates deals, and creates follow-ups automatically. - Unix-native — data to stdout, messages to stderr, proper exit codes. Supports table/JSON/CSV/TSV output, so it pipes into jq, fzf, awk, etc. - Pure Go, no CGO — uses modernc.org/sqlite, so it cross-compiles cleanly. Single static binary for macOS, Linux, and Windows.
The AI integration is what I use most now. The summary field on contacts acts as a living dossier that Claude maintains — it reads it before meetings for context and updates it after with new info.
Tech: Go, Cobra, SQLite (FTS5 for search), mcp-go for the MCP server. ~3k lines of Go.
Would love feedback on the CLI design and what features would be useful.