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.5",       // 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": {},

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

Options Reference

agent

OptionTypeDefaultDescription
modelstring"claude-opus-4.5"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"
    }
  }
}

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.

JSON with Comments

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