> ## 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.

# Devin Local

> Use the Devin Local agent in Devin Desktop: the Devin CLI agent harness with subagents, sandboxing, plan mode, worktrees, and permissions.

Devin Local is our next-generation agent harness shared with [Devin CLI](https://cli.devin.ai).

It operates on your machine with access to your local files, tools, and environment and is the primary local agent for Devin Desktop.

> **[Modes](https://docs.devin.ai/desktop/devin-local/modes.md)**
>
> Code, Smart, Ask, Plan, and Bypass Permissions, and how to plan before implementing.

> **[Customizations](https://docs.devin.ai/desktop/devin-local/customizations.md)**
>
> Plugins, skills, MCP servers, hooks, and rules, and the surface that shows what a session has loaded.

> **[Permissions](https://docs.devin.ai/desktop/devin-local/permissions.md)**
>
> Allow, ask, and deny rules, approval requests, and MCP tool permissions.

> **[Worktrees](https://docs.devin.ai/desktop/devin-local/worktrees.md)**
>
> Run a session in a git worktree and merge its changes back into your workspace.

## Key features

### Token efficiency

The Devin Local agent is built around prompt caching, so most tasks use fewer tokens for the same result.

### Subagents

The Devin Local agent can spawn independent [subagents](https://docs.devin.ai/cli/subagents.md) to handle subtasks — either in the foreground or background. Subagents share tools and codebase context with the parent agent but operate in their own conversation chain.

Subagents are controlled by the **Subagents (Preview)** toggle in `Devin Settings`.

Beyond the built-in profiles, you can define your own subagents as markdown files under `agents/` using either layout:

* **Flat file** — `agents/<name>.md`, where the file name becomes the profile's identifier.
* **Directory** — `agents/<name>/AGENT.md`, where the directory name becomes the profile's identifier.

See the [subagents documentation](https://docs.devin.ai/cli/subagents.md) for where these directories are discovered and how to configure a profile.

### Sandboxing

The Devin Local agent supports OS-level sandboxing. When enabled, the sandbox enforces:

* **Filesystem isolation** — writable paths are derived from your [permission scopes](https://docs.devin.ai/desktop/devin-local/permissions.md), and `Read(...)` deny rules hide paths from sandboxed commands
* **Network filtering** — domain allowlists and denylists control what the agent can reach

Enterprise admins can enforce sandbox behavior across the organization through [team settings](https://cli.devin.ai/docs/enterprise/team-settings#sandbox-enforcement), including requiring sandbox mode for all users and configuring organization-wide domain filtering rules.

### Quick Review

[Quick Review](https://docs.devin.ai/desktop/quick-review.md) is a dedicated subagent available with the Devin Local agent to get rapid feedback on changes.

## Switching your agent

New tabs start with Devin Local when you haven't chosen a preferred agent. If Devin Local isn't available to you, the tab uses the first selectable [ACP agent](https://docs.devin.ai/desktop/acp.md) instead, and if no agent is available it shows the default new-tab UI and waits until one is. You can change the agent for *new* conversations at any time via the agent selector in the bottom right corner of Devin Desktop — Devin Local is selectable even while it is still connecting.

![](https://mintcdn.com/cognitionai/WE51TvKjsiyk1ZHl/desktop/assets/windsurf/devin-local-agent-switcher.png?fit=max\&auto=format\&n=WE51TvKjsiyk1ZHl\&q=85\&s=5206df1ec64b71ae0463d56f7453aff3)

### Agent settings

If Devin Local doesn't appear in the agent selector, you might need to enable it from `Devin Settings`:

1. Open the Command Palette with `Cmd+Shift+P` (macOS) or `Ctrl+Shift+P` (Windows/Linux)
2. Open `Devin User Settings`
3. Click the "Agents" tab
4. Toggle the "Devin Local" agent on
5. Restart Devin Desktop

![](https://mintcdn.com/cognitionai/WE51TvKjsiyk1ZHl/desktop/assets/windsurf/devin-local-agent-settings.png?fit=max\&auto=format\&n=WE51TvKjsiyk1ZHl\&q=85\&s=b0f42c5d3d679c55c450fd9067c34303)

### Enterprise admins

Devin Local is a bundled agent that Devin Desktop fetches from the server. Whether it appears in the agent selector is controlled by the **Devin Local Agent** team setting:

* On **Team** and other non-enterprise plans it is available by default (unless an individual member has this access disabled).
* On **Enterprise** plans it is gated, so an admin must turn it on for members.

Enterprise admins manage this from the team settings dashboard:

* **Devin Enterprise admins** — **Settings → Enterprise → Devin Desktop** (`app.devin.ai/org/{orgName}/settings/desktop`). Under **Features**, enable **Devin Local Agent** ("Allow members to use the Devin Local agent in Devin Desktop and delegate tasks to Devin's terminal agent via ACP").
* **Windsurf Enterprise admins** — the [Windsurf dashboard](https://windsurf.com/team/settings).

Once enabled, Devin Local appears in the agent selector for all members after they restart Devin Desktop — no per-user setup or custom [ACP registry config](https://docs.devin.ai/desktop/acp.md#team-registry-configuration) is required.

## Restricted Mode

When a workspace is open in **Restricted Mode**, agents are unavailable in it: Cascade, Devin Local, and every [ACP agent](https://docs.devin.ai/desktop/acp.md) are disabled, and [hooks](https://docs.devin.ai/desktop/devin-local/customizations.md#hooks) neither load nor run.

Agents become available again once the workspace is no longer in Restricted Mode.

## Conversation sharing

In Devin Desktop, choose **Share conversation** from the actions menu below a completed turn; in Devin CLI or another ACP client, run `/share`. The agent uploads a sanitized transcript (secrets redacted, system prompts and tool definitions dropped) and returns a link to share with your team. Sharing is only offered when your organization allows conversation sharing, you are signed in with a Devin account (not a Windsurf-only account), and the client supports sharing.

## Analytics

Devin Local activity is reported in the [`cascade_runs`](https://docs.devin.ai/desktop/accounts/api-reference/cascade-analytics) data source (model usage, messages sent, and credit consumption), the [`cascade_tool_usage`](https://docs.devin.ai/desktop/accounts/api-reference/cascade-analytics) data source (per-tool call counts such as Code Edit, Run Command, Search Web, and MCP Tool), the [`cascade_lines`](https://docs.devin.ai/desktop/accounts/api-reference/cascade-analytics) data source (daily lines of code written by the agent), and the [Cascade Data source](https://docs.devin.ai/desktop/accounts/analytics-api.md#cascade-data) of the Custom Analytics API.

Devin Local does not track suggested lines or "modes": an edit only runs after you approve it, so accepted lines equal suggested lines, and the `mode` field in `cascade_runs` is not populated.

The Devin CLI does not report analytics for [hybrid deployments](https://devin.ai/blog/self-hosted-deployment-maintenance-mode).

## Enterprise controls

Enterprise admins can configure the Devin Local agent through [team settings](https://windsurf.com/team/settings), including [new controls only available with the Devin Local agent](https://cli.devin.ai/docs/enterprise/team-settings):

* **Sandbox enforcement** - Require sandbox mode for all users and configure organization-wide domain filtering rules
* **Granular permissions** - Control which actions the agent can take with more fine-grained permissions
* **Network enforcement** - Control network access with allowed and denied domains

The organization's conversation sharing control is honored: when sharing is disabled for the organization, the Devin Local agent does not offer **Share conversation** or `/share`.

Additionally, the "Enable Cascade" control can be used to disable the legacy Cascade agent entirely to ensure your team follows the new controls available with Devin CLI.

### Unsupported enterprise controls

The following legacy enterprise controls are not available with the Devin Local agent:

* **Restrict Tool Calls to Workspace** - by default, the Devin Local agent can only read/edit files within the workspace.
  Custom [permissions](https://cli.devin.ai/docs/reference/permissions) are a more flexible replacement that can be used to replicate the same rules.
* **Global tool calling disabled** - If you previously disabled tool calling entirely, write an equivalent [permission policy](https://cli.devin.ai/docs/reference/permissions) for Devin CLI instead.

The following legacy controls will still be enforced as a fallback if you haven't yet implemented an enterprise CLI permission config:

* **Auto Run Terminal Commands** - The Devin Local agent uses its own [permissions model](https://cli.devin.ai/docs/reference/permissions) instead of auto-execution levels; we recommend using this instead, but the old control will still be enforced as a fallback.
* **Terminal allow lists** - Implement an equivalent [permission policy](https://cli.devin.ai/docs/reference/permissions) for Devin CLI to allow specific terminal commands.
* **Terminal deny lists** - Implement an equivalent [permission policy](https://cli.devin.ai/docs/reference/permissions) for Devin CLI to deny specific terminal commands.

## Further reading

* [Devin CLI quickstart](https://cli.devin.ai/docs)
* [Essential commands](https://cli.devin.ai/docs/essential-commands)
* [Extensibility overview](https://cli.devin.ai/docs/extensibility)
* [Team settings](https://cli.devin.ai/docs/enterprise/team-settings)


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