ThousandBirdsInc/chidori
The agent framework where every run is durable, replayable, and resumable by default.
What it solves
Chidori addresses the non-deterministic, expensive, and fragile nature of AI agents. It eliminates the difficulty of reproducing bugs, the cost of re-running the same LLM prompts during debugging, and the loss of progress when a process crashes or requires human approval over long periods.
How it works
Chidori uses a Rust-based runtime with an embedded JavaScript engine to execute agents written in plain async TypeScript. It intercepts every side effect—such as LLM calls, tool executions, and HTTP requests—as a "host call." These calls are recorded in a journal. This mechanism allows the runtime to:
- Checkpoint and Resume: Save the state of a run to disk, allowing it to survive crashes or be resumed in a new process.
- Deterministic Replay: Re-run the exact same code against the recorded journal to produce byte-identical output without making new LLM calls, costing zero tokens.
- Human-in-the-Loop: Suspend runs to disk using
chidori.input()or signals, freeing up system resources until a human provides input.
Who it’s for
Developers building long-running, expensive, or human-gated AI agents who want the durability and testability of a workflow engine combined with the flexibility of standard TypeScript code.
Highlights
- Zero-Token Replay: Replay any run for debugging or testing with no LLM costs and identical results.
- Plain TypeScript: No complex graphs or DSLs; agents are written using standard
async/awaitflow. - Self-Contained Runtime: A single Rust binary with no dependencies on Node.js, Deno, or V8.
- Durable Execution: Default checkpointing at every host call, enabling crash recovery and long-term pauses.
- Advanced Agent Patterns: Supports actor-based multi-agent supervision, branching execution for A/B testing, and structural prompt caching.
- Integrated Package Management: Ability to install pure-ESM npm packages without needing Node.js installed.
Related
- Project
- Project
- Project
- Project
- Project