open source · runs on your Claude subscription
Many Claude Codes.
One cockpit.
And it wrote itself.
Put an agent on a schedule with a check that runs without the model: prints nothing, nothing happened, zero tokens. Or drive them yourself, in parallel, each in its own git worktree.
$ npx shadok-ai
Node 20 or newer. It opens the cockpit in your browser, installs the
claude CLI if you do not have it, and signs you in to your Claude account
itself. No API key.
The first minute
Someone is already there
You do not arrive at an empty box. An agent is waiting in the directory you launched from, it has looked at what is in there, and it opens by naming what it actually found and offering one thing it can do with it. Recognised nothing? It says so plainly rather than inventing a stack it thinks you wanted to hear. It is an offer, not a wizard — ignore it and the cockpit is exactly as it was.
It does not stop at one
They start each other
An agent in the cockpit can open another one, hand it a task in its own worktree, and be told the moment it finishes — or the moment it stops, waiting on a question someone has to answer. Nothing sits polling, and a child that dies says so too. You review the work, not the plumbing. Most of what this page describes was built exactly that way — one agent at the keyboard, and the ones it started.
They stop redoing each other's work
Agents run siloed, so the second one to reach a problem fixes it again. The cockpit keeps one shared table of what has been settled — a bug closed, a decision taken, a job already run. An agent that resolves something writes a line, and every other agent is handed what changed before its next message, without asking for it. A new line on the same subject replaces the old one, so the table stays short enough to read — and for code, git stays the truth.
And when you are not at the desk
Answer them from your phone
Connect a Telegram group and every agent gets its own topic. Their questions arrive as buttons you tap, photos or files you send land in the agent's working directory, and what it produces comes back the same way — a file you can open without going near a laptop. It is not a copy or a notification feed — it is the same session your browser is watching, so an answer you tap on the train shows up on the screen you left open. Speak instead of typing and the voice note is transcribed on the machine shadok-ai runs on — not handed to a transcription service — and read back to you before it counts as what you said. Send a video and it is watched, not just filed: stills are pulled out of it for the agent to look at, and whatever is said in it is transcribed the same way, on the same machine.
Put an agent on a schedule
Give one a recurring prompt: every thirty minutes, or every morning at nine in the time zone you name. Attach a guard command and it runs without the model — if the guard has nothing to report, the agent is never woken and the run costs nothing at all. A watcher that stays quiet most of the day is free most of the day.
Fly it with more than one pilot
Several people can drive the same agent at the same time. Open it in another browser, on another machine, or from Telegram: everyone sees the same answers, the same questions, and each other's prompts as they are sent. One process, one transcript, as many pilots as you have. Put a password on the cockpit and each pilot gets a login of their own — an invitation link they set their own password on — so every prompt arrives with a name on it.
Keeping a fleet in line
- Profiles
- A name for a role and a leash: the system prompt an agent starts with, the
model it runs, how hard it is told to think, the secrets it may see, and the
commands it may not run.
Forbid
git commitand it cannot commit. Pick one when you start an agent, and change it on one already running — it restarts in place and keeps the conversation, so a wrong pick costs you nothing. - Tweak
- Something about the cockpit itself bothers you? One click starts an agent in a clone of this repository with the room to change it. You describe the idea, watch it work, and read the whole diff before anything leaves your machine — it asks to connect your GitHub account only once there is something worth pushing, then opens the pull request from your own fork. And it stays with that pull request until it closes: it repairs a red build or a branch that has fallen behind, and tells you plainly when it cannot.
- Secrets
- Keys live in a vault outside your repository, never inside it. A profile names the ones its agents need and they arrive as environment variables when the agent starts. Send one from Telegram and the message carrying the value is deleted behind you. It goes both ways: an agent that logs into something itself can keep the credential there, so the next one does not start by authenticating all over again — and the value never passes through the transcript.
- Pace
- It watches how fast you are spending your five-hour and seven-day windows and holds a prompt back when you are running ahead of the pace that would use them evenly. Any message can push through when you mean it — it is a guardrail, not a wall.
It wrote itself
- Most of this code, and every spec behind it, was written by agents running inside this cockpit.
- They worked the way you would want them to: a spec, then a plan, then the code, then a pull request a human read and merged.
- They also left notes for whoever came next. The best file in the repository is the one listing everything they broke first.
All of it is in the open, if you feel like checking: see for yourself.
Why it is called that
Les Shadoks pumped.
They were French cartoon birds drawn in 1968, and the entire joke was that they pumped — relentlessly, exhaustingly, and for no result anyone could ever identify. One of their mottos: the more it fails, the more likely it is to work.
An agent woken every hour to report that nothing happened is pumping. You pay a model call to be told there was nothing to do, and it will tell you that twenty-three more times today. This is the tool that lets it stop: the check runs without the model, so a quiet hour costs nothing at all.
Nowhere on this page said any of that until today. That was an oversight, not restraint.
Les Shadoks (1968) — drawn by Jacques Rouxel, produced by AAA for the ORTF. Reproduced here to explain the name; all rights remain with the rightsholders. The series is at ina.fr.