Dev & Engineering durable-executiondeterministic-replaytypescript-runtimecheckpointinghuman-in-the-loopopenai-compatible

Chidori

A durable TypeScript agent runtime with checkpointing, replay, and resume built into every run.

FollowAgents review · FARS-2.1
Use with care
60/ 100 5-point scale 3.0 / 5
1 2 3 4 5 6
Per-dimension scores and reasoning
1Trust16 / 29 · 2.8/5

Evidence: README explicitly mentions deny-by-default policy, capability injection, resource limits (sandbox-model.md), and confirmation before tool calls, network access, workspace writes (--trusted flag). Data flow transparency: all side effects recorded as host calls, replayable. Sensitive data handling: mentions credential storage (~/.chidori/credentials.json) but no details on encryption or protection. Dependency security: mentions SHA-512 verification for npm packages but no vulnerability scanning evidence. External effects: sandbox and confirmation mechanisms. Rollback: via replay and checkpoints. Source attribution: publisher unverified, but clear Apache-2.0 license. Deductions: insufficient evidence for sensitive data handling and dependency security.

2Reliability9 / 14 · 3.2/5

Evidence: README and docs consistently describe core mechanisms (host calls, replay, resume). Dependency availability: prebuilt binaries and multiple install methods, but no guarantee of dependency availability. Failure messages: docs mention error handling but no specific failure message examples. Deductions: insufficient evidence for dependency availability and failure messages.

3Adaptability12 / 18 · 3.3/5

Evidence: Clear target audience (AI coding agents, developers), multiple scenarios (chat, tool use, human-in-the-loop). Capability boundaries: docs list host functions and sandbox limits. Trigger precision: controlled via --trusted and confirmation. Environment fit: supports multiple platforms and providers. Deductions: none significant.

4Convention10 / 18 · 2.8/5

Evidence: Clear information architecture (README, docs/, llm.txt). Detailed install notes. Naming stability: consistent API names. Rich examples and FAQ. Known limitations: docs mention compatibility warnings but not systematically. License: Apache-2.0. Versioning: crates.io, npm, PyPI versions but no CHANGELOG. Maintenance responsibility: CI and contribution guide but no explicit maintainers. Deductions: insufficient evidence for known limitations and versioning.

5Effectiveness9 / 13 · 3.5/5

Evidence: Output usability: CLI and SDK with clear output formats. Marginal value: emphasizes zero-cost replay and determinism, unique value. Cost-benefit: provides cost-saving mechanisms (caching, replay). Deductions: none significant.

6Verifiability4 / 8 · 2.5/5

Evidence: Claims traceable: README and docs detail features. Cross-source corroboration: CI tests and docs but no independent verification. Fact-inference separation: docs distinguish facts and design goals. Deductions: insufficient cross-source corroboration.

Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision 4bd624028cda
The upstream repository has new commits since this review. The score still applies to the reviewed revision shown and may not cover the latest changes.
Before you use it
  • Publisher identity unverified; assess supply chain risks carefully.
  • Sensitive data handling details insufficient; review credential storage practices.
  • Dependency security only mentions SHA-512 verification; no vulnerability scanning evidence.
  • Known limitations not systematically listed; potential compatibility issues hidden.
  • Versioning lacks CHANGELOG; change tracking not transparent.
Review evidence [1][2][3][4][5][6][7][8]
See the full review method →

What does this agent do, and when should you use it?

Chidori is a Rust-binary-based runtime for executing ordinary asynchronous TypeScript agent files. Agents use the runtime-injected "chidori:agent" virtual module and its chidori object, while LLM requests, tool calls, and HTTP requests are recorded as host calls. The runtime checkpoints runs at host safepoints, can replay recorded results without making model calls, and can resume after a pause, crash, or process restart. It exposes a CLI and TypeScript and Python SDKs that drive the runtime over HTTP, with documented server and event-driven modes. It is a strong fit when reproducibility, human gates, durable long-running work, or checkpoint-backed regression tests matter more than a simple one-shot prompt wrapper.

A developer imports chidori and run from "chidori:agent" in a .ts file and registers a handler with run(async (input) => ...). That handler can use runtime host functions including chidori.prompt, chidori.fetch, chidori.input, chidori.workspace.read, chidori.memory, and chidori.alarm; external side effects are recorded as host calls. chidori run executes the file and, by default, asks for terminal approval before tool calls, network access, or workspace writes; --trusted permits those powerful effects. Run records live under .chidori/runs/ and can be replayed and continued with chidori resume <agent.ts> <run_id>; CHIDORI_RUN_STORE can mirror journals to S3-compatible storage, SQLite, or a Cloudflare Durable Object. Runs also emit OTLP spans, which can be sent to Tael or another OTLP backend.

  1. A TypeScript team maintaining an LLM workflow that needs to reproduce a failure occurring several tool or model calls into a run without repaying for the original calls.
  2. A developer building an approval-gated business process that pauses with chidori.input() or named signals and resumes later from disk in a new process.
  3. An engineering team running long tool-using jobs that must continue from the latest host safepoint after a process crash rather than restart from the beginning.
  4. A team creating regression coverage for agents by committing a recorded checkpoint and replaying it byte-identically with no model calls.
  5. A system that needs coordinated concurrent agents and can use actors with durable mailboxes, message passing, supervision trees, and restart policies.
  6. A team deploying TypeScript agents against its own provider setup, using Anthropic or OpenAI credentials or an OpenAI chat-completions-compatible endpoint.

What are this agent's strengths and limitations?

Pros
  • A recorded host-call boundary covers LLM, tool, and HTTP effects, enabling byte-identical replay without another model request.
  • Checkpointing at host safepoints supports recovery across crashes and processes, plus durable pauses for human input.
  • Agents remain ordinary async/await TypeScript rather than graphs or a domain-specific language, retaining native control flow, imports, and editor tooling.
  • The runtime is one Rust binary with an embedded pure-Rust JavaScript engine, so executing agents does not require Node, Deno, V8, or native SDK bindings.
  • It documents Anthropic, OpenAI, and OpenAI-compatible provider paths, plus HTTP-based TypeScript and Python SDKs.
Limitations
  • The documented replay model depends on effects flowing through chidori.* host calls; behavior outside that runtime boundary is not described as recorded.
  • Tools, network access, and workspace writes require approval by default; unattended scripts and CI must explicitly use --trusted or gated effects fail closed.
  • Its engine is not Node, and npm compatibility is limited to pure-ESM, native-free packages using shimmed built-ins; chidori add warns about incompatible packages.
  • The supplied prebuilt-install guidance covers specified macOS and Linux architectures only; availability for other platforms is not documented here.
  • Replicated storage, strict durability, and observability require additional configuration such as CHIDORI_RUN_STORE, CHIDORI_DURABILITY, or OTLP environment variables.

How do you install or deploy this agent?

For the documented quickest install, run: curl -fsSL https://raw.githubusercontent.com/ThousandBirdsInc/chidori/main/scripts/install.sh | sh, then verify with chidori --version. The script installs a prebuilt binary for documented macOS or Linux architectures into ~/.chidori/bin. Alternatives are cargo install chidori with stable Rust 1.95 or newer, or cloning the repository and running cargo build --release. For model access, run chidori model-login and sign in through OpenRouter, or set ANTHROPIC_API_KEY or OPENAI_API_KEY.

How do you use this agent?

Create and chat with the docs starter: chidori init my-agent --template docs, cd my-agent, then chidori chat agent.ts. Run an agent file with input: chidori run summarizer.ts --input document="Rust is a systems programming language...". For an OpenAI-compatible provider, set CHIDORI_OPENAI_COMPAT_URL and CHIDORI_OPENAI_COMPAT_KEY, then run chidori run summarizer.ts --model deepseek-chat --input document="...". Add --trusted for your own agent when tools, network access, or workspace writes must run unattended; resume a recorded run with chidori resume summarizer.ts <run_id>.

How does this agent compare with similar options?

Against graph or DSL agent frameworks, Chidori presents agents as ordinary asynchronous TypeScript and makes durability the default. Against durable execution engines, it provides LLM-native prompts, tools, context, and caching, and uses recorded model results for zero-cost replay; the README distinguishes that from replaying code and calling the model again.

FAQ

Does replay incur model cost again?
No. The documented replay behavior returns recorded prompt, tool, and HTTP results from the call log without making LLM calls.
What protection applies when I run unfamiliar agent code?
By default, chidori run asks before tool calls, chidori.fetch network access, and workspace writes. LLM prompts and pure computation do not require approval.
Can a run survive a crash?
Yes. Runs are checkpointed at host safepoints and can be continued in a new process with chidori resume after replaying to the pause point.
Is Chidori tied to one model provider?
No. The supplied documentation names ANTHROPIC_API_KEY, OPENAI_API_KEY, and OpenAI-compatible endpoints configured with CHIDORI_OPENAI_COMPAT_URL and CHIDORI_OPENAI_COMPAT_KEY.

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents