What chitra does for you
Step away from the terminal. The work keeps moving — and stays honest.
AI coding agents are good at working and bad at being left alone: they drift from the goal, declare victory early, and stall on rate limits. chitra was built to dispatch, coordinate, and track a whole fleet of agent sessions in parallel without a person babysitting each one.
-
It watches sessions so you don’t have to
chitra tracks every session’s state around the clock. It keeps a live roster of each session’s goal and open questions, so long-running work doesn’t quietly go off track while you’re doing something else.
-
It catches “done” that isn’t done
When an agent claims it’s finished, independent LLM reviewers check that claim against the goal you set at the start — a goal recorded once and never rewritten to fit whatever got built. Work that falls short doesn’t get to close.
-
It nudges drifting agents back on goal
Instead of letting a session wander, chitra sends it back toward the stated goal — and keeps a record of every nudge it delivers.
-
It rides out rate limits without losing progress
When a provider limit or host overload hits, chitra pauses the affected sessions, saves a note of exactly where the work stood, and resumes them safely once the limit clears. No abandoned half-finished tasks.
-
You stay in control of what matters
Anything that spends money, touches credentials, or can’t be undone waits for a human. And every message chitra delivers is written to a signed, append-only log, so you can always prove what was sent, and when.
Where chitra draws the line
Orchestration, yes. Deciding your plan for you, no.
chitra does the orchestration: it dispatches work to agent sessions, coordinates them, and tracks the whole fleet. Its core loop — dispatch, ledger, rate-limiting, routing — is deterministic Python with zero LLM calls.
Layered on top, specific gates make real LLM calls where judgment is needed: nudging a session back toward its goal, reviewing completion claims, and interviewing sessions about their state.
What chitra deliberately stays out of: breaking your goal into steps (task decomposition) and choosing an orchestration pattern for you. Those are different jobs, and they remain yours.
How it works
Reliable machinery, with judgment at the gates.
Work flows along a fully deterministic path: queued, delivered into the agent’s session, confirmed against the session’s own transcript, and signed into a permanent log. When an agent says “done,” isolated LLM reviewers judge the claim — and their verdicts go into chitra’s own records, never back into the agent’s session.
Illustrative diagram of the dispatch and gating path — not a screenshot.
For the technically curious
Under the hood
chitra installs twelve command-line entrypoints backed by small, single-purpose modules. dispatchd and triaged run as always-on, systemd-supervised daemons. Delivery is single-writer per session (a file-based LaneLock), idempotent across crashes, and confirmed by grepping the target session’s own transcript. Every delivery is appended to a ledger signed with HMAC-SHA256 (a keyed cryptographic checksum) and stored as JSONL (one JSON record per line). Orders, results, and event logs are plain, documented file formats any read-only consumer can build against.
The full module list, delivery guarantees, and configuration reference are in the README; design rationale is in docs/DESIGN.md.
Working on chitra itself
Local development
Most people only need pip install chitra-monitor (see the card above). To hack on chitra:
git clone https://github.com/ReticleWorks/chitra.git
cd chitra
pip install -e '.[test]'
pytest
Commands reproduced verbatim from the project README. You can also install a specific tag: pip install git+https://github.com/ReticleWorks/chitra.git@<tag>