> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Terminal

> Use Devin Desktop's enhanced terminal with Command mode, agent integration, Turbo mode for auto-execution, and allow/deny lists for command control.

# Command in the terminal

Use our [Command](/desktop/command/windsurf-overview) modality in the terminal (`Cmd/Ctrl+I`) to generate the proper CLI syntax from prompts in natural language.

<Frame style={{ border: 'none', background: 'none' }}>
  <img src="https://mintcdn.com/cognitionai/hxeMffzXgF_RWx-U/desktop/assets/windsurf-terminal-command.png?fit=max&auto=format&n=hxeMffzXgF_RWx-U&q=85&s=3e67784716df176170b2bccf1e002839" width="980" height="164" data-path="desktop/assets/windsurf-terminal-command.png" />
</Frame>

# Send terminal selection to the agent

Highlight a portion of the stack trace and press `Cmd/Ctrl+L` to send it to the agent panel, where you can reference this selection in your next prompt.

<Frame style={{ border: 'none', background: 'none' }}>
  <img src="https://mintcdn.com/cognitionai/hxeMffzXgF_RWx-U/desktop/assets/windsurf-terminal-selection-mention.png?fit=max&auto=format&n=hxeMffzXgF_RWx-U&q=85&s=9b04fbc1dd2ea876ff784e2745f4dd8a" width="744" height="144" data-path="desktop/assets/windsurf-terminal-selection-mention.png" />
</Frame>

# @-mention your terminal

Chat with the agent about your active terminals.

<Frame>
  <video autoPlay muted loop playsInline src="https://mintcdn.com/cognitionai/hxeMffzXgF_RWx-U/desktop/assets/terminal-at-mention.mp4?fit=max&auto=format&n=hxeMffzXgF_RWx-U&q=85&s=2e28c374b0c7c9a413ecc4accb50faa0" data-path="desktop/assets/terminal-at-mention.mp4" />
</Frame>

# Auto-executed agent commands

The agent has the ability to run terminal commands on its own with user permission. You can configure how the agent handles command execution through four distinct auto-execution levels, and certain terminal commands can be accepted or rejected automatically through the Allow and Deny lists.

## Auto-Execution Levels

<Note>
  Auto-execution levels apply to Cascade. The [Devin Local agent](/desktop/devin-local) replaces them with its own [permissions model](/desktop/devin-local#permissions-model), which controls command execution with allow, ask, and deny rules instead.
</Note>

Devin Desktop provides four levels of command auto-execution, giving you control over how the agent runs terminal commands:

| Level | Description |
| - | - |
| **Disabled** | Auto-execution is completely disabled. All commands require manual approval before execution. |
| **Allowlist Only** | Only commands that match entries in your allow list can be auto-executed. All other commands require manual approval. |
| **Auto** | The agent uses its judgment to determine whether a command is safe to auto-execute. Commands deemed potentially risky will still require your approval. This feature is only available for messages sent with premium models. |
| **Turbo** | All commands are auto-executed immediately, except those in your deny list. |

You can select your preferred auto-execution level via the Devin Settings panel in the bottom right corner of the editor.

<Frame>
  <img style={{ maxHeight: "500px" }} src="https://mintcdn.com/cognitionai/hxeMffzXgF_RWx-U/desktop/assets/windsurf/cascade/cascade-turbo-mode.png?fit=max&auto=format&n=hxeMffzXgF_RWx-U&q=85&s=ae2e7e169ff832dbc848f2b486a1bc64" width="680" height="60" data-path="desktop/assets/windsurf/cascade/cascade-turbo-mode.png" />
</Frame>

### Admin-Controlled Maximum Level (Teams & Enterprise)

For Teams and Enterprise users, administrators can set a maximum allowed auto-execution level for their organization. This setting restricts which levels are available to team members, allowing admins to enforce security policies while still giving users flexibility within those bounds.

When an admin sets a maximum level, users can select any level up to and including that maximum. For example, if an admin sets the maximum to "Auto", users can choose between Disabled, Allowlist Only, or Auto, but cannot enable Turbo mode.

Administrators can configure this setting in the <a href="https://windsurf.com/team/settings" target="_blank">Admin Portal</a> under Team Settings.

### Team-Wide Command Lists (Teams & Enterprise)

Administrators can configure **team-wide allowlist and denylist** for terminal commands that apply to all team members. These lists work in addition to individual user allow/deny lists.

| List Type | Behavior |
| - | - |
| **Allowlist** | Commands matching entries in this list will be auto-executed without user confirmation (when auto-execution is enabled for the user). |
| **Denylist** | Commands matching entries in this list will always require user approval before execution, regardless of user settings. |

**Key behaviors:**

* **Team and user configs are merged**: Team-level lists are combined with each user's individual [allow list](#allow-list) and [deny list](#deny-list). A command matching either the team or user allowlist will be auto-executed (unless blocked by a denylist).
* The **denylist takes precedence** over the allowlist—if a command matches both lists (at either team or user level), it will require approval

To configure team-wide command lists, go to the <a href="https://windsurf.com/team/settings" target="_blank">Admin Portal</a> → Team Settings → Terminal Commands → **Manage Lists**.

### Allow list

An allow list defines a set of terminal commands that will always auto-execute. Entries ending in ` *` match every command that starts with the same tokens; other entries match only that exact command. For example, if `git *` is on your allow list, then the agent will always accept `git add -A`.

You manage your allow list from the agent's terminal command cards:

* When the agent is waiting for approval, open the dropdown next to **Run**. Under **Allowlist**, choose **Prefix** to auto-run every command that starts with the base command (for example, `git *`), or **Allow** to auto-run only that exact command.
* On a command that has already run, open **Auto-run settings** (the settings icon on the command card) and choose the same options.

Select the highlighted entry again to remove it from your allow list.

### Deny list

A deny list defines a set of terminal commands that will never auto-execute. For example, if `rm *` is on your deny list, then the agent will always ask for permission to run `rm index.py`.

To add a command to your deny list, open the same dropdown next to **Run** (or **Auto-run settings** on a command that has already run) and choose **Deny**. This denies every command that starts with the base command. Select **Deny** again to remove it.

<Note>
  These per-user allow and deny lists apply to Cascade. For the [Devin Local agent](/desktop/devin-local), configure command patterns in **Devin Local settings** under **Allow**, **Deny**, and **Ask** instead. See [permissions](/cli/reference/permissions) for the rule syntax. Team-wide lists are managed separately in the Admin Portal, as described in Team-Wide Command Lists above.
</Note>

# Dedicated terminal

Devin Desktop provides a dedicated terminal for the agent to use for running commands on macOS and Linux.
This dedicated terminal is separate from your default terminal and uses a fixed shell for each platform: `zsh` on macOS and `bash` on Linux.

<Frame>
  <img style={{ maxHeight: "350px" }} src="https://mintcdn.com/cognitionai/WE51TvKjsiyk1ZHl/desktop/assets/windsurf/dedicated-terminal.png?fit=max&auto=format&n=WE51TvKjsiyk1ZHl&q=85&s=5950aff728dc78dcfb4d3f1304232496" width="1248" height="430" data-path="desktop/assets/windsurf/dedicated-terminal.png" />
</Frame>

The dedicated terminal *will* use your configuration for that shell, so aliases and environment variables will be available from your shell configuration files (for example, `.zshrc` on macOS or `.bashrc` on Linux).

If your default terminal uses a different shell, and you want Devin Desktop to use shared environment variables, we recommend creating a shared configuration file that both shells can source.

### Troubleshooting

If you have issues with the dedicated terminal, you can revert to the legacy terminal by enabling the Legacy Terminal Profile option in Devin Desktop settings.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.