Command in the terminal
Use our Command modality in the terminal (Cmd/Ctrl+I) to generate the proper CLI syntax from prompts in natural language.

Send terminal selection to Cascade
Highlight a portion of of the stack trace and pressCmd/Ctrl+L to send it to Cascade, where you can reference this selection in your next prompt.

@-mention your terminal
Chat with Cascade about your active terminals.Auto-executed Cascade commands
Cascade has the ability to run terminal commands on its own with user permission. You can configure how Cascade 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
Windsurf provides four levels of command auto-execution, giving you control over how Cascade 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 | Cascade 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. |

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 Admin Portal under Team Settings.Allow list
An allow list defines a set of terminal commands that will always auto-execute. For example, if you addgit, then Cascade will always accept git add -A.
The setting can be via Command Palette → Open Settings (UI) → Search for windsurf.cascadeCommandsAllowList.

Deny list
A deny list defines a set of terminal commands that will never auto-execute. For example, if you addrm, then Cascade will always ask for permission to run rm index.py.
The setting can be via Command Palette → Open Settings (UI) → Search for windsurf.cascadeCommandsDenyList.

Dedicated terminal
Starting in Wave 13, Windsurf introduced a dedicated terminal for Cascade to use for running commands on macOS. This dedicated terminal is separate from your default terminal and always useszsh as the shell.

.zshrc and other zsh-specific files.
If you use a different shell instead of zsh, and want Windsurf to use shared environment variables, we recommend creating a shared configuration file that both shells can source.