ultraswarm
Ultraswarm is a durable multi-worker coding orchestrator for Codex, Claude Code,
Cursor Agent, Grok, and shell usage. One standalone Node runner owns decomposition, worker
routing, process supervision, isolated Git worktrees, adaptive review,
transactional integration, approvals, recovery, and reporting.
What's New In v3.5.18
Run-output polish:
- Plain terminal report by default (no markdown
#/**/_ showing as literal chars); pass
--markdown to keep GitHub-markdown for pasting into a PR.
- Color — the live stream and report verdict are color-coded (green pass / red fail / yellow
retry); auto-off when piped, honors
NO_COLOR / --no-color.
- Run wall-clock in the Summary, and short 8-char run-ids (merge/status/logs/… accept an
unambiguous prefix).
What's New In v3.5.17
- Every table in the run report is now a clean aligned terminal table — the per-task list was the
last markdown table; it now matches the per-CLI / PLAN PREVIEW / WORKER ROSTER fixed-width style.
What's New In v3.5.16
- Per-CLI token table now renders as a clean aligned terminal table (the 3.5.15 version was a
markdown table whose pipes didn't line up in a raw CLI) — fixed-width columns with a
─ separator
and right-aligned numbers, matching the PLAN PREVIEW / WORKER ROSTER style.
What's New In v3.5.15
Per-CLI token breakdown (see the CHANGELOG):
- "Work offloaded" now breaks usage down by CLI — a table of
landed (tokens that produced
integrated work) vs spent (all attempts, incl. rejected retries and competition losers) vs
overhead, with a reconciling total. You can see at a glance which worker burned tokens and how
much went to retries/competition (e.g. Workers used ≈ 383,578 tokens — ≈ 274,485 landed, ≈ 109,093 on retries + competition).
What's New In v3.5.14
Real token-usage capture (see the CHANGELOG):
- codex and opencode now report real usage. Their default invocations use
exec --json /
run --format json, and ultraswarm parses the structured JSONL usage events — so the report's
"Work offloaded" section shows the actual token count (e.g. Workers reported ≈ 238,656 tokens)
instead of "not reported". No more scraped guesswork (removed in 3.5.13), and no fabrication when a
CLI doesn't report — a custom invocation without the JSON flag honestly shows "not reported".
What's New In v3.5.13
Honest run-report value section (see the CHANGELOG):
- No more scraped token noise — the old "Tokens saved" number was regex-scraped from worker stdout
and matched incidental digits (e.g. "≈ 62 tokens" for a run that used thousands). The free-text
scrape is gone; token/cost now come only from a worker's structured usage, else nothing is claimed.
- "Work offloaded" reports what's measured — tasks, worker-attempt count, and total external
wall-clock. A token figure shows only when a worker actually reported one; otherwise the report says
"Token/cost usage: not reported by these CLIs" rather than inventing a misleading count.
What's New In v3.5.12
Live-stream readability follow-up to v3.5.11 (see the CHANGELOG):
- No more git chatter in the stream —
git worktree add / merge --squash output is captured
instead of inherited, so a big swarm's progress lines aren't buried under "Preparing worktree …".
- Consistent glyphs everywhere — routine-path escalation/rejection/blocked lines now carry the
same
↑/✗/⊘ glyphs as the high-risk competition path, so the whole stream scans uniformly.
What's New In v3.5.11
Readability + accuracy pass on the two human-facing output surfaces (see the
CHANGELOG for detail):
- Accurate run-end report — reports "integrated" (not "merged") while a run awaits merge approval,
with a staging line making clear nothing lands on your branch until you approve; the headline counts
every task (including post-merge regressions) so the numbers reconcile.
- Honest token offload — the offload headline no longer leads with a misleading
≈ N/≈ 0; it
shows the exact figure on full coverage, an explicit floor (x of y tasks reported) on partial, and
"not measurable here" when no worker reports usage. Retried-but-integrated tasks are named.
- Visible competition retries — when a high-risk competition winner is rejected by adversarial QA,
the live stream now logs the judged winner and
✗ … rejected by QA — retrying instead of silently
jumping to the next attempt.
What's New In v3.5.1–v3.5.10
Hardening from a full audit of the orchestrator (each fix shipped as its own patch release; see the
CHANGELOG for per-version detail):