Verboo

Configuração

O Verboo Code usa arquivos JSON para configuração. Há três escopos:

Arquivo Escopo Commitado?
~/.verboo/settings.json Global (todos os projetos) N/A
.verboo/settings.json Projeto Sim (recomendado)
.verboo/settings.local.json Projeto local Não (gitignored)

A configuração é mesclada nessa ordem — settings locais sobrescrevem projeto, que sobrescrevem global.

Esquema completo

json
{
  "permissions": {
    "defaultMode": "ask",
    "allow": [],
    "deny": []
  },
  "env": {},
  "model": "",
  "mcpServers": {},
  "hooks": {},
  "plugins": [],
  "autoCompact": true,
  "cleanupPeriodDays": 30
}

Permissões

`permissions.defaultMode`

Comportamento padrão para ferramentas sem regra explícita:

Valor Comportamento
"ask" Pergunta ao usuário (padrão)
"auto" Aprovação automática de operações seguras
"bypassPermissions" Ignora todas as permissões (apenas para ambientes controlados)

`permissions.allow`

Lista de ferramentas sempre aprovadas. Sintaxe:

json
{
  "permissions": {
    "allow": [
      "Bash",
      "Bash(npm run *)",
      "Bash(git *)",
      "Edit",
      "Read",
      "WebFetch(domain:github.com)",
      "WebFetch(domain:raw.githubusercontent.com)",
      "Glob",
      "Grep"
    ]
  }
}

Padrões suportados:

Padrão Significa
"Bash" Qualquer comando bash
"Bash(npm *)" Bash com prefixo npm
"WebFetch(domain:example.com)" WebFetch apenas para esse domínio
"Edit" Qualquer edição de arquivo
"Write(path:/tmp/*)" Write apenas em /tmp

`permissions.deny`

Lista de ferramentas sempre bloqueadas (prioridade sobre allow):

json
{
  "permissions": {
    "deny": [
      "Bash(rm -rf *)",
      "Bash(sudo *)",
      "WebFetch(domain:internal.empresa.com)"
    ]
  }
}

Variáveis de ambiente

O bloco env injeta variáveis de ambiente na sessão do agente:

json
{
  "env": {
    "NODE_ENV": "development",
    "DATABASE_URL": "postgres://localhost:5432/dev",
    "DEBUG": "app:*"
  }
}

Nunca coloque segredos em settings.json (commitado). Use settings.local.json para variáveis sensíveis.

Modelo

Override do modelo para a sessão:

json
{
  "model": "claude-sonnet-4-6"
}

Pode ser qualquer modelo suportado pelo provedor configurado.

MCP Servers

Configuração de servidores MCP (veja MCP para exemplos detalhados):

json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    },
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "./"],
      "disabled": false
    }
  }
}

Hooks

Configuração de hooks do ciclo de vida (veja Hooks para exemplos):

json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "prettier --write '{{tool_input.file_path}}' 2>/dev/null || true",
            "async": true
          }
        ]
      }
    ],
    "Stop": [
      {
        "matcher": "*",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Verboo Code finalizou\" with title \"Verboo\"'",
            "async": true
          }
        ]
      }
    ]
  }
}

Auto-compactação

json
{
  "autoCompact": true
}

Quando true, o Verboo Code compacta automaticamente o contexto ao se aproximar do limite do context window. Desabilite se preferir controle manual via /compact.

Limpeza de sessões

json
{
  "cleanupPeriodDays": 30
}

Sessões mais antigas que esse número de dias são removidas automaticamente.

Plugins

json
{
  "plugins": [
    {
      "name": "meu-plugin",
      "source": "https://marketplace.verboo.ai/plugins/meu-plugin"
    }
  ]
}

Configurações de SSH (sessões remotas)

json
{
  "sshConfig": {
    "host": "meu-servidor.com",
    "user": "ubuntu",
    "identityFile": "~/.ssh/id_rsa",
    "port": 22
  }
}

Customização de atribuição

json
{
  "attribution": {
    "coAuthoredBy": false
  }
}

Desabilita a adição automática de Co-Authored-By: Verboo Code em commits.

Exemplo completo

settings.json típico para um projeto:

json
{
  "permissions": {
    "defaultMode": "ask",
    "allow": [
      "Bash(npm run *)",
      "Bash(git status)",
      "Bash(git diff *)",
      "Bash(git log *)",
      "Read",
      "Edit",
      "Glob",
      "Grep",
      "WebFetch(domain:docs.npmjs.com)",
      "WebFetch(domain:developer.mozilla.org)"
    ],
    "deny": [
      "Bash(rm -rf *)",
      "Bash(sudo *)"
    ]
  },
  "env": {
    "NODE_ENV": "development"
  },
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "npx prettier --write '{{tool_input.file_path}}' 2>/dev/null || true",
            "async": true
          }
        ]
      }
    ]
  }
}

E settings.local.json (gitignored) com segredos:

json
{
  "env": {
    "DATABASE_URL": "postgres://user:senha@localhost:5432/dev",
    "OPENAI_API_KEY": "sk-..."
  }
}