How to confirm tool calls before they run
By default mini-me runs in yolo mode: bash, file writes and edits run as soon as the model asks for them. This guide shows how to make the agent ask you first, in the terminal, in the window and in an editor. It assumes you already run mm with a YAML configuration file.
Steps
-
Turn yolo off in your configuration file:
yolo: false bashTool: truebashTool(andeditTools,fetchContentTool) still decide which tools exist;yolodecides whether the ones that exist ask before running. -
Start
mmas usual. The banner ends withyolo: off (tools ask):mm v0.2.6 | config: agent.yaml | provider: dmr | model: … | tools: bash, read_file, write_file, edit_file | skills: 3 | yolo: off (tools ask) -
Ask for something that runs a command. In the line mode, the tool's line is followed by a question:
🛠️ bash: ls -la 🔐 bash: ls -la [a] allow once · [s] allow bash for this session · [r] reject · [n] never bash ? -
Type one letter and press Enter:
Key Effect aRun this call. The next bashcall asks again.sRun this call and every later bashcall of this session without asking.rDo not run this call. The model receives [command rejected by the user]and can propose something else. The next call asks again.nDo not run this call, and refuse every later bashcall of this session without asking.Anything else shows the legend again.
/abortor Ctrl+C rejects the call and stops the turn.
Variants
- In the window (
mm -tui). The input box is replaced by? bash: ls -laand the same four keys answer it; Esc is the same asr. - In an editor (
mm -acp, Zed). The editor's permission dialog offers Allow once, Allow bash for this session, Reject and Never allow bash in this session. Withyolo: true, no dialog is shown at all. - For one run only, without editing the file.
AGENT_YOLO=false mm agent.yaml(orAGENT_YOLO=trueto skip the questions once). In an editor, put the variable in the agent'senvsettings next toAGENT_CONFIG. - With other agents (
mmConfigs). The agent you started decides for the agents it asks. Withyolo: falsein your main configuration, abashcall made by/ask-janasks you, titledjan · bash: …, andsremembersjan/bash, not your ownbash. Theyolowritten in Jan's own file is ignored while it answers an/ask. - In a script (
mm -p,mm --ask). Nobody can answer there, so withyolo: falsethe calls that would ask are rejected, and stderr says so once:[yolo is off and this mode cannot ask: …]. Keepyolo: truefor scripted runs, or remove the tools you do not want withbashTool: false/editTools: false. - MCP tools. With
yolo: falseevery MCP tool asks too. Withyolo: true, each MCP server keeps its ownpermissions(askby default,autoto run unasked). - An old configuration with
permissions: ask. It still works and meansyolo: false; the banner warns that the key is deprecated. Replace it withyolo: false.
See also
- Every key and its default: configuration reference (
yolo,permissions). - What each front end shows: CLI reference, ACP reference.
- Why yolo is the default and why the asking agent wins: Yolo mode and permissions.
- Refuse some calls automatically, by rule, without asking: Guard the agent with hooks.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
|