← all comparisons

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.