Skip to content
Merged
Show file tree
Hide file tree
Changes from 40 commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
c68197c
docs: backfill Deep Agents Code configuration
mdrxy Aug 26, 2026
f8cb006
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
86f8ae9
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
acb8f70
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
53f104d
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
399aed5
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
ce8551b
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
1797369
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
eefa0c2
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
a533e45
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
e4ab890
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
12e478f
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
0a7b22d
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
38481f2
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
4a99a44
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
24705ac
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
25ec453
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
62ba6cb
feat: document Deep Agents Code managed configuration
mdrxy Aug 21, 2026
3ddd615
Apply suggestion from @mdrxy
mdrxy Aug 24, 2026
cf6185e
docs: align managed config with current dcode
mdrxy Aug 24, 2026
3c2ffff
Apply suggestion from @mdrxy
mdrxy Aug 24, 2026
813ffee
docs: document remote managed configuration
mdrxy Aug 26, 2026
8f2318e
docs: make managed configuration guidance clearer
mdrxy Aug 26, 2026
d4b6e07
Apply suggestion from @mdrxy
mdrxy Aug 27, 2026
dbacb5f
Apply suggestion from @mdrxy
mdrxy Aug 27, 2026
33e6f1a
docs: group model restrictions with managed policy
mdrxy Aug 27, 2026
a2d66cc
docs: address configuration review feedback
mdrxy Aug 27, 2026
e8305d0
docs: update Deep Agents Code approval workflows
mdrxy Aug 26, 2026
f598d90
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
2334ec9
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
d5b8121
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
06a7726
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
77ba3ae
Apply suggestion from @mdrxy
mdrxy Aug 26, 2026
0940f1d
Apply suggestion from @mdrxy
mdrxy Aug 27, 2026
a4b5197
Apply suggestion from @mdrxy
mdrxy Aug 27, 2026
1a2eac8
Apply suggestion from @mdrxy
mdrxy Aug 27, 2026
60da870
docs: address remaining configuration feedback
mdrxy Aug 27, 2026
85040a7
docs: refresh runtime and retry configuration
mdrxy Aug 27, 2026
6144558
Merge branch 'mdrxy/docs/dcode-configuration-backfill' into mdrxy/doc…
mdrxy Aug 27, 2026
b2c4c16
docs: align approval workflows with current behavior
mdrxy Aug 27, 2026
f75f3a6
docs: address configuration review
mdrxy Aug 27, 2026
b704605
docs: address configuration review
mdrxy Aug 27, 2026
402f0bc
Merge branch 'mdrxy/docs/dcode-configuration-backfill' into mdrxy/doc…
mdrxy Aug 27, 2026
33676ec
docs: address approval workflow review
mdrxy Aug 27, 2026
f2a8081
docs: fix goal configuration reference
mdrxy Aug 27, 2026
57467f5
Merge main into Deep Agents Code approval docs
mdrxy Aug 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 14 additions & 22 deletions src/oss/deepagents/code/approval-modes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,26 +22,18 @@ Read-only tools such as `ls`, `read_file`, `glob`, and `grep` always run without
| **Auto** | Approves routine actions automatically; asks the model to review anything uncertain; falls back to you after repeated denials or failures |
| **YOLO** | Runs gated actions with no review at all |

Toggle between Manual and Auto at any time during a session with `Shift+Tab` or `Ctrl+T`. YOLO cannot be entered through the keyboard toggle.
Cycle between modes at any time during a session with `Shift+Tab`. By default the cycle runs Manual → Auto → YOLO → Manual.
Comment thread
open-swe[bot] marked this conversation as resolved.
Resolved

<Warning>
Auto is an authorization heuristic for a local coding agent. It is **not** sandbox containment, an operating-system boundary, or a guarantee that model-generated actions are safe.
</Warning>

## Enable Auto

Auto is an experimental beta. To use it, set the opt-in flag and then choose Auto for your session.
Auto is eligible only in interactive, unsandboxed sessions.

<Steps>

<Step title="Set the experimental opt-in" icon="key">
Add the environment variable to your shell or `~/.deepagents/.env`:

```bash
export DEEPAGENTS_CODE_EXPERIMENTAL=1
```
</Step>

<Step title="Launch with Auto" icon="terminal">
```bash
dcode -y
Expand All @@ -54,12 +46,10 @@ Auto is an experimental beta. To use it, set the opt-in flag and then choose Aut
mode = "auto"
```

You can also toggle Auto on and off mid-session with `Shift+Tab` or `Ctrl+T`.
You can also cycle to Auto mid-session with `Shift+Tab`.
</Step>
</Steps>

If Auto is requested without the experimental opt-in, or in a sandboxed session, it falls back to Manual with a warning.

## Enable YOLO

YOLO runs gated actions without any review. Use it only when you accept that the agent can take any action without asking.
Expand All @@ -82,14 +72,14 @@ YOLO runs gated actions without any review. Use it only when you accept that the
</Step>
</Steps>

A session launched in YOLO moves to Manual when you press `Shift+Tab` or `Ctrl+T`. You cannot switch back to YOLO with the keyboard toggle.
A session launched in YOLO exits to Manual when you press `Shift+Tab`. From there the default cycle continues through Auto and back into YOLO unless `startup.yolo_switcher = false` restricts the cycle to Manual/Auto.
Comment thread
open-swe[bot] marked this conversation as resolved.
Resolved

## How Auto works

Auto keeps the same gated-action rules as Manual but changes how those actions are reviewed. It uses two stages:

1. **Routine actions run automatically.** A write to a source file like `src/parser.py` or a read-only Git command like `git status` proceeds without a prompt. Sensitive targets like `.github/workflows/ci.yml` or mutating commands like `git commit` go to the next stage.
2. **The model reviews the rest.** For anything not clearly routine, the active model checks whether the action matches what you asked for. Only your literal prompt can authorize an action. If the model denies a call, the agent gets an error result and can revise its plan.
2. **The model reviews the rest.** For anything not clearly routine, the active model checks whether the action matches your requested outcome. Ordinary steps reasonably necessary for that outcome can proceed even when you did not name each implementation detail. High-risk effects, such as sending local content to an unconfigured destination, still require explicit authorization. If the model denies a call, the agent gets an error result and can revise its plan.

After repeated denials or classifier failures, Auto stops and shows you the normal approval prompt for the next batch, then continues in Auto mode.

Expand Down Expand Up @@ -202,27 +192,29 @@ The decision plan is bound to the thread, mode, batch, and exact gated calls. Mi

## Where Auto and YOLO are available

Auto and YOLO are interactive-mode features. They are not available in non-interactive mode (`-n` or piped stdin) or in ACP server mode. Headless runs use fail-closed MCP routing and `--shell-allow-list` for shell access.
Auto and YOLO are interactive-mode features. Auto is eligible only in an interactive, unsandboxed session; a remote `--sandbox` forces it to Manual. YOLO is interactive-only as well and requires the risk acknowledgement regardless of sandbox. Headless runs use fail-closed MCP routing and `--shell-allow-list` for shell access.

In non-interactive mode (`-n` or piped stdin), passing `-y`/`--auto-approve` or `--yolo` prints a warning and the flag is ignored; the run proceeds headlessly. In `deepagents-code<0.1.61`, these flags are rejected with an error instead. ACP server mode accepts both flags: Auto installs its classifier middleware (`--auto-classifier-model` requires Auto there), and YOLO requires that you have already acknowledged the risk in the interactive TUI.
Comment thread
open-swe[bot] marked this conversation as resolved.
Resolved

Auto also falls back to Manual when:
### Remember the last mode across sessions

- `DEEPAGENTS_CODE_EXPERIMENTAL=1` is not set.
- A remote `--sandbox` is active (Auto is for unsandboxed local sessions only).
When neither a flag nor `[startup].mode` selects a mode, the launch restores the app-managed `[startup].recent` value: the last Manual or Auto mode you selected is written to `~/.deepagents/config.toml` and applied to the next bare launch. YOLO is never stored as a recent mode; it must be explicitly configured each time (`--yolo` or `[startup].mode = "yolo"`). A restored Auto mode applies only after you have seen the current Auto education notice; otherwise the launch falls back to Manual and the TUI explains how to re-enable Auto.
Comment thread
open-swe[bot] marked this conversation as resolved.
Resolved

## Reference

### Flag and config precedence

`--yolo` takes priority over `-y`/`--auto-approve`, which takes priority over `[startup].mode`.
`--yolo` takes priority over `-y`/`--auto-approve`, which takes priority over `[startup].mode`. When none of them set a mode, `[startup].recent` restores the last Manual or Auto selection.

| Source | Value | Selects |
|---|---|---|
| `--yolo` | flag | YOLO (interactive only, after acknowledgement) |
| `-y`, `--auto-approve` | flag | Auto (requires `DEEPAGENTS_CODE_EXPERIMENTAL=1`) |
| `-y`, `--auto-approve` | flag | Auto |
| `[startup].mode` | `"manual"` | Manual |
| `[startup].mode` | `"auto"` | Auto |
| `[startup].mode` | `"yolo"` | YOLO |
| `Shift+Tab`, `Ctrl+T` | toggle | Manual and Auto (never enters YOLO) |
| `[startup].recent` | `"manual"` or `"auto"` | Last selected Manual or Auto (app-managed) |
| `Shift+Tab` | toggle | Cycles Manual → Auto → YOLO (set `startup.yolo_switcher = false` to omit YOLO) |
Comment thread
open-swe[bot] marked this conversation as resolved.
Resolved

## See also

Expand Down
6 changes: 3 additions & 3 deletions src/oss/deepagents/code/cli-reference.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ Run OAuth login for MCP servers marked `auth: "oauth"` with `dcode mcp login <se
| `-a`, `--agent NAME` | Use named agent with separate memory. Overrides `[agents].recent` and `[agents].default` in `config.toml`. Default: `agent` (or the most recently used agent if `[agents].recent` is set) |
| `-M`, `--model MODEL` | Use a specific model (`provider:model`) |
| `--model-params JSON` | Extra kwargs to pass to the model as a JSON string (e.g., `'{"temperature": 0.7}'`) |
| `--max-retries N` | Override the max retries for transient model errors |
| `--max-retries N` | Override retries after a transient model error. Default: `5`; set to `0` to disable retries |
| `--default-model [MODEL]` | Set the [default model](/oss/deepagents/code/providers#set-a-default-model) (omit `MODEL` to view the current default) |
| `--clear-default-model` | Clear the [default model](/oss/deepagents/code/providers#set-a-default-model) |
| `-r`, `--resume [ID]` | Resume a session: `-r` for most recent, `-r <ID>` for a specific thread |
Expand All @@ -311,7 +311,7 @@ Run OAuth login for MCP servers marked `auth: "oauth"` with `dcode mcp login <se
| `--rubric-model MODEL` | Model the rubric grader uses. Defaults to the main agent model. Requires `-n` or piped stdin |
| `--rubric-max-iterations N` | Grader iterations per rubric attempt before stopping. Requires `-n` or piped stdin |
| `-n`, `--non-interactive TEXT` | Run a single task non-interactively and exit. Shell is disabled unless `--shell-allow-list` is set |
| `--recursion-limit N` | LangGraph graph step budget (max node invocations per turn). Valid range: `25`–`100000`. Out-of-range or non-integer values log a warning and fall back to the default (`2000`). Overrides `DEEPAGENTS_CODE_RECURSION_LIMIT` and `[runtime].recursion_limit` in `config.toml` |
| `--recursion-limit N` | LangGraph graph step budget (max node invocations per turn). Accepts integers greater than or equal to `1`. Overrides the environment and user config, but administrator-owned managed configuration takes precedence. When unset, the LangGraph server default applies |
| `--max-turns N` | Cap agentic turns in non-interactive mode. Exits with code 124 when exceeded. Requires `-n` or piped stdin. See [Non-interactive mode and piping](#non-interactive-mode-and-piping) |
| `--timeout SECONDS` | Hard wall-clock timeout for non-interactive mode. Exits with code 124 when exceeded. Requires `-n` or piped stdin. See [Non-interactive mode and piping](#non-interactive-mode-and-piping) |
| `-q`, `--quiet` | Clean output for piping—only the agent's response goes to stdout. Requires `-n` or piped stdin |
Expand All @@ -331,7 +331,7 @@ Run OAuth login for MCP servers marked `auth: "oauth"` with `dcode mcp login <se
| `--no-mcp` | Disable all MCP tool loading |
| `--trust-project-mcp` | Trust project-level MCP servers without prompting for the current run. Explicit denies still apply. |
| `--interpreter` | Enable the JS interpreter (`js_eval`) middleware on the main agent when it has been disabled in config. `js_eval` is enabled by default. |
| `--interpreter-tools VALUE` | PTC allowlist for `js_eval`: `safe`, `all`, or a comma-separated list of tool names. Default: no PTC (pure REPL) |
| `--interpreter-tools VALUE` | PTC allowlist for `js_eval`: `safe`, `all`, or a comma-separated list of tool names. Default: `safe` (read-only `read_file`/`glob`/`grep` preset). See [JS interpreter](/oss/deepagents/code/config-file#js-interpreter) |
| `--profile-override JSON` | Override model profile fields as a JSON string (e.g., `'{"max_input_tokens": 4096}'`). Merged on top of config file profile overrides |
| `--acp` | Run as an ACP server over stdio instead of launching the interactive UI |
| `--update` | Check for and install updates, then exit |
Expand Down
Loading
Loading