A hundred eyes on your AI agents.
A web workspace for the coding agents you already run in tmux. See which one is working and which is waiting for you, open what it wrote in one click, and answer from your phone.
curl -fsSLO https://raw.githubusercontent.com/andreaderuvo/argus/master/install.sh && bash install.sh
Works with Claude Code, Codex, Gemini CLI, Aider, OpenCode, and anything else that runs in a terminal.
Seven things it does, on a lab that does not exist.
Real screenshots of Argus, taken by a script on an invented lab: a Salmonella study and a small web shop, with agents on both. Every name, path and number in them is made up.
Agents work for minutes. Then they stop and wait for you.
You find out forty minutes later, over ssh, squinting at a pane. Argus takes care of the part of the job that is not typing: knowing, seeing, answering.
Know when one needs you
Every session says working or waiting for you, worked out from the pane itself. There is nothing to install in the agent.
See what it produced
Every path an agent prints is a link. The report, the plot and the PDF open beside the session that made them, already rendered.
Answer from anywhere
The same sessions, still running, on your phone, with a key bar for Ctrl, Esc and the arrows. Close the tab and the work carries on.
It attaches to the sessions you already have.
Argus is one more client of your tmux server. It does not wrap your agent or move your work, and closing the browser never stops anything.
- Install it where your agents runA workstation, a server, a box in a cloud. One script, Docker, or pip.
- Open the link it printsIt carries a private token, and there is a QR code for the phone. No account.
- Your sessions are already thereEvery tmux session, with its files and reports. You can start new agents from the page too, with their first instruction typed in.
Pass work from one agent to the next.
Keep your prompts in a library, with placeholders filled in for each project. Drag one onto a session and it is typed there. The Enter is left for you, so the last word is yours.
Desks, not tabs
Terminals, folders and documents side by side, one desk per project, kept between visits.
Select, and hand it over
Select what one agent said and a button offers the other sessions of the desk. While you write a prompt, one press sends it to another agent as well.
Start an agent from the page
In a folder, with its first instruction, and its options in words: what it may do without asking, which model, how hard it thinks.
A team of agents on one goal.
Write the goal in words and pick a shape. Argus prompts each agent in turn, runs your tests or your benchmark between turns, and moves on from the numbers and the reviewer's verdict. It keeps going with every browser shut.
A graph, not a chat
Steps and arrows. Two agents try two ideas at once, each in its own git worktree, and a join waits for both before the reviewer keeps the better one.
The numbers decide
A check is a command: tests, a benchmark. Its exit code says pass or fail, and a failure goes straight back to the agent with the output in front of it.
Click it, or write it in Mermaid
Start from Optimise, Fix a bug, Write, Build and review and three more. Click a step to change it, or write the team as a Mermaid flowchart and watch it drawn as you type. Save the shape as your own, or keep it in the repository as
team.yaml.Agents that report, not a screen read
With the Argus plugin each agent asks for its task and reports its turn through a tool, with its verdict. An agent that tries to stop without reporting is sent back to do it. Every turn is written to
TEAM.argus.mdin the project.Or ask an agent to design it
"Make me a team that speeds up the parser." The agent writes the team, checks it, and leaves it in the project for you: one tap opens it, ready to start.
As much on its own as you like
A press at every round, until something fails, or until the goal is met.
Ask your agent. It sets up the desk.
Install the Argus plugin in Claude Code or Codex and Argus becomes one of the agent's own tools. Say open a desk called pippo with a Claude and a Codex and the tab appears with both of them running. The agent also tells Argus when it starts, when it finishes and when it needs you.
One install
/plugin marketplace add andreaderuvo/argus, then/plugin install argus@argus. Codex reads the same plugin.In your own words
Open, rename and fill desks. Start agents with their options, each in its own worktree. Ask you a question and wait for the tap on your phone.
The agent says what it is doing
A turn starting, a turn ending with its last words, a wait for you naming the command it wants to run. The lights on the tabs come from the agent, not from a guess.
Your decisions stay yours
It cannot answer its own questions, start an agent that asks nobody anything, or remove a desk.
Your desk, in your pocket.
It is the session that was already running, not a copy of it. You get a key bar for the keys a phone has not got, a long press to open a path, and a box to write a line in when the keyboard fights the terminal.
And it reaches you with the browser closed. Point Argus at ntfy, the public server or one of your own, and the phone buzzes when an agent finishes or asks: "cgdist: needs your permission to use Bash", on the lock screen, with the tab long shut.
Everything an agent's work points at.
It runs on your machine, and nothing leaves it.
No cloud
No relay, no account, no telemetry. Code, sessions and files stay where they are.
A token per device
Every request carries a private token. Revoke a phone without touching the others.
A jail for files
Only the folders you name can be read, and writing is off unless you turn it on.
It works best behind a LAN, a VPN or Tailscale. How it is kept safe
Several machines? Panoptes.
Argus is the workspace for one machine. Panoptes is one page over all of them, ordered by which one needs you: which agents are working, which machine is unhealthy, who is waiting. It holds restricted watcher keys and never sends a machine's key to the browser. Use Argus alone first; add Panoptes when one tab per machine stops scaling.
Running in a minute.
Linux and macOS, or Windows through WSL or Docker. It needs Python 3.11 or newer and tmux, and it prints a link: open it, or scan its QR code with your phone.
# read it first, then run it curl -fsSLO https://raw.githubusercontent.com/andreaderuvo/argus/master/install.sh less install.sh && bash install.sh argus --allow-write # prints a URL with a token in it
git clone https://github.com/andreaderuvo/argus && cd argus
ARGUS_UID=$(id -u) ARGUS_GID=$(id -g) docker compose up -d
# images for amd64 and arm64: ghcr.io/andreaderuvo/argusgit clone https://github.com/andreaderuvo/argus && cd argus
pip install -r requirements.txt
python3 -m app.main # prints a URL with a token in itBefore you try it.
Do I have to change how I use tmux?
No. Argus attaches as one more client to the sessions you already have. What you see in the browser is the same pane you would see over ssh, and closing the tab leaves everything running.
Does it need a plugin in my agent?
No. It reads what the session prints and types into it, the way you do, and it works out working and
waiting from the pane. An optional one-line hook lets an agent ring you on its own, and an optional MCP server, argus-mcp, gives it Argus as tools: ask you something and wait for the answer, start another agent, see who else is working.
Will my phone tell me when an agent is done?
Yes, even with every tab shut. The server watches the agents on its own and, with three lines of config, sends each ring to ntfy: install its app, subscribe to your topic, and a finished turn or a question arrives as a notification. On a public server the topic is the password, so pick one nobody can guess, or run ntfy yourself and nothing leaves your network. Off until you set it.
What happens when the machine reboots?
The processes die with tmux, as they would anyway. Argus keeps a note of which agent ran in
which folder and which conversation it was in, and offers them back on the Sessions screen:
claude --resume and codex resume pick up where they were.
Is it safe to reach from outside?
It gives shell access behind a token, so treat it that way: keep it on a LAN, a VPN or Tailscale. Tailscale also gives you a certificate for free.
How is this different from a web terminal?
A web terminal gives you the terminal. Argus covers the rest of the job: the files the agent writes, the report it produced, the paths it printed, knowing when it needs you, and the phone.
What is it built with?
Python on the server and plain JavaScript in the browser. There is no build step and no database. MIT licensed.