Permission modes
The permission mode decides which steps DCode takes on its own and which wait for your yes.
On this page
Every step DCode takes, reading a file, changing one, running a command, goes through the permission mode of the session. Choose a careful mode for work you want to watch, and a freer one when you want DCode to keep going on its own.
The modes
| Mode | CLI id | What runs on its own | What waits for your yes |
|---|---|---|---|
| Ask before changes | build | Reading and searching the project. | Each file change, each command that changes something, and every other step with side effects. |
| Auto | auto | What Ask before changes would run, plus the steps a quick safety check passes for your request. | Clearly risky steps, and whatever the check is unsure about. |
| Fewer questions | guarded | Most steps, file changes and commands included. | Dangerous commands only. |
| Full access | yolo | Every step, except the few that always ask. | Only what always asks. |
| Plan mode | plan | Reading the code, and tools that cannot change anything. | Nothing is changed. When the plan is ready, DCode asks you to approve it. |
The CLI also takes edit: file changes inside the project run without asking, and everything else asks as in Ask before changes. It is not in the app's menu or in the Shift Tab cycle; pass it with --mode edit or /mode edit.
Ask before changes
The careful default. DCode reads and searches freely, and stops before anything that writes, deletes, runs a command with side effects or reaches outside the session. A new CLI session starts here unless you pass --mode.
Auto
Auto starts from Ask before changes. When that mode would ask, Auto first checks the step against your latest request. A step runs on its own only when it clearly helps with your request, only reads or only changes files inside the project, is easy to undo, and sends nothing off your computer.
These always come to you in Auto, whatever the check says:
- Recursive deletes, deletes of many files at once, and deletes outside the project.
- Pushes, force pushes, history rewrites,
git reset --hard, deleting branches or tags, and changes to git settings and remotes. - Installing or removing software for the whole computer, and downloading a script and running it.
- Network requests to any address other than your own computer, and connections to other computers.
- Publishing a package or a release, deploying, and changes on your code host such as opening a pull request.
- Credentials, keys and
.envfiles, secrets from your environment, and writes outside the project. - Administrator rights, system settings and commands that can erase database data.
- Scheduling work that runs later on its own, and sending a message for you.
If the check takes longer than 8 seconds, cannot run or gives no clear answer, you get the question Ask before changes would have asked. Auto never refuses a step by itself: the most it does is ask.
Fewer questions
DCode changes files and runs commands on its own, and stops only before a dangerous command:
- Deleting folders recursively or several files at once:
rm -r,rmwith several files or a pattern,find -delete, and on Windowsdel,rd /sandrobocopywith/miror/purge. git reset --hard,git clean -f, force pushes,git checkoutorgit restorethat throw away changes in the working tree,git stash clearandgit worktree remove --force.rsyncwith--delete, and disk tools such asdd,mkfs,mountandumount.
For a dangerous command the only answers are allow once or deny: it can never be always allowed.
Full access
DCode edits and runs commands without asking. Rules that deny a tool, and tools turned off for the run, still hold.
Plan mode
DCode reads the code and writes a plan. Tools that only read run, MCP tools that cannot destroy anything run, and every step that would change something is refused, not asked. DCode can switch itself into Plan mode when a task calls for a plan first.
When the plan is ready, DCode shows it and asks you to approve it. Approve leaves Plan mode and starts the work, in the permission mode you had chosen. To change the plan instead, write what to change: DCode stays in Plan mode and works your notes in.
Switch the mode
In the desktop app
- In the message box, open the mode menu: the button that shows the current mode's name (Switch mode).
- Choose Ask before changes, Auto, Fewer questions or Full access.
- To plan first, tick Plan mode at the top of the menu. It works on top of the mode you chose, and a Plan marker shows beside the button; choose its × (Turn off Plan mode) to turn it off.
Ctrl Shift M moves through Ask before changes, Auto, Fewer questions and Full access in turn. Change the key in Settings, Keyboard shortcuts (Cycle Session Mode).
In the CLI
- Shift Tab moves through Ask before changes, Auto, Plan mode and Fewer questions. Full access is never one key press away.
/modeshows the current mode and the others;/mode auto,/mode guardedor/mode yoloswitches./planswitches to Plan mode, and/plan <task>starts planning that task.dcode --mode <id>starts in that mode. The status line under the message box always shows the mode.
When DCode asks
The question names the step: the command, the file and its changes, or the tool. In the desktop app the card says Permission required and offers:
- Allow: only this time.
- Always allow in this project: do not ask again for matching requests in this project. For a command it reads Always allow this command, and for Computer Use Always allow Computer Use in this project.
- Deny: DCode does not take the step, stops, and waits for you to say how to go on.
Choose with Tab or the arrow keys and press Enter. In the CLI the choices are Allow once, Always allow in this project and Deny: ↑ ↓ to choose and Enter to confirm, or Y to allow once, N or Esc to deny, or the choice's number.
Rules you saved
Each Always allow answer saves a rule for the project, such as Bash(git status:*). In the CLI, /permissions lists the rules allowed for this run with --allowed-tools and the rules saved for this project (allow, ask and deny), and /permissions remove <rule> deletes one:
/permissions remove Bash(git status:*)
A saved deny rule refuses its tool in every mode, Full access included.
What always asks
In every mode, Full access included, DCode waits for you when:
- it asks you a question about the task;
- it presents a plan for your approval;
- it wants to run, save or change a dynamic workflow (the card Run this workflow?), unless you chose Always allow in this session.
The built-in browser has its own question before it posts, sends a message, buys or deletes something on a website, and it asks in every mode (Browser and Passwords). Whether Computer Use asks follows the mode (Computer Use).
Modes in a crew
So that agents working in parallel do not stall, a crew runs Ask before changes, Auto and edit as Fewer questions: most steps run on their own, and dangerous commands still ask. A crew in Full access works in Full access, and a crew does not start in Plan mode (Crew).
Runs with nobody to answer
In a dcode -p run nobody can answer, so a step that would ask is refused. That is why -p runs in Full access unless you pass another mode. To keep a script careful, pass --mode plan, or --mode build with the tools the job needs in --allowed-tools (Scripting and CI).