What an agent can do - andreaderuvo/argus GitHub Wiki

What an agent can do in Argus

Everything you might ask Claude, Codex or Gemini to do in Argus, in one table: what it does by itself, what it does after you tap Do it, and what it cannot do β€” with why, and what to do instead. It assumes the Argus plugin (or argus-mcp, or argus-say from a shell): the tools named here are what the agent uses.

βœ… by itself β€” the agent's key allows it. πŸ‘† with your OK β€” the agent requests it; you get the question with Do it / No β€” a bell (on the phone too), and a card in the bottom-right corner, on every screen, that stays until you answer; on Do it Argus does it, through the same checks as when you do it. Nothing happens before your tap: a team asked for in a desk is started β€” and its desk made β€” only on Do it. ❌ no β€” not through Argus, on purpose.

Desks and windows

You say to the agent How Notes
"open a desk called Trading" βœ… open_desk made empty if there is none; every open page switches to it, and a page that was not open or not told (Argus restarting) still gets it β€” it is kept on the machine, not lost when that page saves its own desks
"rename the desk Desk 11 to Pippo" βœ… rename_desk refused if the name is taken
"rename the desk" (no name: the one I am in) βœ… rename_desk without desk the desk holding the agent's own session; if it is in several, it says which
"put the session kraken-risk on the desk Trading" βœ… open_desk with session a window on an existing session; nothing started
"make ~/kraken the folder of the desk Trading" βœ… open_desk with folder (show: false) where its browsers land and its new sessions start; every open page takes it. A team started in a desk with no folder gives it the team's (desk_folder in start_team: true always, false never)
"close the gone windows" βœ… close_gone_windows (desk for one) windows of ended sessions, on the machine and every open page; argus-say close-gone
"open a Claude and a Codex in Trading, in ~/work/x" βœ… start_agent with desk the windows land in that desk
"remove these windows" / "tile them" ❌ β€” the windows of a desk are yours: the window list, the layout menu (a whole desk: close_desk, below; windows of ended sessions: close_gone_windows)

Sessions and agents

You say How Notes
"who else is working here?" βœ… who every session, its agent, folder, working or waiting
"start Claude with sonnet, high effort, on this, with this prompt" βœ… start_agent options by name, from the agent's own --help: model, effort, edit files freely
"…in its own git worktree" βœ… start_agent with worktree_branch a checkout on its own branch, so two agents never edit one tree
"…with no questions at all" (--dangerously-skip-permissions, --yolo) πŸ‘† request start_agent asked, unless you ticked Start an agent with no questions at all in Settings β†’ Agents
"tell the reviewer the diff is ready" βœ… relay typed into that session, with or without Enter
"close the desk Trading" πŸ‘† request close_desk its windows go from every open page; the sessions in them keep running. Not the last desk
"end the session kraken-check" πŸ‘† request kill_session and everything running in it
"rename the session x to y" πŸ‘† request rename_session
"update the Argus plugin in Codex" πŸ‘† request update_plugin agent: claude or codex; the question says from which version to which. Refused when it is already the latest
"reload the plugin in the sessions" βœ… request reload_plugins never asked: the Claude sessions waiting at their prompt get /reload-plugins; the busy ones are left alone
"read what the other agent wrote on its screen" ❌ β€” Argus never reads a pane (it can crash tmux on some builds); ask the other agent to write it to a file, or relay
"open a terminal into …" ❌ β€” a terminal can type anywhere; that stays with the browser
"bring back the agents lost in the reboot" ❌ β€” the Sessions screen offers them, one press

Teams

You say How Notes
"how is the team doing?" βœ… teams round, whose turn, the last check
"make me a team that …" βœ… team_check, team_propose written, checked, left in the folder as team.yaml; waits over your desk and in Team. See Asking an agent to design one
"start the team Kraken paper in the desk Trading" πŸ‘† request start_team a proposal, one of your models, a template or the folder's team.yaml, by name; the question says the folder, the goal, which agent runs each step and what they may do; layout arranges the desk as its agents arrive (grid β€” the default, as in the Team sheet β€” cols, rows, or none)
"continue / pause the team" πŸ‘† request team_go / team_pause
"reset the team" / "restart it from scratch" πŸ‘† request team_reset / team_restart deletes what its reset: declares β€” the question lists the files; restart also reads its team file again, starts from round 1 and closes the desk's windows of ended sessions. Asked unless ticked in Settings β†’ Agents. See Pause, Stop, Reset, Restart
"stop the team (and close its sessions)" πŸ‘† request team_stop (kill) the log, the files and the worktrees stay
in a team: "what is my task?" / "I'm done" βœ… team_task, team_done the agent's own turn β€” see How an agent reports its turn
"change the running team's graph" ❌ β€” for nobody: stop it and start the changed one
"forget the finished team" ❌ β€” its window's buttons

You

You say How Notes
"ask me before deleting anything" βœ… ask the question on your phone, with buttons; it waits for the tap
"ring me when you're done" βœ… ring done, failed or asking; on the phone through ntfy if you set it up
(answer its own question) ❌ β€” never: the point of asking is that a person answered

To-do

You say How Notes
"what's on my list?" βœ… todos
"add: check the CI later" βœ… todo_add
"work on #3 and mark it done" βœ… todo_set doing when it starts, done when it finishes; the list shows who
"take #3 off the list" πŸ‘† request todo_delete

Files, git, prompts

You say How Notes
read, write, edit files βœ… the agent's own tools it works on the disk directly, as always; Argus's file routes are for the browser
"make a worktree on branch x" βœ… worktree inside the folders Argus serves
"remove that worktree" πŸ‘† request remove_worktree deleting a checkout deletes work
"use my Referee prompt" βœ… prompts read only
"save this as a prompt" / "change my settings" ❌ β€” your preferences are read only to it

The machine and Argus itself

You say Notes
"what's running, how loaded is it?" βœ… who; GET /api/overview ❌ the System screen's detail
"open port 5002 to my phone" ❌ Ports screen: proxying a port is your call
label a process, tokens and devices, the journal, tmux config, plugin install/update, stopping Argus ❌ Settings β€” each changes who can reach what

Letting some through without asking

Settings β†’ Agents has a box for every action an agent can request. Ticked, it is done on request straight away β€” you still get the bell saying it was done; unticked, you get Do it / No first. Any of them can be ticked, the risky ones too (marked risky: they delete files, end work or let agents loose) β€” so a team can be started or restarted by an agent with nobody at the screen. A team whose agents ask nobody (everything) also needs Start an agent with no questions at all ticked. The boxes are kept on the machine, in the preferences, which an agent's key can read but never write: no agent can tick one for itself.

The same, in ~/.config/argus/config.yaml (added to what is ticked):

agents_without_asking: [team_pause, team_go, todo_delete]

The list of what can be requested is GET /api/agent/actions, and the request tool's own list of actions; from a shell, argus-say request <action> key=value….

How a request goes

sequenceDiagram
  participant You
  participant A as the agent
  participant Argus
  You->>A: "start the team Kraken paper in the desk Trading"
  A->>Argus: request start_team {team, desk}
  Argus->>Argus: finds the team, its folder and goal, an agent per step
  Argus-->>You: "claude-1 asks to start the team Kraken paper in … β€” Do it / No"
  You->>Argus: Do it
  Argus->>Argus: the desk, then POST /api/teams with the full key
  Argus-->>You: the team's window and its agents', in Trading
  Argus-->>A: done
Loading

Something that cannot be done as asked β€” a team that does not exist, no goal, a check with no command β€” is refused before you are asked, with the reason, so the agent can fix it.

⚠️ **GitHub.com Fallback** ⚠️