❯ tales
tales - ~/your-project gate locked
❯ tales

two AIs,
one terminal,
you decide.

AI coding CLIs draft, critique, and vote. Tales waits until you approve the executor.

█
❯
/█
cache hit · debate complete · waiting for approval

why two

One model has one opinion.
Two models have an argument.

A single agent commits to its first idea. Tales makes one model draft and another critique before the diff exists, so the assumptions surface while they are still cheap.

Claude CodeDRAFTER

Proposes the concrete path, names files, keeps the plan executable.

CodexCRITIC

Finds edge cases, calls out risk, and asks the question the first pass skipped.

YouGATE

Approve, override, or reject. The executor does not run until you choose.

The point is not autonomy theater. It is a local terminal that puts disagreement in front of you before any tool starts changing files.

the conductor

Not just a coordination tool.
A model that orchestrates models.

TalesSML is Tales' own small model — a 0.5–3B open base, fine-tuned on coordination data and run locally in ~0.18 s, no cloud and no per-token cost. It reads your task and decides how to coordinate the other models: the shape, who plays which role at which model, the order, when to verify, when to escalate to Opus.

talesml — orchestration plan
# one task in, a full orchestration plan out (local, ~0.18s)
{
  "shape": "debate", "difficulty": 0.74,
  "roster": [
    { "role":"drafter", "agent":"claude", "model":"opus" },
    { "role":"critic",  "agent":"codex",  "model":"gpt-5.x" },
    { "role":"executor","agent":"claude", "model":"haiku" }
  ],
  "verify": { "required":true, "method":"tests" },
  "escalate": { "to": { "agent":"claude", "model":"opus" } }
}

Same idea Sakana built Fugu's Conductor on — a coordination policy on top of existing models, not a frontier model from scratch — kept tiny, local, and free. A 986 MB fine-tune emits well-formed plans 100% / 100% / 92% of the time on general / mixed-signal / game-dev tasks, with zero malformed output. A pure-Rust keyword coordinator stays the zero-cost default and fallback, and each deterministic decision is cached locally so a repeat is instant and free.

tier the cost

Use expensive judgment.
Use cheap tokens for typing.

Put your strongest models on planning and critique, then hand the agreed plan to a cheaper, faster executor when the work is mechanical.

bash - tiered run
# strong models debate, a fast model implements
tales run "add OAuth login" \
  --drafter claude --drafter-model opus \
  --critic  codex  --critic-model  gpt-5-codex \
  --execute gemini --execute-model gemini-2.5-flash

run it

Type tales.
That is the whole UI.

No dashboard, no account, no hidden daemon. Connect the CLIs you already have and keep the trigger.

01connect

Open a workspace folder, approve permissions, then pick Claude Code, Codex, Open Code, Gemini, GLM, Kimi, or another CLI row.

02preflight

See profile memory, prompt forecast, cache state, and tool recommendations.

03plan

They discuss in a live terminal. Write multi-line prompts, scroll back through the thread, and interject anytime.

04pick

The recommendation appears behind a hard approval gate.

05execute

The chosen tool builds the agreed plan and returns a diff.

receipts

Heavy on ideas.
Light on disk.

tui binary1.5MB
rust code18.9k lines
telemetry0cloud calls
models∞via adapters

27 seconds

Watch a real run.

tales - demo

quickstart

Up in two minutes.

bash
# build it
git clone https://github.com/cesarfrancots/tales && cd tales
cargo build --release

# local preflight, memory, and evals
tales doctor --all
tales profile refresh
tales eval compare "fix lint errors"

# open the terminal
tales

Runs on macOS, Linux, and Windows. Full walkthrough in the documentation.