Permission Responses
This page is grounded in:
crates/tui/src/app/update/keys.rscrates/protocol/src/protocol.rscrates/tui/src/render/overlays.rscrates/cli/src/cmd/oneshot.rs
Interactive responses (TUI)
When a permission prompt is active, these keys map to PermissionReplyDecision:
| Key | Decision enum | Behavior |
|---|---|---|
y | Allow | Allow this specific tool call |
n | Deny | Deny this specific tool call |
a | AlwaysAllow | Always allow matching tool calls for the session |
! | BypassAll | Bypass all permission checks for the rest of the session |
Ctrl+C | Deny | Fast deny shortcut |
The inline overlay shows y / n / a / ! options and queued-count context.
Queue behavior
After a response:
- Current pending permission is cleared.
- Next queued permission becomes active (if any).
Op::PermissionReply { request_id, decision }is sent to core.
Unknown keys are ignored while a permission prompt is open.
Non-interactive (swarmie prompt)
In oneshot/headless mode:
- default: permission requests are auto-denied, with a warning to stderr
- with
--dangerously-bypass-approvals: requests are answered asBypassAll
This behavior is implemented in crates/cli/src/cmd/oneshot.rs.