GitHub - cluster-software/agent-crm: The headless CRM for Claude · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
cluster-software
agent-crm
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
main
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>199 Commits<br>199 Commits
.changeset
.changeset
.github/workflows
.github/workflows
assets
assets
docs
docs
packages
packages
.gitignore
.gitignore
CLAUDE.md
CLAUDE.md
README.md
README.md
package-lock.json
package-lock.json
package.json
package.json
View all files
Repository files navigation
Claude is running your GTM and your leads live in CSVs. Spreadsheets fall apart around 30 deals in: you lose track of who said what, what's open, and what's next. CRMs solve that, but they were built for humans clicking through UIs, not agents reading and writing it on your behalf.
Plug Claude into your CRM via MCP and the schema torches your context, every action is a network round-trip, and you blow through your usage limits. Salesforce and HubSpot are shipping their own CLIs, but they end at the deal record — the scrapes, enrichment runs, and half-cleaned lists that fed it live somewhere else. You can't see what your last scrape pulled in and what it didn't clean up, or pick up where last weekend's list-building session left off.
Agents work best on files. Agent CRM is a portable .acrm file your agent can query, edit, diff, and version — pipeline, scrapes, and enrichments, all in one place.
┌──────────────┐<br>│ Custom UIs │<br>└──────┬───────┘<br>┌────────────┐ ┌──────▼──────┐ ┌───────────────┐<br>│ AI Agents ├─────►│ .acrm │◄─────┤ CLI / Scripts │<br>└────────────┘ └─────────────┘ └───────────────┘
What's in a .acrm file?
A .acrm file is a SQLite database with a change-history layer on top. That means:
No proprietary format. Open it with any lix client and your data is right there in standard tables.
Every write is a versioned checkpoint. Like git for your CRM — branch to run an experiment, diff to see what changed, revert if Claude mangles a row.
It's just a file. Copy it, email it, commit it, sync it through Google Drive. No server, no account, no migration tool needed if you ever walk away.
If you can read SQLite, you can read your CRM. That's the whole guarantee.
Quickstart
Install the CLI:
npm install -g @agent-crm/cli
Create your first .acrm file and let Claude rip on it:
claude --dangerously-skip-permissions
Create an .acrm file
! acrm init pipeline.acrm
Then import your CSVs
! acrm import csv ./leads.csv
Why Agent CRM
🧩 Headless: Ships as a CLI.
⚒️ Skills based: Claude writes skills against the CLI (transcript ingestion, stale-deal sweeps, weekly reports) as .md files.
🧱 Modeled: uses Attio's data model out of the box — people, companies, deals, posts, transcripts. Typed, related, queryable with plain SQL. Fixed schema = predictable agent edits.
🔀 Version controlled: every change is a checkpoint on a branch. Diff, merge, revert, time-travel.
🔌 Pluggable transcript providers: transcripts are vendor-agnostic. Drop a transcript-provider- skill into ~/.claude/skills/ to plug in Granola, Otter, Fireflies, Fathom, Zoom, manual paste, or anything else.
Use cases
A grab-bag of jobs Agent CRM handles today. Each is a skill or a CLI command — bring your own, or use the ones we ship.
Prep for a sales call. /prep-call pulls the person's full history from your .acrm, fetches their LinkedIn profile (cached, 14-day TTL), and hands you a one-pager with discovery questions tied to what they've actually been talking about.
Pull call transcripts from Granola. /post-call fetches the transcript from your connected provider, resolves participants by email, and imports it as a transcripts record linked to the attendees. Local, queryable, and easy to spot patterns across calls.
Draft follow-ups in your voice. /follow-up finds leads with stale activity, reads the prior thread plus any past-call transcripts, and drafts the next message. You review and send.
Import a scraped list. acrm import csv...