Skip to main content

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, and apply_patch style 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-patch writes 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
cacli run "Review this diff" --harness codex --provider azure --model gpt-5.3-codex

The CLI reads non-secret provider parameters from AWS_REGION, CLOUDFLARE_ACCOUNT_ID, or AZURE_OPENAI_ENDPOINT 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.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cacli 0.2.3
File Size Uploaded
cacli-0.2.3.tar.gz 81.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cacli 0.2.3
File Interpreter ABI Platform
cacli-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 154.1 kB

Release files / cacli-0.2.3.tar.gz

Download URL cacli-0.2.3.tar.gz
Size 81.6 kB
Tags Source
SHA-256 checksum
How to use checksums
5d7e6e692319caeff0cb9c5d44f96f5f57c0ba725e349b5a664cee38c2d47b9d
BLAKE2b-256 checksum
How to use checksums
bd6af72ae39d3bb437800ca4c3d22f8d17e5a625ffbad26e97b834b170bcceca
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.3-py3-none-any.whl

Download URL cacli-0.2.3-py3-none-any.whl
Size 72.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0111ffb0c5c62a37ea4236d1472859079c300411846cbebd62086f70b96597be
BLAKE2b-256 checksum
How to use checksums
15839a4a22d77f48aeabf61648911f05b6c8ad789eeb2dd1229171708d6e315b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release history Release notifications | RSS feed

0.2.4

2 release files

This release

0.2.3 This release

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page