Landing it9L
What it won't do1X
What it is5I
How it works12H
Outside & away15A
Get it1G
TADE
Run as many coding agents as you can land. Tade is where their work becomes merged work — and none of it is graded by the agent that did it.
Free and open source. MIT.github.com/mujacica/tade ↗Not in tade-sh 0.2.1 yet: the desk, the forecast and the scorecards — the source rows under Install have them.
Home01 / 46
What turns agent work into merged work
Plenty of things run agents in parallel. The work still has to be read, checked and merged before it counts — and that is where the day goes.
- Collisions, forecast before they happen Live work that would collide is marked on both agents while either can still give way, and the orchestrator is told which should.
- A desk of what is ready to land, sorted by trust Green, small and unquestioned first; then what waits on you; then what waits on its agent — each with the one sentence why.
- An independent judge, and its findings answered The agent accounts for each finding. The verdict is yours or the orchestrator’s, never the agent’s.
- Scorecards nobody graded for themselves Which harness, model, persona and template lands work, counted from what was recorded — and your own landed tasks replayed on a candidate.
- Mistakes turned into checks The same real finding twice in one project becomes a proposed hook line, lint rule or test — not one more paragraph an agent can read past.
Landing it02 / 46
Every finished piece of work, cheapest to trust first
Green, small and unquestioned first; then what waits on you; then what waits on its agent — each with the one sentence why. Looking at it lands nothing, and Tade never merges.
Built, tested, on main — and not published yet: tade-sh 0.2.1 has none of the landing desk, the forecast, the scorecards, races, replays or mistakes turned into checks. Until a release does, they are the source rows at the foot of Install.
Landing it03 / 46
Collisions, forecast before they happen
Live work that would collide wears ⇄ on both agents while either can still give way, and the orchestrator is told which should. It only ever tells — it never stops or holds anything.
Landing it04 / 46
Every file an agent touches
Marked the way git marks it, with the diff a click away.
Landing it05 / 46
The checks, before anybody else sees them
A push with nothing green behind it is held, with what is missing.
Landing it06 / 46
What an agent does with work that is green
Three answers, per project, never until you say otherwise. What is pushed stays watched after the agent has stopped, and a commit that settles red gets an agent.
- 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.
Landing it07 / 46
Jev, a judge whose findings are answered
It reads each change once it stops moving, for what nobody has time to. The agent accounts for every finding; the verdict is yours or the orchestrator’s, never the agent’s.
Landing it08 / 46
A mistake made twice becomes a check
Not another lesson in prose: something a machine runs, proposed the second time the same mistake is seen. The watch that looks for them, Mistakes made twice, is on wherever Jev is.
- Twice, in one project One question confirmed real about two changes — or the orchestrator seeing the same correction twice in finished work.
- Verdicts, not accounts On the judge’s side only verdicts somebody wrote are counted — never an agent’s account of its own work, or a probability.
- Only what a machine could catch A line in the commit hook, a lint rule or a test. Whether a change did what it was asked has no lint rule, so it is never proposed.
- Proposed, and parked It arrives as parked work, and picking it up is approving it. Nothing starts it but a person.
Landing it09 / 46
Scorecards nobody graded for themselves
Which harness, model, persona and template lands work, counted from what was recorded — counts first, and a rate only from five. Then your own landed tasks, replayed on a candidate.
Landing it10 / 46
One request, several agents, and you keep one
Two to four agents on different harnesses or models, side by side in the order the facts put them. That order is not a pick: nothing picks but you.
What it tracks11 / 46
Every agent, every token, every dollar
What your models charged, to the agent. A subscription is not money, and is never totalled with it.
What it tracks12 / 46
Tade has to be light, and proves it
What Tade and everything it runs is using — by project, by kind and by agent.
What it won't do13 / 46
What it won't do
Not limitations somebody is working on. The design.
- Nothing merges anything unless you asked for exactly that.
mergeisneverby 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 unless you turn one on One terminal, no build step, and
git pullis the upgrade. The away view is the only listener there is — off by default, on this machine alone, and gone when you close the window. - 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 it is14 / 46
The window
Agents left, the one you are watching in the middle, the orchestrator below. One terminal, no browser, no daemon.
What it is15 / 46
An orchestrator you talk to
Every tool as it runs — including the ones that fail, with the reason.
What it is16 / 46
Every agent gets a lane
Working, idle, waiting on you, failed, finished — read back from git, never remembered. And three of them are three different programs.
What it is17 / 46
Approvals, on your terms
Off by default, and every command an agent runs is written down either way.
What it is18 / 46
Voice, first
Hold ctrl+space and talk. Speech stays on your machine.
How it works19 / 46
Status is a query, not a memory
Tade owns no state of its own, which is why closing it is harmless.
How it works20 / 46
Ask for five things at once
What can run now runs. Looking at queued work is never starting it.
How it works21 / 46
The whole plan, before any of it starts
A column per step, an arrow for every wait, and the reason under it.
How it works22 / 46
“Every Monday, update our dependencies”
A rule, an instruction, and a record of every run.
How it works23 / 46
A watch looks before it acts
A cheap check, and an agent on each new finding. It never starts, steers or stops one on its own.
How it works24 / 46
ctrl+k finds anything
Agents, files in every worktree, and the lines inside them. file:42 goes straight to a line.
How it works25 / 46
The repository is right there
The file tree, the diffs, the branch, and a terminal in the same worktree.
How it works26 / 46
Extensions
Every one of them down the side, and the one you pick in full: its tools, its watches, its settings, and what it wants before it will run.
How it works27 / 46
Already on, before anybody asks
Six of the seven that ship with Tade, each on unless you turn it off — the seventh, Intake, has a chapter of its own further down. Anything else is listed, readable and inert until you say otherwise.
- 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_checklooks and changes nothing;deps_updatemoves 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.
mergeisnever, 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, with a chapter of its own under Landing it. Paste a key and it is on; with none, none of it runs and nothing else changes.
- Resources One
psfor the machine, shared by every reader and split by project, kind and agent — so watching it costs nothing.
How it works28 / 46
Every MCP server in one place
A server you turn on becomes an extension whose tools are its own, handed to pi, Claude Code and Codex alike — and every call comes back through the window.
How it works29 / 46
The one thing Tade is told rather than derives
Kept word for word, in a file you own.
How it works30 / 46
pi, Claude Code and Codex, side by side
One harness per agent. Each signs in as itself, and keeps its own accounts.
Outside & away31 / 46
Somebody else asks, and you decide
A software factory with a person in the middle of it — and, once you turn the away view on, a remote control for what it makes. A rule you wrote lets a request in, and the task it makes is parked until you approve it; but a rule is not a watch, and there is no tade intake watch.
Outside & away32 / 46
Four doors, and each of them shut
Each is a poll on Tade’s own clock, never a webhook, so a machine that was asleep missed nothing. Jira is not among them and there is no switch for it: a webhook wants a public address answering in seconds.
- cli A line you type at this machine, into Tade’s own spool: no key, no endpoint, no account.
- github One repository’s issues, polled every ten minutes.
fromis the logins whose labelling counts — and a label says nothing about who put it there. - slack
@tadein one channel, polled every two minutes. Tade notices a mention; it does not answer one. - linear One team’s labelled issues, polled every ten minutes. Nothing is ever posted back: that watch implements no reply at all.
Outside & away33 / 46
They land in the window you already have open
Who asked, the door it came through, and how far each got — a refusal is a row like any other, and so is one Tade gave up on.
Outside & away34 / 46
Six steps, and the middle step is yours
Outside work becomes a proposal, then tasks, then agents, then checks — each step a different party, and none of them does another’s job.
- A look finds it A watch on Tade’s own clock, never a webhook. One finding per revision: an edit is news, a comment is not.
- A rule in your own config allows it Never the requester’s role at the source: the key that matched goes into the work, so the record names the key to go and remove.
- You approve it The default is
propose: the task is made and parked. What intake automates is the typing. - It is stamped from a published version Resolved when it was accepted, immutable after — or one ordinary task, where the grant names no workflow.
- The queue, the checks and a review The ordinary queue, the project’s own checks, and a review nobody here merges.
- A status goes back, if you let it Seven fixed sentences, at most one per stage, never a word an agent wrote.
Outside & away35 / 46
A stored plan with holes in it
A list and a form, never a canvas: a step is told by a persona, its prompt is literal, and a published version cannot change once it is out.
Outside & away36 / 46
A page your own machine serves
Scan the code in the window and approve the device at the machine. A yes grants it everything, and what it should not have is a box you untick.
Outside & away37 / 46
What needs you is first, every time
Its own code, drawn over a made-up morning. Nothing is uploaded: your machine serves it, and a page opened while Tade is closed says it cannot reach it rather than drawing an empty room.
Outside & away38 / 46
Every press names the state it expects
The remote control, and it is off until somebody at the machine turns the away view on, then per device, then only from this machine or an https name you named — so a credential that crossed a network in the clear never buys an act. A device acts as a request, never as your own words.
Outside & away39 / 46
Every plan, across every repository it spans
The window shows a plan beside the agent you have open. This is every one of them at once, read on a round rather than because an agent is in front of you.
Outside & away40 / 46
What the morning cost, and what is left of each plan
Billed, priced at list and run on a plan are three figures, never one. What it cost is a grant: a device without spend sees the work and not the money.
Outside & away41 / 46
The same floor, under a thumb
Tade is the middle of the tab bar, and what you say there reaches the conversation you type into at the machine — answered with its tools narrowed to that device’s own view.
Outside & away42 / 46
Every device, and a box per thing it may do
Taken back here, a box at a time — a device can never widen itself. A device granted nothing still answers what the away view is for: is anything waiting for me.
Outside & away43 / 46
Only the first switch is off, and it is the decision
Everything under it is on and still nothing to a device that was not granted it. tade web on writes the switch and takes effect the next time Tade starts; Settings in the window applies as you change it.
Outside & away44 / 46
On this machine, or on the wifi
Two decisions, not one — and what anybody on the same network could read is said above the code. tade web says it whole, with the way out: tailscale serve, for HTTPS.
Outside & away45 / 46
Refused by absence, not by a flag
Six of them, and each is a mechanism rather than a promise. A sleeping laptop serves nothing, and the page never pretends otherwise.
- Nothing is published, and no door is widened Publishing a workflow, turning a source on, granting an account, changing what a device may do, and any setting that widens what an agent may do or who may reach Tade have no route at all.
- No agent is started from away
steeris a message into a conversation already running, andreopenis never a new agent: nothing here starts one that never ran. - Nothing is pushed, merged or overruled Not a push, a merge, a check overruled or a command run, and no diff.
- Nothing types into a lane An agent’s screen is its last rows as text, read while you look, with paths and keys taken out. What you tell it goes through
steeror through Tade. - A sleeping laptop serves nothing No relay, no tunnel, no queue for later — and
unreachable since 11:07is never stopped: rows keep their state and their age freezes at the moment it was last true. - It is gone when the window closes The listener is in the window’s own process and dies with it.
Get it46 / 46
Install
One command, then tade.