shadok-ai
Star

open source · runs on your Claude subscription

Many Claude Codes.
One cockpit.
And it wrote itself.

Run as many real Claude Code sessions as you like, side by side, each in its own git worktree. When one of them has a question, you answer it with a click.

$ npx shadok-ai

Node 20 or newer, and the claude CLI installed. It does not have to be signed in — the cockpit does that part. No API key.

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.

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, and photos or files you send land in the agent's working directory. 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.

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.

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, the secrets it may see, and the commands it may not run. Forbid git commit and 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.
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

All of it is in the open, if you feel like checking: see for yourself.