cacli
coding agent CLI
Recovering Changes From Transcripts
cacli apply-transcript <transcript.jsonl> can recover reconstructable file edits from Claude Code or Codex JSON/JSONL transcripts.
Examples:
# Produce a reviewable patch without touching the working tree
cacli apply-transcript session.jsonl --mode generate-patch
# Apply the auto-applicable prefix directly to the current tree
cacli apply-transcript session.jsonl --mode auto-apply
# Approve each recoverable edit interactively
cacli apply-transcript session.jsonl --mode interactive
Behavior:
- The command scans the full transcript before doing anything else.
- It reconstructs
Write,Edit,MultiEdit, andapply_patchstyle changes. - It flags mutating shell commands that cannot be reconstructed, such as
sed -i. - Automatic replay stops at the first unreconstructable mutating shell command or edit that no longer applies cleanly.
generate-patchwrites a patch for the auto-applicable prefix without modifying the working tree.
Run an agent
A run selects a CLI harness, an inference provider, and an unqualified model ID:
cacli run "Review this diff" --harness claude --provider claude-api --model claude-opus-4-8
cacli run "Review this diff" --harness pi --provider workers-ai --model @cf/zai-org/glm-5.3
The CLI reads non-secret provider parameters from AWS_REGION or
CLOUDFLARE_ACCOUNT_ID and checks required credential names or login files
before execution. build_launch() returns the command, non-secret environment,
environment variables to unset, and credential wire metadata without reading
secret values. See the provider design.
Workflows (cacli flow)
Flows are sandboxed Python scripts that orchestrate coding-agent subprocesses across harnesses and inference providers. The orchestration script has no direct filesystem, network, environment, or subprocess access; its side effects go through the injected workflow API, while the agents it launches run with their normal permissions.
Create review_flow.py:
META = {"name": "cross-review", "description": "cross-vendor review"}
async def main():
phase("Review")
reviews = await parallel([
lambda: agent("Find correctness bugs in the current diff", harness="codex"),
lambda: agent("Find security issues in the current diff", harness="claude"),
])
log(f"Received {len([r for r in reviews if r])} reviews")
return {"reviews": reviews}
Then run it with a dollar cap:
cacli flow run review_flow.py --budget 5.00
Useful commands:
cacli flow run flow.py [--args JSON] [--budget 10.00] [--resume RUN_ID]
cacli flow runs
cacli flow show RUN_ID
cacli flow docs | less
cacli flow install-skill
cacli flow docs prints the complete DSL reference. Claude users can install
the same reference as an agent skill with cacli flow install-skill.
Headline features:
- Harness selection for Claude, Codex, Devin, Cursor, OpenCode, and Pi, with explicit inference providers
- Structured output validated against JSON Schema
- Journal-based resume that replays unchanged calls
- Dollar budgets with resumable budget-exceeded runs
- Sandboxed orchestration scripts with a focused async Python DSL
Development
uv sync # installs pinned dev tools (ruff, ty, pytest, prek)
uv run prek install # once: run the hooks on every commit
uv run prek run --all-files # lint, format, typecheck, and test the whole repo
Hooks come from .pre-commit-config.yaml and need prek; stock pre-commit
cannot run it. Tool versions are pinned in pyproject.toml's dev group.
Metadata
Release files for cacli 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cacli-0.2.1.tar.gz | 79.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cacli-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 150.6 kB
Release files / cacli-0.2.1.tar.gz
| Download URL | cacli-0.2.1.tar.gz |
|---|---|
| Size | 79.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4e02bb4a01fbe05dfb83bc7b6823a8f44472a5ed61c0c53eae44f483afc33033
|
|
BLAKE2b-256 checksum How to use checksums |
9615ac2fad551995b2700a899aec8c4912f5dc7b1d7648a7e7192dc7dbc4c59e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|
Release files / cacli-0.2.1-py3-none-any.whl
| Download URL | cacli-0.2.1-py3-none-any.whl |
|---|---|
| Size | 71.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
625a332e7266a9832522481d352b88b517f6846dddc6d8de4655f9ad823b4923
|
|
BLAKE2b-256 checksum How to use checksums |
8388641658948346be4a64140db927de9449be605e12141ec53ce17ad1ca9256
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|