Guias

Locais dos arquivos de configuração de todo agente de IA para programação: Claude Code, Cursor, Codex, Gemini CLI, OpenCode, Qwen Code, Amp e Factory Droid (2026)

Onde fica o arquivo de configuração de cada agente de IA para programação, e qual arquivo vence quando a mesma chave é definida duas vezes?

O Claude Code usa ~/.claude/settings.json, além de .claude/settings.json e .claude/settings.local.json no projeto. O Codex usa ~/.codex/config.toml, além de .codex/config.toml em projetos confiáveis. O Gemini CLI e o Qwen Code usam ~/.gemini/settings.json e ~/.qwen/settings.json, com uma pasta .gemini ou .qwen por projeto. O OpenCode usa ~/.config/opencode/opencode.json e opencode.json, o Amp usa ~/.config/amp/settings.json e .amp/settings.json, e o Factory Droid usa ~/.factory/settings.json. O Cursor guarda as configurações de IA no painel Cursor Settings e arquivos do agente, como permissions.json, em ~/.cursor e .cursor. Em todas as ferramentas, o arquivo do projeto sobrescreve o arquivo do usuário.

Esta página é uma tradução do guia em inglês. Comandos, chaves de configuração e código não foram alterados; em caso de diferença, vale a versão em inglês. Ler em inglês → · Outros idiomas: 简体中文 · 日本語 · 한국어 · Español

Saiba quando a configuração mudar

Quando uma configuração, flag ou regra de permissão dessas ferramentas mudar, você recebe um e-mail semanal (em inglês), conferido na documentação oficial.

Resposta rápida: arquivos de configuração do usuário e do projeto

  • Claude Code: ~/.claude/settings.json (usuário), .claude/settings.json (projeto compartilhado), .claude/settings.local.json (só você, um projeto). Altere as opções comuns com /config.
  • Cursor: painel Cursor Settings (Ctrl/Cmd + Shift + J) para recursos de IA, o settings.json no estilo VS Code para chaves do editor, e arquivos do agente em ~/.cursor e .cursor: mcp.json, permissions.json, hooks.json, sandbox.json. O Cursor CLI usa ~/.cursor/cli-config.json.
  • OpenAI Codex: ~/.codex/config.toml (usuário) e .codex/config.toml no repo, carregado só quando você confia no projeto.
  • Gemini CLI: ~/.gemini/settings.json (usuário) e .gemini/settings.json na raiz do projeto.
  • Qwen Code: ~/.qwen/settings.json (usuário) e .qwen/settings.json na raiz do projeto.
  • OpenCode: ~/.config/opencode/opencode.json (global) e opencode.json na raiz do projeto. JSONC também funciona.
  • Amp: ~/.config/amp/settings.json (usuário) e o .amp/settings.json mais próximo (workspace). Toda chave começa com amp.
  • Factory Droid: ~/.factory/settings.json, editado com o comando /settings. Um settings.local.json ao lado dele é mesclado por cima.

Qual arquivo vence

  • Claude Code, do mais alto para o mais baixo: managed settings, argumentos de linha de comando, .claude/settings.local.json, .claude/settings.json, ~/.claude/settings.json. Chaves de lista como permissions.allow são mescladas entre os arquivos.
  • Codex, do mais alto para o mais baixo: flags da CLI e overrides com -c, arquivos .codex/config.toml do projeto (o mais próximo do seu diretório vence), um arquivo de --profile, ~/.codex/config.toml, depois os padrões do sistema e embutidos.
  • Gemini CLI e Qwen Code: o arquivo do projeto sobrescreve o do usuário, e um arquivo de configuração do sistema sobrescreve ambos. Variáveis de ambiente e argumentos de linha de comando sobrescrevem todos os arquivos.
  • OpenCode: os arquivos são mesclados, não substituídos. Fontes posteriores sobrescrevem as anteriores só nas chaves em conflito, e a config do projeto carrega depois da global.
  • Amp: as configurações do workspace sobrescrevem as do usuário.
  • Cursor permissions.json: os arquivos do usuário e do projeto são combinados, e seus arrays são concatenados.
  • Factory Droid: o settings.local.json é mesclado por cima do settings.json no mesmo nível.

Mesma ideia, sintaxe diferente

Claude Code: .claude/settings.json

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "allow": ["Bash(npm run test *)"],
    "deny": ["Read(./.env)"]
  }
}

Codex: ~/.codex/config.toml

model_reasoning_effort = "medium"
approval_policy = "on-request"
sandbox_mode = "workspace-write"

Gemini CLI: .gemini/settings.json

{
  "general": {
    "defaultApprovalMode": "auto_edit"
  },
  "tools": {
    "sandbox": "docker"
  }
}

OpenCode: opencode.json

{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "edit": "ask",
    "bash": { "*": "ask", "git *": "allow" }
  }
}

Cursor: .cursor/permissions.json

{
  "terminalAllowlist": ["git", "npm", "pnpm"],
  "mcpAllowlist": ["github:*"]
}

Pegadinhas

  • Os arquivos de configuração do Claude Code são JSON estrito. Um comentário ou vírgula final é erro de sintaxe.
  • Um .codex/config.toml de projeto não pode definir chaves de provider, auth, notification, profile ou telemetry. Coloque essas no ~/.codex/config.toml.
  • As configurações do Gemini CLI devem ficar dentro do objeto da sua categoria, como general, ui, model ou tools. O YOLO mode não pode ser definido no arquivo, só com --yolo ou --approval-mode=yolo.
  • Faça commit dos arquivos compartilhados (.claude/settings.json, .cursor/permissions.json, opencode.json) e deixe os pessoais fora do git (.claude/settings.local.json, o settings.local.json do Droid).

Guia completo de configuração para cada agente

Fontes

Documentação oficial (em inglês) usada para conferir este guia. Versão em inglês revisada em: 2026-10-18

Mais guias em português