← Chitragupta How it works

One machine.
One brain.
No cloud to trust.

A FastAPI server bound to loopback, a handful of SQLite files in one folder, and either a browser tab or a native macOS window in front of it. That is the whole system — and the shape of it is why your data has nowhere else to be.

The arc

Four steps, and then it knows you

01

Connect once

Mail, calendar, files, notes, repositories. Each source declares what it can do as verbs on resources, so the permission layer understands it without knowing the brand.

02

It becomes a brain

Text is chunked, embedded and filed as memories; the people, projects and facts inside it become a graph. It lands in a folder on your Mac you can open, copy, back up or delete.

03

Every agent reads it

Recall runs at the start of every turn and fuses canonical facts, the graph and source excerpts. You explain a client once, not once per agent.

04

Acting stops at a card

Reading is free. Anything that leaves the machine is proposed on a card with the real content, every field editable — and what runs is what is on the card when you press Confirm.

The workspaceThe agent rail, a conversation, and an action card waiting on a tap
The home

Where everything lives

One directory holds the lot. The raw index and the curated facts are two files; agents, actions, tasks, metrics, reminders, messages, connectors, routines and automation own the rest. You can open it in Finder, copy it to a drive, or delete it and start again.

~/Library/Chitragupta/
├── brain.db            memories, embeddings, the graph
├── canonical.db        the curated facts layer
├── agents.db           rosters, prompts, tool choices
├── actions.db          what was proposed, approved, done
├── automation.db       runs, steps, idempotency claims
└── …                   tasks · metrics · reminders · messages · connectors
Consequences

Two facts that shape every boundary

Extension points

Five ways to extend it, and five ways not to

to add a…you registeryou never
data sourcea connector class in the registryadd a branch to the sync loop
model providera provider class, its capabilities and an auth flowadd a vendor branch to the UI
agent toola tool, and a case in the evaluation suitewiden the loop
HTTP routea handler in the right module, and a line in the surface fileput it in the app factory
native window behaviourthe window helper, driven from the pagecall it from a route
Each has exactly one place to register — and one tempting shortcut that a test will refuse.
Honestly

What it is not

Want it on your Mac?

Free while it is in beta. Bring your own model — or run a local one and never leave the machine.

Join the waitlist→