Skip to main content
Devin for Terminal uses JSON files (with comment support) for configuration. This page documents all available options.

File Locations

FilePurpose
~/.config/cognition/config.jsonUser-wide settings
~/.config/cognition/config.local.jsonUser-wide local overrides
.cognition/config.jsonProject settings (committed)
.cognition/config.local.jsonProject local overrides (gitignored)

Full Config Reference

// ~/.config/cognition/config.json
{
  // Agent behavior
  "agent": {
    "model": "claude-opus-4-6-thinking",       // Default model
    "show_history_on_continue": true  // Show messages when resuming
  },

  // Theme
  "theme_mode": null,            // "light", "dark", or null (auto)

  // Permissions
  "permissions": {
    "allow": [],
    "deny": [],
    "ask": []
  },

  // MCP servers
  "mcpServers": {},

  // Display
  "show_path": false,             // Show CWD in input border

  // Sandbox network filtering
  "sandbox": {
    "allowed_domains": [],       // Domain allowlist (empty = no filtering)
    "denied_domains": [],        // Domain denylist (takes precedence)
    "network_mode": "full"       // "full" or "limited" (GET/HEAD/OPTIONS only)
  },

  // Import settings from other tools
  "read_config_from": {
    "cursor": true,
    "windsurf": true,
    "claude": true
  }
}

Options Reference

agent

OptionTypeDefaultDescription
modelstring"claude-opus-4-6-thinking"Default AI model
show_history_on_continuebooleantrueShow previous messages when resuming a session

theme_mode

ValueBehavior
nullAuto-detect (asks on first run)
"light"Light theme
"dark"Dark theme

permissions

See Permissions for full documentation.
{
  "permissions": {
    "allow": ["Read(**)", "Exec(git)"],
    "deny": ["Exec(sudo)"],
    "ask": ["Write(**/.env*)"]
  }
}

mcpServers

Map of server name to server configuration. Supports both local command (stdio) and remote HTTP servers. See MCP Configuration.
{
  "mcpServers": {
    "server-name": {
      "command": "executable",
      "args": ["arg1", "arg2"],
      "env": { "KEY": "value" }
    },
    "remote-server": {
      "url": "https://mcp.example.com/mcp",
      "transport": "http"
    }
  }
}

show_path

Show the current working directory path in the input border. When enabled, the top border of the input box displays your prettified CWD (e.g. ~/projects/my-app).
ValueBehavior
falseHidden (default)
trueShow CWD path in input border

read_config_from

Control importing from other AI tool configurations:
OptionTypeDefaultDescription
cursorboolean/nulltrueImport from .cursorrules, .cursor/rules/
windsurfboolean/nulltrueImport from .windsurf/rules/
claudeboolean/nulltrueImport from .claude/
Set to false to disable a specific import. null is treated as true.

sandbox

Sandbox network filtering is currently unstable. If you need this feature, please reach out to your account representative for stability timelines.
Configure domain-level network filtering for the sandbox. When --sandbox workspace is active and domain filtering is configured, a managed network proxy starts on loopback and the sandbox restricts all child traffic to route through it. (In --sandbox read-only mode, all network access is blocked entirely regardless of domain filtering settings.)
OptionTypeDefaultDescription
allowed_domainsstring[][]Domain patterns allowed through the proxy. When non-empty, only matching domains are allowed (allowlist mode)
denied_domainsstring[][]Domain patterns always blocked. Deny rules take precedence over allow rules
network_modestring"full""full" allows all HTTP methods; "limited" allows only GET/HEAD/OPTIONS
Domain pattern syntax:
PatternMatches
example.comExact match only
*.example.comAny subdomain (not the apex)
**.example.comApex domain and any subdomain
Example:
{
  "sandbox": {
    "allowed_domains": [
      "github.com",
      "**.npmjs.org",
      "**.crates.io",
      "**.pypi.org"
    ],
    "denied_domains": ["evil.example.com"],
    "network_mode": "full"
  }
}
Domain filtering applies when the sandbox is active in workspace mode (--sandbox workspace). With --sandbox off, the sandbox section is ignored. With --sandbox read-only, all network access is blocked regardless of these settings.

JSON with Comments

Config files support JavaScript-style comments:
{
  // Line comments
  "agent": {
    "model": "sonnet"  // Inline comments
  },
  /* Block
     comments */
  "permissions": {}
}