By JayNovember 2026

Are We Just Drinking Birds Now?

In King-Size Homer (The Simpsons, 1995), Homer gets tired of typing yes every time the plant's computer asks him to confirm something. So he leaves a toy drinking bird at his keyboard to press the Y key for him. The bird works until it falls over, and the plant heads for a meltdown.

We spent days being the bird.

Days of pressing approve

We were letting an AI coding agent (Codex, OpenAI's tool) run commands on a second computer on our network. Many commands needed a click to approve. The clicks piled up until we were approving without reading, which is the exact thing an approval is meant to prevent.

Any AI tool that asks allow this? all day puts you in the same seat. We asked whether the agent was using the single connection we had told it to use. It said it was, and added:

I can't see the approval prompts in my tool trace, so I don't know which action is triggering them.
-- Codex, replying to a question about the approvals

What the logs showed

The agent's session log records every command it ran and whether it asked for extra permission. One long working session (about 19 hours of activity across two days):

The log does not flag approvals for typed commands, so the real number was higher.

What we tried first

  1. Approve and remember. It saves that one command only.
  2. A rule for the exact command that opens the connection. The agent did not type it that way again.
  3. Written instructions to use one connection. The agent followed them for typed commands but not for every one-off call.
  4. Asking the agent why. It could not see the prompts either.

What worked

Codex's permission rules match the start of a command word for word, as the documentation describes. A rule for ssh host (ssh is the standard way to run a command on another computer) does not match the same command with an extra option or another tool's name in front of it. Three details decided the outcome:

Note: the matching really is that strict. The real command contained a ~ (a shortcut for the home folder), and the rule written with it did not match.

In our test runs, a command that matched no rule ran in the agent's sandbox (a restricted area where it can work in the project folder but cannot reach other computers). That is a cautious default, and it is why that mismatch failed safely: in the test, the command ran in the restricted area, could not reach the other computer and stopped, instead of running unreviewed.

What changed

59 approvals in 324 commands before. 0 in 60 after.

In the first full working session after the changes, the agent ran 60 shell commands, 20 of them remote calls. The agent's log showed no approval requests, and the person at the keyboard saw no prompts either.

Where the real limit lives

We wanted a prompt to stay for dangerous commands such as sudo (run as administrator) and rm (delete). We tested sudo by running four commands through Codex itself, over the connection to the other computer. Three ran with no approval: hostname, uptime and sudo -n true (-n makes it fail instead of asking for a password) with quote marks around it, which succeeded as administrator. The fourth, sudo -n true without quote marks, was stopped for approval.

We had a rule that forces a prompt whenever sudo appears. It works on ssh host sudo true. It misses ssh host 'sudo true', because wrapping the command in quote marks makes the rule see one unbroken block of text instead of a sudo command.

Whatever that account can do, the agent can do.

So the limit has to live on the machine itself, and the strongest limit is the account the agent runs under. Administrator rights are for setup (installing software, creating accounts). An agent that works day to day should not keep them. The agent we are setting up to run unattended gets its own account with no administrator rights and no internet access.

What to take from this

If an agent runs a task in your business, the same approval fatigue applies to you. You Are the Bottleneck covers the owner's side.

This is how we set up agents for clients: the permissions, the logs and the checks, so the approvals that remain are the ones worth reading.

Tell us your task

Sources