Permission requests

How an agent asks before it runs a command or changes a file, and how to answer with one key.

Before an agent does something with an effect, such as running a command, changing a file or fetching a web page, it can ask you first. What it asks about depends on the agent and on its mode, which you pick under the composer. Kettu does not answer for you. The one exception is a run of a routine, which allows a request once when it stays inside the permissions you gave the routine.

What a request looks like

The request sits in the tool card it belongs to, marked Needs approval, with the command or the change inside the card and a line such as “Claude Code wants to run this command.” The card pulses once and scrolls into view, the composer reads Waiting for your approval, and the session’s row in the sidebar gets a dot. A session can have several requests waiting, each in its own card.

Answering

The options are the agent’s own, one per row in the agent’s order, and the first four are numbered. The one that allows the action once starts highlighted. Click an option, or use the keys:

KeyDoes
1 to 4Picks that option
EnterPicks the highlighted option
↑ ↓Move between the options once one has the focus

The number keys and Enter answer the first waiting request of the session in focus. They do so only while the composer is empty and the cursor is not in a text field; with the cursor in the composer they type as usual, so click the thread first.

Once answered, the tool’s row shows the answer: Allowed once, Always allowed, Rejected or Always rejected. Allowed by the routine means a routine answered it, Cancelled that you stopped the turn, and No longer needed that the agent withdrew the request. After a rejection the composer reads “Tell Claude Code what to do differently”, so your next message can say what to do instead.

Always allow

An option that stops the agent asking again comes from the agent, and the agent keeps the rule, not Kettu. Its name says what it changes and where:

  • Claude Code names the rule and where it is saved: in user settings, in project settings (.claude/settings.json), in local settings (.claude/settings.local.json), or for this session only.
  • Codex offers choices such as Yes, for this session, or “Yes, and don’t ask again for …” for one command.

Check where the rule goes

Read the option before you pick it: it says whether the rule lasts for this session only or is saved to one of the agent’s settings files.

Stopping the turn with Esc or the stop button cancels every request it still has waiting.

When Kettu is in the background

A system notification tells you when a session needs your approval, but only while no Kettu window is focused. Clicking it opens that session. The Dock icon on macOS, or the taskbar button on Windows, can also show how many sessions are waiting. Both are under Needs approval and Show a count on the Dock icon (Show a count on the taskbar button on Windows) in Settings › Notifications; see Notifications.

When an agent wants to open a new site in the browser pane, it asks in a card of its own; see Built-in browser.