The CRM That Runs on localhost
DenchClaw is a CRM that runs entirely on localhost — your data stays on your machine, the AI agent runs locally, and nothing goes to the cloud without your permission.
The CRM That Runs on localhost
I want to tell you about a URL that has become more important to me than almost any SaaS dashboard: localhost:3100.
That's where my CRM lives. It runs on my machine. The data is in a file on my filesystem. The AI agent that powers it is an always-running process on my Mac. No cloud server required, no subscription, no vendor who can raise prices or sell my data.
DenchClaw is the CRM that runs on localhost. Here's what that means, and why it matters.
What "Runs on localhost" Actually Means#
When I say DenchClaw runs on localhost, I mean:
-
The database is a file on your machine:
~/.openclaw-dench/workspace/workspace.duckdb. All your contacts, companies, deals, notes — in one file. You own it. You can copy it, back it up, open it with any DuckDB client, or delete it. -
The agent process runs locally: OpenClaw's gateway runs as a background process on port
19001. The web frontend is served from that gateway atlocalhost:3100. No remote server is serving your CRM UI. -
AI calls are the only outbound traffic: When you ask the agent a question, it calls the AI model API (Anthropic, OpenAI, or whatever you've configured). That's the only network call. All CRM reads and writes happen locally.
-
You can use it offline: Query your contacts, view your pipeline, update deal stages — all without an internet connection. The AI features require internet for model calls, but the data layer is fully local.
The Installation#
npx denchclawThis single command:
- Downloads and installs the OpenClaw runtime
- Creates a
denchprofile and workspace directory at~/.openclaw-dench/workspace/ - Initializes a DuckDB database
- Starts the gateway on port
19001 - Opens
localhost:3100in your browser - Copies your Chrome profile so the browser agent is already logged into your sites
First boot takes 2-3 minutes. After that, subsequent launches are instant — the process starts and localhost:3100 is available in under 2 seconds.
localhost:3100 — The Interface#
The web app at localhost:3100 is a full-featured CRM interface. It doesn't look like a localhost tool — it looks like a polished SaaS product, because it's built with the same web technologies.
What you get:
- Sidebar navigation with all your CRM objects (People, Companies, Deals, etc.)
- Multiple view types: table, kanban, calendar, timeline, gallery, list
- Natural language search: type a query, get filtered results
- Entry pages: click any row to open a full detail view with a markdown document
- AI chat: the agent is always accessible via the web chat in the corner
- App builder: custom dashboards in your sidebar
You can add it to your Mac Dock as a PWA (Progressive Web App) — open localhost:3100 in Chrome, click the three-dot menu, and "Install DenchClaw." It gets its own icon, opens in its own window, and behaves like a native app.
The Data Model: Yours Forever#
The hardest thing about leaving a SaaS CRM is data portability. When I left HubSpot, I spent a week exporting CSVs, massaging them, and importing them into a new system. I lost half my history.
With DenchClaw, that problem doesn't exist.
Your data is in DuckDB. You can query it directly:
duckdb ~/.openclaw-dench/workspace/workspace.duckdb
.tables
SELECT COUNT(*) FROM v_people;
SELECT * FROM v_deals WHERE "Stage" = 'Proposal';You can export it whenever you want:
COPY v_people TO 'people.csv' (HEADER, DELIMITER ',');
COPY v_deals TO 'deals.parquet' (FORMAT PARQUET);You can version-control the whole workspace with git:
cd ~/.openclaw-dench/workspace
git init && git add . && git commit -m "crm backup"The data is yours. Period.
Privacy by Default#
When I built DenchClaw, privacy wasn't an afterthought — it was a foundational constraint. Your most sensitive business data (contacts, deals, meeting notes, compensation data) should never be transmitted to a third party's cloud database by default.
With localhost CRM:
- No vendor data access: DenchClaw the company cannot read your CRM data. The data is on your machine.
- No training data: Your contacts and deal notes are not used to train AI models
- No breach exposure: If a SaaS CRM vendor gets breached, your data is exposed. With DenchClaw, the blast radius is your own machine.
- GDPR compliance by default: Data stays in your jurisdiction, on your hardware
The only data that leaves your machine:
- AI model API calls (the content of questions you ask the agent)
- Any external integrations you explicitly configure (like sending email via Gmail API)
You control both of those.
What localhost CRM Unlocks#
There are things you can do with a localhost CRM that are simply impossible with a SaaS CRM:
Direct SQL access: Write a Python script, a shell script, a Jupyter notebook — anything that can talk to DuckDB can query your CRM.
Git version control: Commit your CRM schema changes, view history, roll back mistakes.
Custom apps with full data access: Build a dashboard in plain HTML/CSS/JS with the DenchClaw app builder. No API rate limits, no authentication tokens — just direct SQL.
Offline use: Take your laptop on a plane and your CRM is fully functional.
Custom integrations without rate limits: Want to sync 10,000 emails? No API rate limit — you're querying your own local database.
Zero vendor lock-in: You can migrate to any system that can import a CSV. Your data is never trapped.
The Tradeoffs#
I want to be honest about what you give up:
Multi-user by default: DenchClaw is designed for single-user local use. Team workspaces require Dench Cloud or a self-hosted server setup.
Mobile access: The web app works on mobile browsers, but you're limited to your local network unless you set up port forwarding or use Dench Cloud.
Always-on: The agent only works when your Mac is running. For 24/7 uptime, you need Dench Cloud or a dedicated server.
For most solo founders, freelancers, and small teams, these tradeoffs are fine. The privacy and portability benefits outweigh the limitations.
Running 24/7 (Optional)#
If you want DenchClaw always on — so you can message it from your phone while you're out — the easiest setup is Dench Cloud (dench.com), which gives you a managed remote instance.
Or you can run DenchClaw on a small Linux server or VPS:
# On your server
npx denchclaw
# Set up Tailscale for secure remote access
# Now accessible at your-server:3100 from any device on your Tailscale networkFrequently Asked Questions#
Does DenchClaw work without internet?#
All CRM operations (reading/writing data, viewing the UI) work offline. AI features (agent chat, natural language queries) require internet for model API calls.
Is localhost:3100 secure?#
It's only accessible from your machine (unless you open it via port forwarding). No authentication is required by default for localhost access, but you can configure auth in the OpenClaw settings.
What port does DenchClaw use?#
The web frontend is at localhost:3100. The OpenClaw gateway API is at localhost:19001.
Can I run DenchClaw on a home server?#
Yes. npx denchclaw works on any Linux or macOS machine. Pair it with Tailscale for secure remote access.
How is this different from self-hosting HubSpot?#
HubSpot doesn't offer true self-hosting. DenchClaw is designed from the ground up to run locally — the data model, the file structure, and the agent architecture all assume local execution.
Ready to try DenchClaw? Install in one command: npx denchclaw. Full setup guide →
