Configuration

Approval settings

Configure tool auto-approval in Bob Shell by editing settings.json.

The approval key in ~/.bob/settings/settings.json controls which tool groups and individual tools are automatically approved. This file is shared with the IDE; changes made through the IDE settings UI are written to the same file.

Note:

Changes to this file take effect the next time you start a Bob Shell session.

Schema

"approval": {
  "allowed_permissions": [
    "mcp",
    "mode",
    "subtask",
    "subagent",
    "skill",
    "todo",
    "read",
    "execute"
  ],
  "permissionOptions": [
    {
      "groupId": "read",
      "enableOutsideWorkspace": true
    }
  ],
  "allowedExecutors": [
    {
      "toolId": "execute_command",
      "approvedCommands": [
        "cat",
        "git diff",
        "git log",
        "git rev-parse",
        "git show",
        "git status",
        "grep",
        "head",
        "tail",
        "ls",
        "sort",
        "wc",
        "which",
        "du",
        "df"
      ],
      "deniedCommands": [
        "rm"
      ]
    }
  ]
}

Top-level keys

KeyTypeDescription
allowed_permissionsarray of stringsThe tool permission groups that are automatically approved. See permission group IDs below.
permissionOptionsarray of objectsPer-group options. Currently supports enableOutsideWorkspace for the read group.
allowedExecutorsarray of objectsPer-tool command allowlists and denylists. Currently applies to execute_command.

Permission group IDs

Group IDTools covered
readFile read, directory listing, search
editFile write, create, and delete
executeTerminal and shell command execution
mcpAll MCP server tool calls
skillSkill activation
todoTodo list updates
subtaskSubtask creation
subagentSubagent spawning
modeMode switching

allowedExecutors schema

FieldTypeDescription
toolIdstringThe tool to configure. Currently only execute_command is supported.
approvedCommandsarray of stringsCommands that are automatically approved when matched as a prefix of the full command string.
deniedCommandsarray of stringsCommands that are always denied, even if auto-approve is enabled. Takes precedence over approvedCommands.
How is this topic?