# Tade > Run Claude Code, Codex and pi coding agents in parallel in one terminal, with a queue that knows what waits on what, per-agent cost, checks and a judge. MIT. Run a team of coding agents. Know what each one did, what it cost, and what Jev flagged. Tade is free software under the MIT licence: https://github.com/mujacica/tade. It is a terminal program, not a web app or a service. There is no account, no server and no cloud component. ## What is only true of Tade Many tools run coding agents in parallel in a terminal. These four are what Tade has that, as of this writing, the others do not: - **A queue, not a pile** — Every piece says what it waits on, and holds when that fails rather than running anyway. - **Checks against a commit** — What ran, on which commit, and unknown where nothing did — never a blank that reads as green. - **Money that is not guessed at** — A quoted price and an estimate are never added together, and a subscription is never totalled as dollars. - **A finding somebody answers for** — The agent says it fixed it or why it is not real. You rule. Both are kept. ## What it will not do These are the design rather than a backlog: - **Nothing merges anything** — unless you asked for exactly that. merge is never by default. - **A judge answers, it never decides** — It may only ever add caution — never approves, merges, closes, unholds or shortens anything. - **There is no tool that deletes a branch, a worktree or a folder** — and asking explicitly does not produce one: that is a person with git in a terminal. - **Closing Tade never stops your agents** — Closing the window and stopping the work are two different acts. - **There is no daemon** — Schedules run only while a window is open. What came due while it was closed is caught up once, or skipped. - **No server, no browser, no build step** — One terminal. git pull is the upgrade. - **Being there is not being on** — An extension in the folder is listed and never imported until somebody turns it on. - **Nothing installs anything behind your back** — The exact command is on the page before it runs. - **Tade reports its own trouble, never your work** — What you said, what an agent wrote, task titles, prompts and notes are never in its telemetry. Paths are scrubbed to ~. - **Tade never holds your sign-in** — Every harness signs in as itself. A key you do paste is written to ~/.tade/config.yaml, and any agent you run can read it — agents run as you, and nothing sandboxes them. Export its variable instead and it is never written down. ## What is on without anybody turning it on Six extensions ship with Tade and are on unless turned off. Anything in `~/.tade/extensions/`, whoever wrote it, is listed and off until somebody turns it on. Being on is not being watched: almost nothing is watched until you turn a watch on, and the one exception is Reviews' watch on CI for every branch the project has checked out, which is where a pushed agent’s work is. - **Checks** — Reads what to run from the project’s own CI workflows and commit hook, one suite at a time per checkout, and records what ran against the commit it ran on. - **Dependencies** — deps_check looks and changes nothing; deps_update moves versions on in the agent’s own worktree. Its daily watch asks OSV and starts an agent per vulnerable package — never a major on a clock. - **Reviews** — One shared poll behind your open pull requests, what CI says and the comments nobody answered. merge is never, and its CI watch is the one thing on before you ask. - **Sentry** — Turns an issue into an agent whose context already holds the stack trace, the trace and the logs. Its token sits in config.yaml, which any agent you run can read. - **Jev** — The judge, and a chapter of its own below. Paste a key and it is on; with none, none of it runs and nothing else changes. - **Resources** — One ps for the machine, shared by every reader and split by project, kind and agent — so watching it costs nothing. An MCP server somebody turns on is an extension whose tools are that server's tools, handed to every harness down the path Tade's own tools already take. Every call comes back through the window, so a server that was turned off, a credential that has gone and a tool outside its allow-list are all answered at the moment of the call. ## What an agent does with work that is green Three answers, set per project over the machine's own, and `never` until somebody says otherwise — so a Tade nobody has configured commits and stops. What is pushed stays watched after the agent has stopped: a commit that settles red is picked up and fixed, and nothing merges anything. - **Nothing is pushed** — never, and the default: agents commit and stop, and nothing of theirs leaves the machine. - **The branch it is on** — branch, once the checks are green. Agents that share a checkout share that branch, so a push carries every commit on it. - **Its own branch, and a review on it** — branch-and-review, which wants a worktree each: agents sharing one checkout have no branch of their own, so Tade says so rather than pushing. It never merges what it opened. ## How a Jev finding is settled Jev answers bounded questions with a probability and no prose, and may only ever add caution — it never approves, merges, closes, unholds or shortens anything. Four parties settle a finding, and none of them may do another's job: - **It flags** — A branch that has gone quiet is read against the rubric: injection, secrets, permissions, swallowed errors, missing tests, whether it did what was asked. - **The agent answers for it** — Whoever wrote the change gets the question in the judge’s own words — material to judge, never an instruction — and says it fixed it, or why it is not real. - **Somebody rules** — The verdict is yours or the orchestrator’s, and it has to name what in the change decided it: an agent calling its own work a false positive is the defendant grading the exam. - **The question is measured** — Confirmed over judged, per question. Under five verdicts no rate is drawn — so one that never fires gets deleted, and one that is always wrong gets rewritten. ## Install ```sh npm i -g tade-sh tade ``` - Node: ≥ 22.19 - git: any - tmux: optional — agents that outlive the window - whisper.cpp, ffmpeg: optional — speech - gh: optional — pull request state ## What people say to it, and what it answers Worked examples of the interface. The project names, figures and findings in them are invented. ### brief me Morning. stripe-v15 is blocked on npm i stripe@15, 1 still working and Sentry has 3 new issues in checkout. ### how do I install it `npm i -g tade-sh` `tade` That is the whole of it. There is no build step, so git pull is the upgrade. ### what won't it do? Ten things, and they are the design rather than a backlog: Nothing merges anything unless you asked for exactly that. A judge answers, it never decides. There is no tool that deletes a branch, a worktree or a folder. The other seven are on the page. ### run the tests and tell me what broke Opening a tests terminal first, then running it there. ### every Monday, update our dependencies Done. It starts an agent each Monday at 09:00 and keeps a record of every run. There is no daemon — what came due while Tade was closed is caught up when it opens. ### what does it cost? Tade is MIT and costs nothing. What the agents cost is whatever your models cost. A subscription is not money, and is never totalled with it. ### show me the queue What can run now runs; the rest waits for exactly what it needs and starts by itself. Looking at queued work is never starting it. ### is my code sent anywhere? Not by Tade. It reports its own trouble, never your work. What you said, what an agent wrote, task titles, prompts and notes are never in its telemetry. Speech stays on your machine by default. A key you paste lives in ~/.tade/config.yaml, which any agent you run can read — export its variable instead to keep it out. ## Writing Posts about running coding agents, from the people building Tade. The index is https://tade.sh/blog/, the feed is https://tade.sh/rss.xml, and every post below is also served as plain markdown at the .md address next to it — the same words without the page around them. ### A check nobody ran is not one that passed - Published: 2026-09-28 - Author: The Tade project - Tags: checks, ci - Page: https://tade.sh/blog/a-check-nobody-ran-is-not-a-check-that-passed/ - Markdown: https://tade.sh/blog/a-check-nobody-ran-is-not-a-check-that-passed.md An agent runs the checks and then commits, so HEAD moves under the run. Carrying it forward honestly means comparing trees rather than commit ids. What it covers: - The ledger - Why the obvious thing does not work - A run is about a tree, not a commit id - What a project checks is what the project already says - The gate, and exactly how much it can do - What it is worth ### A queue that holds, and says why it did - Published: 2026-09-28 - Author: The Tade project - Tags: queue, agents, design - Page: https://tade.sh/blog/a-queue-that-holds-and-says-why/ - Markdown: https://tade.sh/blog/a-queue-that-holds-and-says-why.md Three agents built this blog in order. Six times in September a fourth was held because another was already mid-edit in the files it planned to change. What it covers: - The chain that made this blog - A column is a step, not a rank - The check at the moment of starting - Four things it refuses to do - What it saved - Looking is never starting ### From a red main to green in thirty-six minutes - Published: 2026-09-28 - Author: The Tade project - Tags: ci, watches, checks, agents - Page: https://tade.sh/blog/a-red-main-fixed-before-anybody-noticed/ - Markdown: https://tade.sh/blog/a-red-main-fixed-before-anybody-noticed.md On 28 September ubuntu-latest went red on Tade's own main at 08:15. A watch found it at 08:20, an agent removed the race, and CI was green again by 08:51. What it covers: - The half of CI that has nothing to hang off - What the agent was told - Why the bug was hard - What the fix was, and what it was not - What it cost - What it saved, honestly ### A watch may only ever add work - Published: 2026-09-28 - Author: The Tade project - Tags: watches, safety, sentry, dependencies - Page: https://tade.sh/blog/a-watch-may-only-ever-add-work/ - Markdown: https://tade.sh/blog/a-watch-may-only-ever-add-work.md Nine watch schedules looked 1,447 times in four days here. Four findings started an agent, 425 looks could not look at all, and none of them may push or merge. What it covers: - The arithmetic of four days - Ticked and not ticked - The three that matter, and what each refuses - A look that could not look says so - The one that is still wrong, and why - What a watch is not allowed to decide ### Every picture on this site is drawn by the program - Published: 2026-09-28 - Author: The Tade project - Tags: screens, how-this-is-built - Page: https://tade.sh/blog/every-picture-is-drawn-by-the-program/ - Markdown: https://tade.sh/blog/every-picture-is-drawn-by-the-program.md A screenshot starts going out of date the day after it is taken. Every screen in a post here is rendered by Tade itself, from the scenarios its own tests protect. What it covers: - What you are actually looking at - Where they come from - In a post - What this does not fix ### Forty-eight findings, nine of them real - Published: 2026-09-28 - Author: The Tade project - Tags: jev, review, calibration - Page: https://tade.sh/blog/forty-eight-findings-nine-of-them-real/ - Markdown: https://tade.sh/blog/forty-eight-findings-nine-of-them-real.md A judge that flags things is easy. This is the table saying how often ours was right, which question turned out to be noise, and what was done about it. What it covers: - The loop - The table - The nine - What the table changed - What it cost - What a judge is not allowed to do ### Three kinds of dollar, each one marked - Published: 2026-09-28 - Author: The Tade project - Tags: spend, cost - Page: https://tade.sh/blog/three-kinds-of-dollar-each-one-marked/ - Markdown: https://tade.sh/blog/three-kinds-of-dollar-each-one-marked.md In seven days this machine spent $200.77 that a harness priced exactly, plus 3,177 million tokens no dollar figure covers. Tade never adds those together. What it covers: - Who priced it, and the three answers - A subscription is not money - A price is a fact with a date on it - And the hours are two numbers, not one - What this is worth ### What Tade will not do, and why not - Published: 2026-09-28 - Author: The Tade project - Tags: design, safety, refusals - Page: https://tade.sh/blog/what-tade-will-not-do-and-why-not/ - Markdown: https://tade.sh/blog/what-tade-will-not-do-and-why-not.md Ten refusals that are the design rather than a backlog, including the three that will cost somebody something and the one that is only true if they choose tmux. What it covers: - It does not contain your agents - It does not merge anything - It does not delete anything of yours - A judge answers; it never decides - There is no daemon, and nothing hot-reloads - It remembers nothing, which cuts both ways - Your agents probably do not outlive the window - It does not send your work anywhere - It will not make a check look green - And no browser, no server, no build step - The three honest numbers ### Why a task never spans two repositories - Published: 2026-09-28 - Author: The Tade project - Tags: multi-repo, design, agents - Page: https://tade.sh/blog/why-a-task-never-spans-two-repositories/ - Markdown: https://tade.sh/blog/why-a-task-never-spans-two-repositories.md One orchestrator runs agents in every repository at once. What it refuses to do is let a single task span two of them, and the reason is git rather than tidiness. What it covers: - The obvious design, and why it is wrong - What an effort is instead - An effort has no state, deliberately - A cross-repository wait is a wait on when - agents.workspace, per project - What it is worth ## More - Repository and source: https://github.com/mujacica/tade - How Tade is built, and every invariant it keeps: https://github.com/mujacica/tade/blob/main/AGENTS.md - Package: https://www.npmjs.com/package/tade-sh - The front page: https://tade.sh/ - The posts, newest first: https://tade.sh/blog/ - Feed: https://tade.sh/rss.xml