charon

charon is a command for Claude Code from ANcpLua/ancplua-claude-plugins. It costs 67 tokens per session (1,334 once invoked), scanned A, original, MIT.

A command for moving one or more GitHub pull requests toward a merge while reporting their real status. It checks CI, handles conflicts, reviews suggestions, and can resume unfinished work.

In plain words
What is it for?
Use it on the current branch, one pull request, or several pull requests to diagnose checks, repair conflicts, verify requested versions, and ferry approved changes to merge.
Why use it?
It avoids indefinite waiting and makes clear when a developer must take an action, including for risky history changes.

Command for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: names the TodoWrite tool.

Part of the charon plugin — 1 skill, 1 command, 2 agents shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/ancplua/ancplua-claude-plugins/charon
Clone the repo
git clone --depth 1 https://github.com/ANcpLua/ancplua-claude-plugins

Made for: Claude Code.

Or install charon, the plugin that ships this one along with the rest of its 1 skill, 1 command, 2 agents.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for charon

README.md
[![agentmods](https://agentmods.dev/badge/commands/ancplua/ancplua-claude-plugins/charon.svg)](https://agentmods.dev/commands/ancplua/ancplua-claude-plugins/charon)
Your own site
<a href="https://agentmods.dev/commands/ancplua/ancplua-claude-plugins/charon"><img src="https://agentmods.dev/badge/commands/ancplua/ancplua-claude-plugins/charon.svg" alt="Measured on agentmods" height="20"></a>
Per session 67 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,334 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00067 $0.01334
Opus 5 $0.00034 $0.00667
Sonnet 5 $0.00013 $0.00267
Haiku 4.5 $0.00007 $0.00133

Measured 6d ago against content hash 2ff915e2df52, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

charon scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/charon/commands/charon.md · 81 lines

How it starts

The opening of the file, as written. The whole thing — 81 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/charon — ferry PR(s) to merge

You are Charon: carry a pull request across the river to the far shore (merge), or tell the user plainly the one thing only they can do. Never wait forever, never gh pr checks --watch, never "just wait" without a precise reason and a recovery path.

Dispatch on $ARGUMENTS

  • cancel / stop (the only token) → Cancel (below).
  • empty or .Solo ferry of the current branch's PR.
  • one PR (number or URL) → Solo ferry of that PR.
  • two or more PRs → Fleet (a ferryman lead + one lookout per PR).

Cancel

If there is no .claude/charon.local.md, say there is no active ferry and stop. Otherwise read its frontmatter, report what you are stopping, then remove it:

sed -n '/^---$/,/^---$/{ /^---$/d; p; }' .claude/charon.local.md   # report pr / url / status / iteration
rm -f .claude/charon.local.md

Confirm the ferry for PR #N is cancelled; the PR itself is untouched (cancelling changes no branch, commit, or merge state). Done.


Solo ferry (one PR or current branch)

Invoke the charon skill and run exactly ONE iteration — pass the user's $ARGUMENTS through as the PR hint (a number / URL; . or empty = current branch). The skill owns the whole procedure, including establishing the ferry on first entry: it resolves the target PR (from your hint, the current branch, or your open PRs — asking only when genuinely ambiguous), writes .claude/charon.local.md if it does not exist yet (the exact schema the resume net needs, with max_iterations bounding actionable re-entries), then grounds → classifies → dispatches one handler → writes an honest status:.

If no PR resolves (e.g. . but the branch has none), the skill stops with status: needs-you and tells the user how to create one (/commit-push-pr) — it never invents a PR.

End your turn normally. The Stop hook decides what's next: re-enter while actionable, rest while CI runs, finish on merged / closed / needs-you. Do not loop by hand — let the hook drive.

Read the full file on GitHub · 81 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago First seen · 81 lines · 67 tokens per session scan A 2ff915e2df52

Subscribe to this mod's changes

charon is a command published in the GitHub repository ANcpLua/ancplua-claude-plugins (5 stars, last pushed 19d ago), licensed MIT. It adds 67 tokens to every session and 1,334 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.