chitra ยท Reticle Works

chitra

Run AI coding agents unattended — with goals they can’t quietly abandon.

The bookkeeping never guesses. Everything that queues, delivers, and records work is plain deterministic code — no model decides what gets sent or when, every action is logged, and a crash never loses your place.

The judgment is real judgment. Where a decision needs reasoning — is this work actually finished? has this session drifted off goal? — chitra calls a large language model (LLM) to review it. It directs and checks the work of AI coding agents such as Claude (via claude-code) and Codex; it doesn’t do their work for them.

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.

Deterministic path — no LLM calls LLM judgment — real model calls

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>