Docs / Check on the work
Get told, instead of watching
Work you handed off runs on its own. Waiting for it should cost you nothing — so the point isn't to keep looking, it's to be told the moment something happens.
Be told when it's done
oga watch waits quietly and writes an event when the work asks a question, fails, is cancelled, or finishes. Run it in the background and forget it:
oga watch 8f2c1a94-... --timeout 30m &
Wait on several tasks by naming several IDs: oga watch <id> <id> <id>. Add --all when you also need tool, command, file, and error events.
The Oga app shows the same thing on screen: what's running, what's waiting on you, and everything that happened inside a run. The duration counts only time spent running, so a task scheduled for later or waiting for your answer does not look like it was working. Updates stay responsive during busy periods, and the app catches up if it falls behind. Every task in the list names the project it runs in, and work with a copy of its own shows the branch beside it, so a list spanning several projects still reads at a glance. Any files or images you handed off with the request show up right beside it, so you can open them again without hunting for the originals. Under the follow-up box, the task footer shows how full the worker's context is and how far it has grown, so a long run filling its window never surprises you. The worker's words read at full width, while each stretch of tool calls folds into one short line you can open to see every step. Expand a lookup or task action to read its result in a short, readable view. Long results are capped so one response never takes over the activity record. When a worker hands parts of the job to subagents, each subagent gets its own group, named for what it was asked to do, with its status and its answer once it arrives; subagents started together sit under one row, marked with how many are still running so a collapsed group tells you at a glance, and settling once every one of them has. Your request, follow-ups, answers, and instructions show just as you wrote them, and each step shows in its readable form. To see the raw data behind any message or step while troubleshooting, turn on Show technical details in Settings → Appearance.
To copy a request, reply, question, or response, point to it and click the copy icon in its top corner. Code blocks have their own copy icon, so you can take just the code. On a touch screen, the icons stay visible. Selecting text also copies it.
The Oga app tells you even when you are somewhere else: a task that finishes, stops short, or needs an answer raises a notification, and clicking it opens that task. Several tasks landing at once arrive together instead of one banner each, and the task you already have open stays quiet. Turn this off under Settings ▸ Notifications.
Read the whole thing
When you want the full picture — what came back, what the work was allowed to touch, and what it cost:
oga inspect <task-id>
oga tasks lists today's. Search active history by feature, file, or command with oga tasks --query "text".
Answer a question it asked
Work can stop partway and ask you something it can't decide on its own. Ask your coding agent to answer it — the reply goes back into the same session, and the work picks up exactly where it stopped rather than starting over.
Tell it something while it works
You can correct work while it runs, without stopping it. Ask your coding agent to pass the instruction on — a Claude or OpenCode worker takes it straight away and carries on with what it was doing, so nothing done so far is lost. Any other worker picks it up the moment its current run finishes.
Pick it back up
Work that failed, was cancelled, or got stuck can be resumed:
oga resume <task-id>
oga resume <task-id> -m "tests count as in scope - keep going there"
When you need a completed task to do more, give it a new instruction:
oga resume <task-id> -m "move the status dot to the end of the title"
Move it to another worker
When the account behind a task is out of usage, or the work belongs on a stronger model, move it without losing the task:
oga handoff <task-id> --worker claude
oga handoff <task-id> --model opus
It keeps its id, its request, and its place in line. A task waiting on other work, or on a start time you set, keeps waiting — it just runs somewhere else when its turn comes.
Change work that hasn't started
Work waiting on other work can be changed before it starts, keeping its id and everything lined up behind it. When something more urgent comes in, make the waiting work wait for it too, or add an instruction it should follow once it runs:
oga edit <task-id> --add-dep <urgent-task-id>
oga edit <task-id> -m "push the branch when you're done"
Nothing waiting on the task you change starts or stops because of it. If you cancelled work before it started, put it back in line and it waits for what it was waiting for before:
oga edit <task-id> --requeue
Cancelling work before it started never sets off the work waiting on it — even work you asked to run when something before it fails. That work waits until you put the cancelled task back in line or change what it waits on.
Search oga tasks --query "feature, file, or command" before you start something new. If it finds related work, pick that task back up instead of running two against each other.