DorkOS
Guides

Action Approvals

DorkOS asks you first when an agent tries to do something that cannot be undone

Action Approvals

Your agents can run DorkOS for you: make agents, schedule work, change settings, add and remove packages. Most of that is easy to take back. Some of it is not.

When an agent asks DorkOS to do something that cannot be undone, DorkOS stops and asks you. The agent does not get to do it and then tell you about it.

This is not the same as tool approval. Tool approval covers what an agent does inside a session: writing a file, running a command. Action approvals cover what an agent does to DorkOS itself.

What you see

An amber marker appears in the top bar, on whatever screen you happen to be on, saying how many requests are waiting on you. Click it and the requests open right there, so you can answer without leaving what you were doing. The same requests also show up on your dashboard under Waiting On You.

Either way you get the same card, and it holds everything you need to decide:

  • What would run, in plain words, including the details that matter (which package, whether saved data goes too)
  • How big the change is: a label that reads "Cannot be undone", "Changes things", or "Read only"
  • Who asked: the agent's name, or a note that the request came in without an agent identity
  • How long you have before the request runs out
  • Two buttons: Allow and Don't allow

Read what would run. The sentence on the card comes from DorkOS, not from the agent.

Click Allow to let it through. Nothing runs on its own at that point: the agent has to ask for the same thing again, and this time it goes ahead.

Or click Don't allow. The agent is told you said no, and it should stop rather than look for another way in.

Nothing is pre-selected, and neither button is styled as the safe choice. Saying no is a normal answer.

What needs your OK, and what doesn't

DorkOS sorts everything an agent can do into three groups:

GroupWhat happens
Read onlyRuns. Reading your activity or listing your agents needs no approval.
Changes thingsRuns, and shows up in your activity feed so you can see it happened.
Cannot be undoneWaits for you. Nothing happens until you answer.

Removing an installed package (and its saved data) is the clearest example of the third group. The rule is about the action, not about which agent asked.

Staying anonymous does not help

An agent can tell DorkOS who it is, and most do. One that doesn't is still stopped by the same question. The card simply says the request came in without an agent identity, so you know DorkOS cannot tell you who asked.

This also holds for the command line. Running an agent outside DorkOS, or dropping its identity, does not get past the question.

Approvals are used once, and they expire

  • One approval, one action. Saying yes to removing one package does not say yes to removing another, or to the same one with different options. If a detail changes, DorkOS asks again.
  • Used once. After an approval is spent it stops working. A second attempt needs a second yes.
  • Two hours. If nobody answers in two hours, the request runs out and the agent has to ask again. Two hours is long enough that a meeting or a school run does not kill the request, and short enough that you are never asked to approve something you read about yesterday.

You don't have to babysit the card. Whatever the agent does next, the action itself does not run until you answer.

Your activity feed names who did what

The activity feed says which agent made each change, not just that something changed. It also records the attempts that did not go through: when a request is waiting on you, and when one was refused. So the feed reflects what your agents tried, not only what they finished.

From the command line

If you drive agents in a terminal, the same rule applies to dorkos call. A call that needs your OK comes back with status: approval_required and a token instead of doing the work:

dorkos call marketplace.uninstall --input '{"name":"some-package"}'
# status: approval_required, with an approval token

Approve it in DorkOS, then run the same call again with the token:

dorkos call marketplace.uninstall --input '{"name":"some-package"}' --approval <token>

Change the input and the token stops matching, because an approval covers one exact action.

Next steps