Skip to content
OPENVZ*AI
OPENVZ / CRM

Let the agent fill in the form.

Most CRMs are a database with a form in front of it. The AI ones bolt a chat box onto the side of that form. Both leave the actual work — finding out what is true, and writing it down — to a human who has better things to do. This is built the other way round.

MIT · v1.0.0 · 1.9 MB · needs Bun, Node 24 and a Postgres

How it works

01

It keeps its own hours

The agent runs on its own deployment, on its own schedule, against its own work queue. It decides what to look at next, books its own follow-ups, spends a research budget, and stops when the budget runs out. Close the browser and it keeps going. Nothing about it is request-response.

02

Nothing about a person is guessed

No tool accepts a confidence score, because a model asked to grade its own certainty will, and it will be wrong in the direction that makes it look useful. Tools report what they observed — a signature block, a GitHub identity — and a ledger prices the evidence. Strong evidence writes to the record. Weak evidence becomes a suggestion a human settles. A confidently wrong fact about a customer is worse than a blank field, because nobody can tell it is wrong.

03

The best source is your own inbox

It works with no API keys at all: it reads your own threads, meetings and signature blocks, which is free and is the best evidence there is — no data vendor can sell you a reply from the person’s own address. Each key opens one more place to look, and it is told at the start of every session which ones this install has, so it plans around what it actually has rather than discovering the gaps one failed call at a time.

04

The sandbox has no network and no database

The agent gets bash, grep and a workspace, with deny-all egress. The other half of that rule is an absence: the sandbox is never given a database URL. A shell with credentials and egress is exfiltration-shaped even in an internal tool; a shell with neither is a text processor.

05

You can watch it work

Every contact, company and deal has an Agent tab — the steps as it takes them, the leads it throws away and why, and its questions answered in place when it cannot decide between two people. Conversations are durable and survive a reload.

06

It reports to nobody by default

Telemetry is off, and it has no default destination. The upstream analytics key that shipped with this codebase has been removed — software you run on your own hardware should not phone anywhere until you say so. Point it at your own PostHog project if you want the numbers.

The stack

Agent runtime
eve — durable sessions, tools, skills, schedules, sandboxes. A tool is a file, a skill is a Markdown file.
Model
Vercel AI Gateway. No provider SDK, and the model is a setting rather than an environment variable.
Front end
Next.js App Router · shadcn/ui. List state lives in the URL, so copying the address bar reproduces the view.
API
NestJS with nestjs-trpc. The router type is generated from the Nest routers, so it is type-safe from the Prisma row to the table cell.
Data
Prisma · Postgres. Single tenant, deliberately — an organizationId that is always the same value buys nothing.
Auth
Better Auth — Google, Microsoft, or your own IdP. One allow-list is the entire authorisation model.
Licence
MIT. Rename it, sell it, close it.

The CRM works after a relationship exists: getting what already happened written down, and moving it along. If you do not have a list yet — if the job is finding the people, working out whether they are worth talking to, and writing the first email — that is OpenVZ Leads.

See Leads

Where it came from

OPENVZ CRM is a derivative of an MIT-licensed codebase. The work went past renaming: the brand, icon set and colour system were rebuilt, telemetry was inverted from on-by-default to off with the upstream analytics key removed, and the upstream project’s customer logos and staff photographs were taken off the landing page. The original copyright notice stays in LICENSE, as MIT requires, and the list of changes is in the repository’s NOTICE.

Want one of your own?

The source is complete; running it needs your own Postgres and an OAuth client. If you want it reshaped around how your team actually sells, or simply hosted for you, say so.

Get in touch