Open source · Apache 2.0 · Runs on your machine
Open CRM
Relationship management for people and their agents. Every fact shows its source, and nothing an agent proposes lands until you approve it.
The demo is the real browser edition with synthetic records. No sign-up, and whatever you type stays in your own browser storage.
Accounts · Northstar Robotics

We built this for ourselves. Open CRM carries the way we run our own accounts at Zentrik, the same operating model we depend on every day, published as its own product rather than described in a blog post.
What an ARM is
A CRM assumes a person keeps the file
An ARM, Agent Relationship Management, assumes a person and their agents keep it together, which changes what the records have to guarantee. Four properties make a system one, and Open CRM is the first open implementation.
- 01One write path
- The app, the crm command, and the MCP server submit the same validated operations. No agent-only side channel, no import that skips the checks.
- 02Everything shows its source
- What you know is recorded as claims that cite the notes behind them. A claim without evidence is drawn as a hunch wherever it appears.
- 03Nothing lands unapproved
- An agent change is validated, then held as a proposal with its evidence until a person decides. Direct mode is deliberate, and it is logged.
- 04The records are yours
- One folder, readable formats, no hosted account. The model is small enough to read in an afternoon, so you can shape it to your own work.
Why this exists
Click any line and read where it came from
What you know about an account is recorded as claims: needs, risks, goals, objections, commitments, facts. Each cites the notes that say so.
Open the trace and the chain is there: the source, the person who said it, what was taken from it, and the action it now supports. That is the bargain that makes an agent safe to let near your records.
Trace · Why this exists

The weekly pass
Every account by stage, and what several are saying at once
Each tile carries the one thing worth noticing, and you can filter for what is thin: overdue commitments, unsourced claims, no one who signs off, stale evidence.
Below the lanes, the Book shows what several accounts are saying at once. That is where account work starts becoming product work.
Book · every account by stage

The review gate
An agent proposes. You decide
Every change an agent makes is validated, then held with the evidence behind it until you approve or reject it. Proposals that build on each other are approved in order.
Switch a workspace to direct mode when you trust the loop. Every direct change is still logged with the name of whoever made it.
Review · changes waiting for approval

Start
Two commands, then open the folder in your agent
Needs Node 22.18 or newer. No database, no account, no API key. The workspace folder is the product: your agent reads its contract, runs the same command you do, and proposes work you review in the app.
Create a workspace and open the app
git clone https://github.com/Zentrik-AI/zentrik-open-crm.git cd zentrik-open-crm && npm install npm run crm -- init ~/crm --demo cd ~/crm && ./crm ui
Point an agent at the same folder
cd ~/crm claude # or codex, or open the folder in Cursor
Ask it to run the daily review. Its proposals appear under Review as it works, each carrying the notes behind it.
The same app runs without any of this: the browser edition keeps records in your own browser storage, and a workspace folder is what adds the agent loop.
Where Zentrik fits
Account work stays in Open CRM. Product decisions happen in Zentrik
Open CRM notices when several accounts say the same thing and stops there. Deciding what to build from that evidence is product work.
When a pattern is worth acting on, it hands over the sources behind it: the notes, the accounts they came from, and the identity that keeps a retry from duplicating anything. An agent connected to the Zentrik MCP server can ingest the same bundle directly. The handoff carries sources, never conclusions, and only when someone asks for it.
Questions
Before you clone it
Is Open CRM really open source?
Yes. It is Apache 2.0 on GitHub, and it runs on your machine. Fork it, change it, or run it for your team without asking us.
Does it send my CRM data to Zentrik?
No. Records stay in your browser storage or in your workspace folder. The app makes no outbound request at all unless you add your own Anthropic key for the optional in-app AI.
Do I need Zentrik to use it?
No. Open CRM is a complete CRM on its own. Zentrik matters when account evidence turns into a product decision: the CRM notices when several accounts say the same thing and hands over the sources behind it, and you decide what to build in Zentrik.
Do you use this yourselves?
Yes. Open CRM is the way we run our own accounts at Zentrik, published as its own product. That is also why the boundary with Zentrik is drawn where it is: we wanted account work and product decisions to stay separate in our own work before we asked anyone else to adopt it.
Which agents can work it?
Claude Code, Codex, and Cursor read the contract in the workspace folder and run the crm command directly. Anything that can run a shell command or speak MCP can work the same records.
Can an agent change a record without me?
Not in review mode, which is the default. Proposals wait under Review with the evidence behind them until you approve or reject. You can switch a workspace to direct mode when you trust the loop, and every change still carries the name of whoever made it.
Start with one relationship worth remembering
Clone it, give your agent a workspace it can actually work, and tell us where the first five minutes were confusing.