Curtis AI CRM.
A CRM that lives in your vault. Contacts, deals, and interactions are notes with YAML frontmatter — read by Obsidian's native Bases, portable forever, no lock-in.
What a contact looks like.
There is no database. The scaffold command writes the folders and two
Bases views — Pipeline.base and Follow-ups.base —
over notes that any text editor can read, and anything can back up.
Shaped like your work.
Stages, pipeline, and interaction kinds are data, not code. Four
library packs ship — sales, recruiting, real estate, freelance — and a
pack is itself a note: duplicate one into Libraries/, edit
its frontmatter, and the CRM re-shapes live. Sharing a CRM design is
sharing a note.
The follow-up engine watches overdue and upcoming dates and scans for
stale contacts, with reminders in-app. Quick capture works from
anywhere — obsidian://curtis-crm?text=… from a mobile
share sheet lands in Inbox.md for triage.
AI that does the upkeep.
Bring your own key — OpenAI-compatible endpoints, Anthropic, or Gemini, stored in Obsidian's secret storage, never in plugin data. One sentence becomes a contact, an interaction, and a follow-up date on a review screen; nothing is written until you approve. Ask the CRM questions in plain language. Draft a follow-up from the contact's own history — copy it or append it, never auto-sent. Duplicates are caught deterministically and merged only after review.
Under the hood.
The specification of record, straight from the manifest, the checklist, and the changelog.
| release | 0.2.0 — built; release pending live-install verification |
|---|---|
| data | markdown + YAML frontmatter — Contacts/ · Deals/ · Interactions/ |
| views | Pipeline.base · Follow-ups.base — native Obsidian Bases |
| packs | 4 built-in · your own is a note under Libraries/ |
| ai | BYOK — OpenAI-compatible, Anthropic, Gemini · every write reviewed |
| keys | Obsidian secret storage (1.11.4+) — never in plugin data |
| platforms | Obsidian desktop + mobile · min app 1.9.10 (Bases mobile) |
| tests | 61 vitest cases |
| license | MIT — local-first, no telemetry |
Not yet in the Obsidian community directory. v0.2.0 is built; what remains is live-install verification and the submission PR — until it merges, installing means copying files from the repository by hand.
The AI layer needs your key. Without one, everything else still works — capture, pipeline, follow-ups — the AI-assisted paths just wait. And duplicate detection is deterministic: same email, normalized name, or name plus company. Fuzzy near-matches pass through unflagged.
The record.
What has shipped so far, excerpted from the repository's changelog.