JSONCRM vs Hermit CRM
The short version: these are two small, independent projects making the same bet — a CRM is plain files in a git repo, with a local web UI and an MCP server for AI agents — with different substrates. Hermit CRM stores Markdown; JSONCRM stores JSON. If your CRM is mostly notes about conversations, Hermit fits. If it's structured records agents compute over — scores, stages, bulk updates — JSONCRM fits. Looking for a Hermit CRM alternative on the structured side of that line? That's exactly the gap JSONCRM fills.
Two projects arriving at "git + plain text + MCP = CRM" within the same few months is a signal, not a coincidence: a micro-category is forming. We think of Hermit as an ally in it, not a rival — the real competition is the spreadsheet and the seat-priced SaaS CRM. That said, here's an honest breakdown of where the two differ.
The core difference: JSON-as-state vs Markdown-as-prose
Hermit's pitch is "your CRM is a folder of Markdown files in git" — human-writable, human-readable notes about companies, contacts, and conversations. JSONCRM's pitch is that the CRM state itself is structured data: a flat JSON object per record, an array per stage, a config that defines stages, transitions, identity, and score values.
This plays out in what agents can do reliably. Structured records can be scored, filtered, diffed field-by-field, promoted along enforced transitions, and validated. Prose records are wonderful to read and awkward to compute over. The reverse is also true: writing notes as JSON is misery for a human. Pick based on which kind of work your pipeline is made of.
Feature-by-feature
| JSONCRM | Hermit CRM | |
|---|---|---|
| Record format | JSON objects, one array per stage | Markdown files (companies, contacts, conversations) |
| AI agent access | CLI + first-party MCP server; every write supports dry_run |
MCP server (10 read / 7 write tools), works with Claude Desktop, ChatGPT, Cursor |
| Pipeline enforcement | Stages + legal transitions defined in config; promote/demote only move along them |
Customizable pipeline stages |
| Write safety | Dry-run / --apply previews on every write command; atomic file writes |
Undo support, one commit per write |
| Data hygiene | validate, deduplicate, filter-competitors, merge, blocklist |
Data hygiene reports |
| Reports | stats (per-stage, scored/contacted, paid/unpaid) |
Weekly activity, funnel/conversion, time-in-stage, message outcomes |
| Capture | LinkedIn likers → intake pipeline (parse-from-linkedin-mcp, intake, merge) |
Bookmarklet for any web page; BCC/IMAP email import; CSV/TSV/xlsx import |
| Backups | Out-of-git atomic ZIP snapshots (jsoncrm backup) |
Git history |
| Collaboration | Git PRs, incl. "Open PR" button from the web UI via GitHub token | Git (local-first, built for one person) |
| Web UI | Local, jsoncrm serve on :7341 |
Local web app on :8765 |
| License | AGPL-3.0 (commercial licensing available) | Apache-2.0 (code) |
| Install | pip install jsoncrm (on PyPI) |
uv tool install hermitcrm (on PyPI) |
| Maturity | 1.0, dogfooded daily | Alpha, macOS-first |
🧭 Choose Hermit CRM if…
- Your CRM is mostly prose — notes, conversation histories, relationship context
- Email is your main capture channel (BCC/IMAP import is genuinely clever)
- You want a bookmarklet to grab pages as you browse
- You're a solopreneur on macOS who wants follow-up radar and meeting briefs
- You prefer Apache-2.0 licensing
⚡ Choose JSONCRM if…
- Your pipeline is structured records — scoring, staged progression, bulk updates
- Agents should compute over the data: filter by score, promote in bulk, enrich fields
- You want enforced stage transitions and validation, not convention
- You want dry-run previews before any agent write lands
- GitHub PR review of CRM changes fits your team's workflow
A note on fairness
Hermit got several things first that we respect: the bookmarklet, email import, and funnel reports are all ahead of JSONCRM's equivalents (some are on our roadmap — see the repo). Hermit is also upfront about being alpha software, which is the right way to ship a small project. If this comparison is out of date, that's on us — PRs welcome.
Or skip the choosing: both are free, both are a pip install, and both keep your data in
files you own. Trying each for a week costs nothing but time.
Git-native CRM — common questions
What is a git-native CRM?
A CRM where the system of record is plain files inside a git repository — every change is a diff, every state is a commit, and collaboration happens through branches and pull requests. JSONCRM (JSON files) and Hermit CRM (Markdown files) are both git-native, local-first CRMs; both also ship an MCP server so AI agents can operate the pipeline directly.
Is there a CRM that works with Claude, Cursor, or other MCP clients?
Yes — both projects here ship first-party MCP servers over stdio. JSONCRM exposes every CLI command as an MCP tool (search, add, update, promote, validate, and so on) with dry_run support, so an agent can preview writes before applying them. Configure it in Claude Desktop, Claude Code, Cursor, or any MCP-capable client.
Markdown or JSON for an AI-agent CRM?
Markdown wins for human-written prose — notes, conversation histories, context. JSON wins for machine-computed state — scoring, stage transitions, bulk updates, validation — because structure means agents can't misread intent. If your pipeline is mostly the former, Hermit CRM is the better fit; mostly the latter, JSONCRM.
Structured pipeline? Run it on JSON.
Free, open source, your repo. Agents welcome.