DorkOS
Concepts

Answer your agents from anywhere

When an agent needs your OK to keep going, DorkOS puts the question in front of you wherever you are, not just in the chat where it came up

Answer your agents from anywhere

Sometimes an agent stops and waits for you. Maybe it wants to edit a file and needs your OK first. Maybe it's asking you a question it can't answer on its own, like which test runner to use. DorkOS calls this an Ask.

You don't have to be looking at that agent's chat to see it. An Ask shows up everywhere in DorkOS at once, so you can answer it from wherever you happen to be.

What an Ask looks like

An Ask always says what the agent actually wants, in plain words:

Meeting Notes wants to edit standup.md

Not "waiting on you." Not a vague notice. You always know what you're being asked to allow before you allow it.

Where you'll see it

The same Ask shows up in four places at once:

  • The header, on every page. A small badge counts how many things are waiting on you.
  • The sidebar, under Heads up.
  • The home screen, at the top, if anything needs you.
  • The channel or session it came from, on the line right above where you type. If an agent is asking you something in a room, that room's line turns to a question you can answer on the spot.

Open any one of them and you're looking at the same card. Answer it from any of the four, and it disappears from all the others in the same moment.

Answering it

Click Allow or Deny. That's it.

If you'd rather use the keyboard: press Cmd/Ctrl+Shift+Y to jump straight to the next thing waiting on you. Once the card has your focus, A allows it and D denies it.

If an agent asks several similar things at once, like reading five files, they arrive as one card instead of five. Answer once and you're done with all of them.

When nobody answers

An Ask counts down for ten minutes. That part has not changed: the card shows the time left, and turns amber and then red as it runs out.

What happens after those ten minutes is that your agent waits. The countdown is replaced by the words "waiting for you", and the card stays exactly as answerable as it was in the first minute. Go to lunch, sit through a meeting, do the school run: the agent is still holding the question when you get back, and answering it picks up where you left off.

Four hours later, the agent gives up. The request is refused, the agent carries on without it, and it tells you how long it waited. Nothing is lost when that happens. It just means the agent didn't get to do that one thing.

A scheduled task is the one exception. Nobody is sitting there watching it, so there is nobody to wait for: its questions are refused after ten minutes and the run carries on.

If you've set up a way for DorkOS to reach you elsewhere, it doesn't just wait quietly in the meantime. After a short delay you choose, it can also ping your phone's browser and any chat apps you've connected, so a long meeting doesn't mean an agent sits blocked for hours before you happen to look. This only fires for something actually stopped and waiting: an agent holding a question, a scheduled task waiting for approval, or a session that stopped on an error. A finished turn never follows you around. Turn it on, and set the delay, in Settings → Notifications.

Once an Ask is answered, one way or another, it leaves behind a short record: what you chose, or that it was already answered and when, or that time ran out. You can always find that record later, in the same place the question first appeared.

Answer in one window and the card in your other windows says so on the spot, while it is still on screen. If DorkOS knows your name, that card uses it: "Already answered by Ada at 2:01". The saved record keeps what happened and when, not who.

Answering in a shared room

The question itself is never posted to the channel. Everyone in the room sees only a much shorter notice, something like:

Meeting Notes is waiting for you to approve something before it can carry on.

No file name. No command. No countdown. The full question, with the file it wants to touch and the buttons to answer it, goes to DorkOS on your own machine and nowhere else.

Who can answer, and from where

You can, in DorkOS. That is the main answer and it covers nearly everything.

There is one other way in. If you have connected a chat app like Telegram or Slack, and you have named people on that connection's approver list, then one of those people can answer from a private chat with the bot. They get the same Approve and Deny buttons you would, showing the same tool the agent wants to run. Press one and the agent carries on.

That only happens in a one-to-one chat with somebody on the list. In a group chat, nobody gets the buttons and nobody sees what the agent wants to run, because DorkOS has no way to know who else is reading. Everyone there gets the same short sentence the room gets: an agent is waiting, and the answer happens in DorkOS.

Another agent on this machine never sees what an agent is waiting for. It could never answer one, and now it cannot read one either.

A script of your own, holding one of your API keys, is treated differently on purpose. It can still see what an agent is waiting for, because it can already read that from the session itself, and cutting it off would break your own integrations for no gain. It cannot answer. Answering is for a person signed in to DorkOS.

What DorkOS doesn't do yet

A notification that reaches your phone or a chat app is a nudge, not an answer: it links back to DorkOS, where you actually decide it, except for a named approver in a one-to-one chat, who gets real Allow and Deny buttons right there. A request raised while you are away still waits for you, for up to four hours, and still takes your answer when you come back; only after that does the agent give up and say so. The approver list is per chat connection, not per agent, and DorkOS does not record which of them answered. One wait it cannot keep is a restart: if DorkOS stops while an agent is waiting on you, that agent's work stops too, so the question is saved as unanswered and you will need to ask again.