A coral and cobalt halftone portrait of Charon, Pluto's largest moon
Charon review workspace with a pull request diff, discussion, checks, and pending review controls

Charon · Code Review Agent

Review the change.

Review diffs, CI, comments, context, and agent output in one place. Edit proposals. Approve what lands.

AI writes code faster than anyone can read it.

Generation went vertical. Human review didn't. Everything in the gap ships unread. Bugs, slop, and "looks fine to me."

Charon is built for the gap. A review control room where agents do the legwork and nothing lands without your sign-off.

Review-first workflow

Follow a change end to end: prompt, draft, green, review, agents, rules.

2.1

Start from a prompt

Describe the change. An agent branches, implements it in a fresh worktree, and opens the draft PR.

2.2

Drafts are diffs

Now shape it. Select lines, ask questions, or request edits. Agents work in isolated worktrees and push to your branch.

2.3

PRs stay ready

Once it's open, Charon keeps it green. CI failures, conflicts, bot findings, and teammate reviews become fixes or findings. Each carries a severity, a confidence, and Apply on the diff.

2.4

Own the review

Then return the favor. An agent drafts inline comments from the full diff. You edit, disable, change verdict, and submit once.

2.5

Full run log

All of it, in the open. Every run streams live: plan, tool calls, prompt, model, and output in one feed. Steer or stop any agent mid-run.

2.6

Prompts are policy

And every behavior above is yours. Each handler is a toggleable prompt with variables and /skill references. Context stays editable.

Bring your own agent

Charon drives coding agents over the Agent Client Protocol and supports the following harnesses.

Any ACP-speaking harness drops in behind the same event → { enabled, prompt } interface. Switch between them any time from Settings. Each keeps its own model and reasoning preferences. Onboarding picks one and verifies the connection live.

Agents, reviewed

The agent gathers context and drafts a decision. Nothing posts until you approve.

charon · activity / boxcar/dispatch

Local. Promptable. ACP.

The desktop shell owns I/O. GitHub owns collaboration. Agents do bounded work in between.

Stack

Tauri 2 with a Rust backend for HTTP, git, and process spawning; React + TypeScript front end. One window per repo, config stored locally.

Events

Every handler is event → { enabled, prompt }. Prompts interpolate {pr-number}, {check-name}, {comment-body}, and /skill references.

Agents

Every run is an ACP session over stdio. Tool calls, plans, and reasoning stream live, and you can steer or cancel mid-run. Fixes run in dedicated worktrees; reviews run read-only.

GitHub

Works against github.com and GitHub Enterprise /api/v3. REST plus a dash of GraphQL. Fine-grained PAT recommended.

Skills

Imported from ~/.cursor/commands and ~/.cursor/skills, selectable per stage. humanize ships built in.

Releases

Every push to main bumps the version, tags it, builds a universal DMG, and publishes. Installed apps self-update with a one-click restart.

Bring your own agent.
Charon speaks ACP: Cursor, Claude Code, Codex CLI, opencode, or any command you configure. Contributions welcome.

Review the change.

Free. Open source. macOS universal.

Download Charon