Skip to Content
Guia do UsuárioConfiguraçãoConfigurações

Configuração do Qwen Code

Tip

Autenticação / Chaves de API: Autenticação (Qwen OAuth vs API compatível com OpenAI) e variáveis de ambiente relacionadas à autenticação (como OPENAI_API_KEY) estão documentadas em Autenticação.

Note

Observação sobre o Novo Formato de Configuração: O formato do arquivo settings.json foi atualizado para uma nova estrutura mais organizada. O formato antigo será migrado automaticamente. O Qwen Code oferece várias maneiras de configurar seu comportamento, incluindo variáveis de ambiente, argumentos de linha de comando e arquivos de configurações. Este documento descreve os diferentes métodos de configuração e as opções disponíveis.

Camadas de configuração

A configuração é aplicada na seguinte ordem de precedência (números menores são substituídos por números maiores):

NívelFonte de ConfiguraçãoDescrição
1Valores padrãoPadrões codificados dentro da aplicação
2Arquivo de padrões do sistemaConfigurações padrão em todo o sistema que podem ser substituídas por outros arquivos de configuração
3Arquivo de configurações do usuárioConfigurações globais para o usuário atual
4Arquivo de configurações do projetoConfigurações específicas do projeto
5Arquivo de configurações do sistemaConfigurações em todo o sistema que substituem todos os outros arquivos de configuração
6Variáveis de ambienteVariáveis em todo o sistema ou específicas da sessão, potencialmente carregadas de arquivos .env
7Argumentos de linha de comandoValores passados ao iniciar a CLI

Arquivos de configurações

O Qwen Code usa arquivos de configurações JSON para configuração persistente. Existem quatro locais para esses arquivos:

Tipo de arquivoLocalizaçãoEscopo
Arquivo de padrões do sistemaLinux: /etc/qwen-code/system-defaults.json
Windows: C:\ProgramData\qwen-code\system-defaults.json
macOS: /Library/Application Support/QwenCode/system-defaults.json
O caminho pode ser substituído usando a variável de ambiente QWEN_CODE_SYSTEM_DEFAULTS_PATH.
Fornece uma camada base de configurações padrão para todo o sistema. Essas configurações têm a menor precedência e devem ser substituídas por configurações de usuário, projeto ou substituições do sistema.
Arquivo de configurações do usuário~/.qwen/settings.json (onde ~ é seu diretório home).Aplica-se a todas as sessões do Qwen Code para o usuário atual.
Arquivo de configurações do projeto.qwen/settings.json dentro do diretório raiz do seu projeto.Aplica-se apenas ao executar o Qwen Code a partir desse projeto específico. As configurações do projeto substituem as configurações do usuário.
Arquivo de configurações do sistemaLinux: /etc/qwen-code/settings.json
Windows: C:\ProgramData\qwen-code\settings.json
macOS: /Library/Application Support/QwenCode/settings.json
O caminho pode ser substituído usando a variável de ambiente QWEN_CODE_SYSTEM_SETTINGS_PATH.
Aplica-se a todas as sessões do Qwen Code no sistema, para todos os usuários. As configurações do sistema substituem as configurações do usuário e do projeto. Pode ser útil para administradores de sistema em empresas terem controle sobre as configurações do Qwen Code dos usuários.
Note

Observação sobre variáveis de ambiente nas configurações: Valores de string dentro dos seus arquivos settings.json podem referenciar variáveis de ambiente usando a sintaxe $VAR_NAME ou ${VAR_NAME}. Essas variáveis serão resolvidas automaticamente quando as configurações forem carregadas. Por exemplo, se você tiver uma variável de ambiente MY_API_TOKEN, você poderia usá-la em settings.json assim: "apiKey": "$MY_API_TOKEN".

O diretório .qwen em seu projeto

Além de um arquivo de configurações do projeto, o diretório .qwen de um projeto pode conter outros arquivos específicos do projeto relacionados ao funcionamento do Qwen Code, tais como:

Configurações disponíveis em settings.json

As configurações são organizadas em categorias. Todas as configurações devem ser colocadas dentro do objeto de categoria de nível superior correspondente em seu arquivo settings.json.

geral

ConfiguraçãoTipoDescriçãoPadrão
general.preferredEditorstringO editor preferido para abrir arquivos.undefined
general.vimModebooleanHabilitar atalhos de teclado do Vim.false
general.disableAutoUpdatebooleanDesabilitar atualizações automáticas.false
general.disableUpdateNagbooleanDesabilitar notificações de atualização.false
general.gitCoAuthorbooleanAdicionar automaticamente um trailer Co-authored-by às mensagens de commit do git quando commits são feitos através do Qwen Code.true
general.checkpointing.enabledbooleanHabilitar checkpointing de sessão para recuperação.false

output

ConfiguraçãoTipoDescriçãoPadrãoValores Possíveis
output.formatstringO formato da saída do CLI."text""text", "json"

ui

ConfiguraçãoTipoDescriçãoPadrão
ui.themestringO tema de cores para a interface. Veja Temas para opções disponíveis.undefined
ui.customThemesobjectDefinições de temas personalizados.{}
ui.hideWindowTitlebooleanOcultar a barra de título da janela.false
ui.hideTipsbooleanOcultar dicas úteis na interface.false
ui.hideBannerbooleanOcultar o banner do aplicativo.false
ui.hideFooterbooleanOcultar o rodapé da interface.false
ui.showMemoryUsagebooleanExibir informações de uso de memória na interface.false
ui.showLineNumbersbooleanMostrar números de linha nos blocos de código na saída do CLI.true
ui.showCitationsbooleanMostrar citações para texto gerado no chat.true
enableWelcomeBackbooleanMostrar diálogo de boas-vindas ao retornar a um projeto com histórico de conversa. Quando ativado, o Qwen Code detectará automaticamente se você está retornando a um projeto com um resumo de projeto previamente gerado (.qwen/PROJECT_SUMMARY.md) e mostrará um diálogo permitindo continuar sua conversa anterior ou começar do zero. Este recurso se integra ao comando /summary e ao diálogo de confirmação de saída.true
ui.accessibility.disableLoadingPhrasesbooleanDesativar frases de carregamento para acessibilidade.false
ui.accessibility.screenReaderbooleanAtiva o modo leitor de tela, que ajusta a interface TUI para melhor compatibilidade com leitores de tela.false
ui.customWittyPhrasesarray of stringsUma lista de frases personalizadas para exibir durante estados de carregamento. Quando fornecido, o CLI percorrerá essas frases em vez das padrão.[]

ide

ConfiguraçãoTipoDescriçãoPadrão
ide.enabledbooleanHabilita o modo de integração com IDE.false
ide.hasSeenNudgebooleanSe o usuário já viu a sugestão de integração com IDE.false

privacidade

ConfiguraçãoTipoDescriçãoPadrão
privacy.usageStatisticsEnabledbooleanHabilita a coleta de estatísticas de uso.true

model

ConfiguraçãoTipoDescriçãoPadrão
model.namestringO modelo Qwen a ser usado para conversas.undefined
model.maxSessionTurnsnumberNúmero máximo de turnos do usuário/modelo/ferramenta a manter em uma sessão. -1 significa ilimitado.-1
model.summarizeToolOutputobjectHabilita ou desabilita a sumarização da saída da ferramenta. Você pode especificar o orçamento de tokens para a sumarização usando a configuração tokenBudget. Nota: Atualmente apenas a ferramenta run_shell_command é suportada. Por exemplo {"run_shell_command": {"tokenBudget": 2000}}undefined
model.generationConfigobjectSubstituições avançadas passadas para o gerador de conteúdo subjacente. Suporta controles de requisição como timeout, maxRetries e disableCacheControl, juntamente com ajustes finos sob samplingParams (por exemplo temperature, top_p, max_tokens). Deixe não definido para confiar nos padrões do provedor.undefined
model.chatCompression.contextPercentageThresholdnumberDefine o limite para compressão do histórico de chat como uma porcentagem do limite total de tokens do modelo. Este é um valor entre 0 e 1 que se aplica tanto à compressão automática quanto ao comando manual /compress. Por exemplo, um valor de 0.6 acionará a compressão quando o histórico de chat exceder 60% do limite de tokens. Use 0 para desabilitar a compressão completamente.0.7
model.skipNextSpeakerCheckbooleanPula a próxima verificação de orador.false
model.skipLoopDetectionbooleanDesabilita as verificações de detecção de loop. A detecção de loop previne loops infinitos nas respostas de IA, mas pode gerar falsos positivos que interrompem fluxos de trabalho legítimos. Habilite esta opção se você experimentar interrupções frequentes de detecção de loop falsos.false
model.skipStartupContextbooleanPula o envio do contexto de workspace de inicialização (resumo do ambiente e reconhecimento) no início de cada sessão. Habilite isso se você preferir fornecer contexto manualmente ou quiser economizar tokens na inicialização.false
model.enableOpenAILoggingbooleanHabilita o registro de chamadas da API OpenAI para depuração e análise. Quando habilitado, requisições e respostas da API são registradas em arquivos JSON.false
model.openAILoggingDirstringCaminho personalizado para diretório de logs da API OpenAI. Se não especificado, o padrão é logs/openai no diretório de trabalho atual. Suporta caminhos absolutos, caminhos relativos (resolvidos a partir do diretório de trabalho atual) e expansão de ~ (diretório home).undefined

Exemplo model.generationConfig:

{ "model": { "generationConfig": { "timeout": 60000, "disableCacheControl": false, "samplingParams": { "temperature": 0.2, "top_p": 0.8, "max_tokens": 1024 } } } }

Exemplos model.openAILoggingDir:

  • "~/qwen-logs" - Registra no diretório ~/qwen-logs
  • "./custom-logs" - Registra em ./custom-logs relativo ao diretório atual
  • "/tmp/openai-logs" - Registra no caminho absoluto /tmp/openai-logs

contexto

ConfiguraçãoTipoDescriçãoPadrão
context.fileNamestring ou array de stringsO nome do(s) arquivo(s) de contexto.undefined
context.importFormatstringO formato a ser usado ao importar memória.undefined
context.discoveryMaxDirsnúmeroNúmero máximo de diretórios a serem pesquisados para encontrar memória.200
context.includeDirectoriesarrayDiretórios adicionais a serem incluídos no contexto do workspace. Especifica um array de caminhos absolutos ou relativos adicionais a serem incluídos no contexto do workspace. Diretórios ausentes serão ignorados com um aviso por padrão. Caminhos podem usar ~ para se referir ao diretório home do usuário. Esta configuração pode ser combinada com a flag de linha de comando --include-directories.[]
context.loadFromIncludeDirectoriesbooleanoControla o comportamento do comando /memory refresh. Se definido como true, os arquivos QWEN.md devem ser carregados de todos os diretórios que forem adicionados. Se definido como false, o QWEN.md deve ser carregado apenas do diretório atual.false
context.fileFiltering.respectGitIgnorebooleanoRespeitar arquivos .gitignore durante a pesquisa.true
context.fileFiltering.respectQwenIgnorebooleanoRespeitar arquivos .qwenignore durante a pesquisa.true
context.fileFiltering.enableRecursiveFileSearchbooleanoSe deve habilitar a pesquisa recursiva de nomes de arquivos na árvore atual ao completar prefixos @ no prompt.true
context.fileFiltering.disableFuzzySearchbooleanoQuando true, desabilita as capacidades de pesquisa difusa ao procurar por arquivos, o que pode melhorar o desempenho em projetos com um grande número de arquivos.false

Solução de Problemas de Desempenho na Pesquisa de Arquivos

Se você estiver enfrentando problemas de desempenho com a pesquisa de arquivos (por exemplo, com preenchimentos automáticos @), especialmente em projetos com um número muito grande de arquivos, aqui estão algumas coisas que você pode tentar, na ordem recomendada:

  1. Use .qwenignore: Crie um arquivo .qwenignore na raiz do seu projeto para excluir diretórios que contêm um grande número de arquivos que você não precisa referenciar (por exemplo, artefatos de build, logs, node_modules). Reduzir o número total de arquivos rastreados é a forma mais eficaz de melhorar o desempenho.
  2. Desative a Pesquisa Difusa: Se ignorar arquivos não for suficiente, você pode desativar a pesquisa difusa definindo disableFuzzySearch como true no seu arquivo settings.json. Isso usará um algoritmo de correspondência mais simples e não difuso, que pode ser mais rápido.
  3. Desative a Pesquisa Recursiva de Arquivos: Como último recurso, você pode desativar completamente a pesquisa recursiva de arquivos definindo enableRecursiveFileSearch como false. Esta será a opção mais rápida, pois evita um rastreamento recursivo do seu projeto. No entanto, isso significa que você precisará digitar o caminho completo dos arquivos ao usar preenchimentos automáticos @.

ferramentas

ConfiguraçãoTipoDescriçãoPadrãoNotas
tools.sandboxboolean ou stringAmbiente de execução sandbox (pode ser um boolean ou uma string de caminho).undefined
tools.shell.enableInteractiveShellbooleanUsa node-pty para uma experiência de shell interativo. O fallback para child_process ainda se aplica.false
tools.corearray de stringsPode ser usado para restringir o conjunto de ferramentas embutidas com uma lista de permissões. Você também pode especificar restrições específicas de comando para ferramentas que as suportam, como a ferramenta run_shell_command. Por exemplo, "tools.core": ["run_shell_command(ls -l)"] permitirá apenas que o comando ls -l seja executado.undefined
tools.excludearray de stringsNomes de ferramentas a serem excluídas da descoberta. Você também pode especificar restrições específicas de comando para ferramentas que as suportam, como a ferramenta run_shell_command. Por exemplo, "tools.exclude": ["run_shell_command(rm -rf)"] bloqueará o comando rm -rf. Nota de segurança: Restrições específicas de comando em tools.exclude para run_shell_command são baseadas em correspondência simples de strings e podem ser facilmente contornadas. Este recurso não é um mecanismo de segurança e não deve ser confiado para executar código não confiável com segurança. Recomenda-se usar tools.core para selecionar explicitamente comandos que podem ser executados.undefined
tools.allowedarray de stringsUma lista de nomes de ferramentas que irão ignorar o diálogo de confirmação. Isso é útil para ferramentas em que você confia e usa com frequência. Por exemplo, ["run_shell_command(git)", "run_shell_command(npm test)"] irá pular o diálogo de confirmação para executar quaisquer comandos git e npm test.undefined
tools.approvalModestringDefine o modo de aprovação padrão para uso de ferramentas.defaultValores possíveis: plan (analisar apenas, não modificar arquivos ou executar comandos), default (requer aprovação antes de edições de arquivos ou execução de comandos shell), auto-edit (aprovar automaticamente edições de arquivos), yolo (aprovar automaticamente todas as chamadas de ferramentas)
tools.discoveryCommandstringComando a ser executado para descoberta de ferramentas.undefined
tools.callCommandstringDefine um comando shell personalizado para chamar uma ferramenta específica que foi descoberta usando tools.discoveryCommand. O comando shell deve atender aos seguintes critérios: Deve receber o name da função (exatamente como na declaração de função ) como primeiro argumento de linha de comando. Deve ler os argumentos da função como JSON em stdin, análogo a functionCall.args. Deve retornar a saída da função como JSON em stdout, análogo a functionResponse.response.content.undefined
tools.useRipgrepbooleanUsa ripgrep para busca de conteúdo de arquivos em vez da implementação de fallback. Fornece desempenho de busca mais rápido.true
tools.useBuiltinRipgrepbooleanUsa o binário ripgrep embutido. Quando definido como false, o comando rg do sistema será usado em vez disso. Esta configuração só é efetiva quando tools.useRipgrep é true.true
tools.enableToolOutputTruncationbooleanHabilita truncamento de saídas grandes de ferramentas.trueRequer reinicialização: Sim
tools.truncateToolOutputThresholdnúmeroTrunca a saída da ferramenta se for maior que esta quantidade de caracteres. Aplica-se às ferramentas Shell, Grep, Glob, ReadFile e ReadManyFiles.25000Requer reinicialização: Sim
tools.truncateToolOutputLinesnúmeroLinhas ou entradas máximas mantidas ao truncar a saída da ferramenta. Aplica-se às ferramentas Shell, Grep, Glob, ReadFile e ReadManyFiles.1000Requer reinicialização: Sim
tools.autoAcceptbooleanControla se a CLI aceita e executa automaticamente chamadas de ferramentas consideradas seguras (por exemplo, operações somente leitura) sem confirmação explícita do usuário. Se definido como true, a CLI irá ignorar o prompt de confirmação para ferramentas consideradas seguras.false

mcp

ConfiguraçãoTipoDescriçãoPadrão
mcp.serverCommandstringComando para iniciar um servidor MCP.undefined
mcp.allowedarray de stringsUma lista de permissões de servidores MCP permitidos. Permite especificar uma lista de nomes de servidores MCP que devem estar disponíveis para o modelo. Isso pode ser usado para restringir o conjunto de servidores MCP aos quais se conectar. Observe que isso será ignorado se --allowed-mcp-server-names estiver definido.undefined
mcp.excludedarray de stringsUma lista de negação de servidores MCP a serem excluídos. Um servidor listado tanto em mcp.excluded quanto em mcp.allowed será excluído. Observe que isso será ignorado se --allowed-mcp-server-names estiver definido.undefined
Note

Nota de segurança para servidores MCP: Essas configurações usam correspondência simples de strings nos nomes dos servidores MCP, que podem ser modificados. Se você é um administrador de sistema e deseja impedir que usuários contornem isso, considere configurar os mcpServers no nível de configurações do sistema para que o usuário não consiga configurar nenhum servidor MCP por conta própria. Isso não deve ser usado como um mecanismo de segurança infalível.

segurança

ConfiguraçãoTipoDescriçãoPadrão
security.folderTrust.enabledbooleanConfiguração para rastrear se a confiança de pasta está habilitada.false
security.auth.selectedTypestringO tipo de autenticação atualmente selecionado.undefined
security.auth.enforcedTypestringO tipo de autenticação exigido (útil para empresas).undefined
security.auth.useExternalbooleanSe deve usar um fluxo de autenticação externo.undefined

avançado

ConfiguraçãoTipoDescriçãoPadrão
advanced.autoConfigureMemorybooleanConfigura automaticamente os limites de memória do Node.js.false
advanced.dnsResolutionOrderstringA ordem de resolução de DNS.undefined
advanced.excludedEnvVarsarray de stringsVariáveis de ambiente a serem excluídas do contexto do projeto. Especifica variáveis de ambiente que devem ser excluídas do carregamento a partir dos arquivos .env do projeto. Isso evita que variáveis de ambiente específicas do projeto (como DEBUG=true) interfiram no comportamento da CLI. Variáveis de arquivos .qwen/.env nunca são excluídas.["DEBUG","DEBUG_MODE"]
advanced.bugCommandobjectConfiguração para o comando de relatório de bug. Substitui a URL padrão para o comando /bug. Propriedades: urlTemplate (string): Uma URL que pode conter os placeholders {title} e {info}. Exemplo: "bugCommand": { "urlTemplate": "https://bug.example.com/new?title={title}&info={info}" }undefined
advanced.tavilyApiKeystringChave de API para o serviço de busca web Tavily. Usado para habilitar a funcionalidade da ferramenta web_search.undefined
Note

Nota sobre advanced.tavilyApiKey: Este é um formato de configuração legado. Para usuários Qwen OAuth, o provedor DashScope está automaticamente disponível sem nenhuma configuração. Para outros tipos de autenticação, configure os provedores Tavily ou Google usando o novo formato de configuração webSearch.

mcpServers

Configura conexões com um ou mais servidores Model-Context Protocol (MCP) para descobrir e usar ferramentas personalizadas. O Qwen Code tenta se conectar a cada servidor MCP configurado para descobrir ferramentas disponíveis. Se múltiplos servidores MCP expuserem uma ferramenta com o mesmo nome, os nomes das ferramentas serão prefixados com o alias do servidor que você definiu na configuração (ex: serverAlias__actualToolName) para evitar conflitos. Observe que o sistema pode remover certas propriedades de esquema das definições de ferramentas MCP para compatibilidade. Pelo menos um de command, url ou httpUrl deve ser fornecido. Se múltiplos forem especificados, a ordem de precedência é httpUrl, depois url, e então command.

PropriedadeTipoDescriçãoOpcional
mcpServers.<SERVER_NAME>.commandstringO comando a ser executado para iniciar o servidor MCP via I/O padrão.Sim
mcpServers.<SERVER_NAME>.argsarray de stringsArgumentos a serem passados para o comando.Sim
mcpServers.<SERVER_NAME>.envobjetoVariáveis de ambiente a serem definidas para o processo do servidor.Sim
mcpServers.<SERVER_NAME>.cwdstringO diretório de trabalho no qual iniciar o servidor.Sim
mcpServers.<SERVER_NAME>.urlstringA URL de um servidor MCP que usa Server-Sent Events (SSE) para comunicação.Sim
mcpServers.<SERVER_NAME>.httpUrlstringA URL de um servidor MCP que usa HTTP streamável para comunicação.Sim
mcpServers.<SERVER_NAME>.headersobjetoUm mapa de cabeçalhos HTTP a serem enviados com requisições para url ou httpUrl.Sim
mcpServers.<SERVER_NAME>.timeoutnúmeroTimeout em milissegundos para requisições a este servidor MCP.Sim
mcpServers.<SERVER_NAME>.trustbooleanoConfiar neste servidor e ignorar todas as confirmações de chamada de ferramenta.Sim
mcpServers.<SERVER_NAME>.descriptionstringUma breve descrição do servidor, que pode ser usada para fins de exibição.Sim
mcpServers.<SERVER_NAME>.includeToolsarray de stringsLista de nomes de ferramentas a incluir deste servidor MCP. Quando especificado, apenas as ferramentas listadas aqui estarão disponíveis deste servidor (comportamento de lista branca). Se não especificado, todas as ferramentas do servidor são habilitadas por padrão.Sim
mcpServers.<SERVER_NAME>.excludeToolsarray de stringsLista de nomes de ferramentas a excluir deste servidor MCP. Ferramentas listadas aqui não estarão disponíveis para o modelo, mesmo que sejam expostas pelo servidor. Nota: excludeTools tem precedência sobre includeTools - se uma ferramenta estiver em ambas as listas, ela será excluída.Sim

telemetria

Configura o registro de logs e coleta de métricas para o Qwen Code. Para mais informações, veja telemetria.

ConfiguraçãoTipoDescriçãoPadrão
telemetry.enabledbooleanSe a telemetria está ou não habilitada.
telemetry.targetstringO destino para a telemetria coletada. Valores suportados são local e gcp.
telemetry.otlpEndpointstringO endpoint para o Exportador OTLP.
telemetry.otlpProtocolstringO protocolo para o Exportador OTLP (grpc ou http).
telemetry.logPromptsbooleanSe deve ou não incluir o conteúdo dos prompts do usuário nos logs.
telemetry.outfilestringO arquivo para escrever a telemetria quando target é local.
telemetry.useCollectorbooleanSe deve usar um coletor OTLP externo.

Exemplo de settings.json

Aqui está um exemplo de arquivo settings.json com a estrutura aninhada, nova a partir da v0.3.0:

{ "general": { "vimMode": true, "preferredEditor": "code" }, "ui": { "theme": "GitHub", "hideBanner": true, "hideTips": false, "customWittyPhrases": [ "Você esquece milhares de coisas todos os dias. Certifique-se de que esta seja uma delas", "Conectando ao AGI" ] }, "tools": { "approvalMode": "yolo", "sandbox": "docker", "discoveryCommand": "bin/get_tools", "callCommand": "bin/call_tool", "exclude": ["write_file"] }, "mcpServers": { "mainServer": { "command": "bin/mcp_server.py" }, "anotherServer": { "command": "node", "args": ["mcp_server.js", "--verbose"] } }, "telemetry": { "enabled": true, "target": "local", "otlpEndpoint": "http://localhost:4317", "logPrompts": true }, "privacy": { "usageStatisticsEnabled": true }, "model": { "name": "qwen3-coder-plus", "maxSessionTurns": 10, "enableOpenAILogging": false, "openAILoggingDir": "~/qwen-logs", "summarizeToolOutput": { "run_shell_command": { "tokenBudget": 100 } } }, "context": { "fileName": ["CONTEXT.md", "QWEN.md"], "includeDirectories": ["path/to/dir1", "~/path/to/dir2", "../path/to/dir3"], "loadFromIncludeDirectories": true, "fileFiltering": { "respectGitIgnore": false } }, "advanced": { "excludedEnvVars": ["DEBUG", "DEBUG_MODE", "NODE_ENV"] } }

Histórico do Shell

A CLI mantém um histórico dos comandos do shell que você executa. Para evitar conflitos entre diferentes projetos, esse histórico é armazenado em um diretório específico do projeto dentro da pasta home do seu usuário.

  • Localização: ~/.qwen/tmp/<project_hash>/shell_history
    • <project_hash> é um identificador único gerado a partir do caminho raiz do seu projeto.
    • O histórico é armazenado em um arquivo chamado shell_history.

Variáveis de Ambiente e Arquivos .env

Variáveis de ambiente são uma maneira comum de configurar aplicações, especialmente para informações sensíveis (como tokens) ou para configurações que podem mudar entre ambientes.

O Qwen Code pode carregar automaticamente variáveis de ambiente de arquivos .env. Para variáveis relacionadas à autenticação (como OPENAI_*) e a abordagem recomendada de .qwen/.env, veja Autenticação.

Tip

Exclusão de Variáveis de Ambiente: Algumas variáveis de ambiente (como DEBUG e DEBUG_MODE) são automaticamente excluídas dos arquivos .env do projeto por padrão para evitar interferência no comportamento da CLI. Variáveis de arquivos .qwen/.env nunca são excluídas. Você pode personalizar esse comportamento usando a configuração advanced.excludedEnvVars no seu arquivo settings.json.

Tabela de Variáveis de Ambiente

VariávelDescriçãoNotas
GEMINI_TELEMETRY_ENABLEDDefina como true ou 1 para habilitar telemetria. Qualquer outro valor é tratado como desabilitando.Substitui a configuração telemetry.enabled.
GEMINI_TELEMETRY_TARGETDefine o destino da telemetria (local ou gcp).Substitui a configuração telemetry.target.
GEMINI_TELEMETRY_OTLP_ENDPOINTDefine o endpoint OTLP para telemetria.Substitui a configuração telemetry.otlpEndpoint.
GEMINI_TELEMETRY_OTLP_PROTOCOLDefine o protocolo OTLP (grpc ou http).Substitui a configuração telemetry.otlpProtocol.
GEMINI_TELEMETRY_LOG_PROMPTSDefina como true ou 1 para habilitar ou desabilitar o registro de prompts do usuário. Qualquer outro valor é tratado como desabilitando.Substitui a configuração telemetry.logPrompts.
GEMINI_TELEMETRY_OUTFILEDefine o caminho do arquivo para escrever telemetria quando o destino é local.Substitui a configuração telemetry.outfile.
GEMINI_TELEMETRY_USE_COLLECTORDefina como true ou 1 para habilitar ou desabilitar o uso de um coletor OTLP externo. Qualquer outro valor é tratado como desabilitando.Substitui a configuração telemetry.useCollector.
GEMINI_SANDBOXAlternativa para a configuração sandbox em settings.json.Aceita true, false, docker, podman ou uma string de comando personalizado.
SEATBELT_PROFILE(específico do macOS) Alterna o perfil Seatbelt (sandbox-exec) no macOS.permissive-open: (Padrão) Restringe gravações para a pasta do projeto (e algumas outras pastas, veja packages/cli/src/utils/sandbox-macos-permissive-open.sb) mas permite outras operações. strict: Usa um perfil estrito que nega operações por padrão. <profile_name>: Usa um perfil personalizado. Para definir um perfil personalizado, crie um arquivo chamado sandbox-macos-<profile_name>.sb no diretório .qwen/ do seu projeto (ex: my-project/.qwen/sandbox-macos-custom.sb).
DEBUG ou DEBUG_MODE(geralmente usado por bibliotecas subjacentes ou pelo próprio CLI) Defina como true ou 1 para habilitar registro de debug verboso, o que pode ser útil para solução de problemas.Nota: Essas variáveis são automaticamente excluídas dos arquivos .env do projeto por padrão para evitar interferência no comportamento do CLI. Use arquivos .qwen/.env se você precisar definir essas variáveis especificamente para o Qwen Code.
NO_COLORDefina como qualquer valor para desabilitar toda saída colorida no CLI.
CLI_TITLEDefina como uma string para personalizar o título do CLI.
CODE_ASSIST_ENDPOINTEspecifica o endpoint para o servidor de assistência de código.Isso é útil para desenvolvimento e testes.
TAVILY_API_KEYSua chave de API para o serviço de busca web Tavily.Usado para habilitar a funcionalidade da ferramenta web_search. Exemplo: export TAVILY_API_KEY="tvly-sua-chave-api-aqui"

Argumentos de Linha de Comando

Argumentos passados diretamente ao executar a CLI podem substituir outras configurações para aquela sessão específica.

Tabela de Argumentos de Linha de Comando

ArgumentoAliasDescriçãoValores PossíveisNotas
--model-mEspecifica o modelo Qwen a ser usado nesta sessão.Nome do modeloExemplo: npm start -- --model qwen3-coder-plus
--prompt-pUsado para passar um prompt diretamente para o comando. Isso invoca o Qwen Code em modo não interativo.Texto do seu promptPara exemplos de script, use a flag --output-format json para obter saída estruturada.
--prompt-interactive-iInicia uma sessão interativa com o prompt fornecido como entrada inicial.Texto do seu promptO prompt é processado dentro da sessão interativa, não antes dela. Não pode ser usado ao redirecionar entrada do stdin. Exemplo: qwen -i "explain this code"
--output-format-oEspecifica o formato da saída CLI para modo não interativo.text, json, stream-jsontext: (Padrão) A saída padrão legível por humanos. json: Uma saída JSON legível por máquina emitida ao final da execução. stream-json: Mensagens JSON em streaming emitidas conforme ocorrem durante a execução. Para saída estruturada e scripting, use a flag --output-format json ou --output-format stream-json. Veja Modo Headless para informações detalhadas.
--input-formatEspecifica o formato consumido da entrada padrão.text, stream-jsontext: (Padrão) Entrada de texto padrão do stdin ou argumentos de linha de comando. stream-json: Protocolo de mensagem JSON via stdin para comunicação bidirecional. Requisito: --input-format stream-json requer que --output-format stream-json seja definido. Ao usar stream-json, o stdin é reservado para mensagens de protocolo. Veja Modo Headless para informações detalhadas.
--include-partial-messagesInclui mensagens parciais do assistente ao usar formato de saída stream-json. Quando ativado, emite eventos de stream (message_start, content_block_delta, etc.) conforme ocorrem durante o streaming.Padrão: false. Requisito: Requer que --output-format stream-json seja definido. Veja Modo Headless para informações detalhadas sobre eventos de stream.
--sandbox-sAtiva o modo sandbox para esta sessão.
--sandbox-imageDefine o URI da imagem do sandbox.
--debug-dAtiva o modo debug para esta sessão, fornecendo saída mais verbosa.
--all-files-aSe definido, inclui recursivamente todos os arquivos dentro do diretório atual como contexto para o prompt.
--help-hExibe informações de ajuda sobre argumentos de linha de comando.
--show-memory-usageExibe o uso atual de memória.
--yoloAtiva o modo YOLO, que aprova automaticamente todas as chamadas de ferramentas.
--approval-modeDefine o modo de aprovação para chamadas de ferramentas.plan, default, auto-edit, yoloModos suportados: plan: Analisar apenas—não modificar arquivos ou executar comandos. default: Requer aprovação para edições de arquivos ou comandos shell (comportamento padrão). auto-edit: Aprova automaticamente ferramentas de edição (edit, write_file) enquanto solicita aprovação para outras. yolo: Aprova automaticamente todas as chamadas de ferramentas (equivalente a --yolo). Não pode ser usado junto com --yolo. Use --approval-mode=yolo em vez de --yolo para a nova abordagem unificada. Exemplo: qwen --approval-mode auto-edit
Veja mais sobre Modo de Aprovação.
--allowed-toolsUma lista separada por vírgulas de nomes de ferramentas que irão ignorar o diálogo de confirmação.Nomes de ferramentasExemplo: qwen --allowed-tools "Shell(git status)"
--telemetryAtiva telemetria.
--telemetry-targetDefine o destino da telemetria.Veja telemetria para mais informações.
--telemetry-otlp-endpointDefine o endpoint OTLP para telemetria.Veja telemetria para mais informações.
--telemetry-otlp-protocolDefine o protocolo OTLP para telemetria (grpc ou http).Padrão para grpc. Veja telemetria para mais informações.
--telemetry-log-promptsAtiva o registro de prompts para telemetria.Veja telemetria para mais informações.
--checkpointingAtiva checkpointing.
--experimental-acpAtiva o modo ACP (Protocolo de Controle de Agente). Útil para integrações com IDE/editor como Zed.Experimental.
--experimental-skillsAtiva Habilidades de Agente experimentais (registra a ferramenta skill e carrega Habilidades de .qwen/skills/ e ~/.qwen/skills/).Experimental.
--extensions-eEspecifica uma lista de extensões a serem usadas para a sessão.Nomes de extensõesSe não fornecido, todas as extensões disponíveis são usadas. Use o termo especial qwen -e none para desativar todas as extensões. Exemplo: qwen -e my-extension -e my-other-extension
--list-extensions-lLista todas as extensões disponíveis e sai.
--proxyDefine o proxy para o CLI.URL do proxyExemplo: --proxy http://localhost:7890.
--include-directoriesInclui diretórios adicionais no workspace para suporte multi-diretório.Caminhos de diretóriosPode ser especificado múltiplas vezes ou como valores separados por vírgula. Máximo de 5 diretórios podem ser adicionados. Exemplo: --include-directories /path/to/project1,/path/to/project2 ou --include-directories /path/to/project1 --include-directories /path/to/project2
--screen-readerAtiva o modo leitor de tela, que ajusta a TUI para melhor compatibilidade com leitores de tela.
--versionExibe a versão do CLI.
--openai-loggingAtiva o registro de chamadas da API OpenAI para debugging e análise.Esta flag substitui a configuração enableOpenAILogging em settings.json.
--openai-logging-dirDefine um caminho de diretório personalizado para logs da API OpenAI.Caminho de diretórioEsta flag substitui a configuração openAILoggingDir em settings.json. Suporta caminhos absolutos, caminhos relativos e expansão de ~. Exemplo: qwen --openai-logging-dir "~/qwen-logs" --openai-logging
--tavily-api-keyDefine a chave da API Tavily para funcionalidade de busca web para esta sessão.Chave da APIExemplo: qwen --tavily-api-key tvly-your-api-key-here

Arquivos de Contexto (Contexto Instrucional Hierárquico)

Embora não sejam estritamente uma configuração para o comportamento da CLI, os arquivos de contexto (cujo nome padrão é QWEN.md, mas pode ser configurado através da opção context.fileName) são cruciais para configurar o contexto instrucional (também chamado de “memória”). Este recurso poderoso permite que você forneça instruções específicas do projeto, guias de estilo de codificação ou qualquer informação relevante de fundo para a IA, tornando suas respostas mais adaptadas e precisas às suas necessidades. A CLI inclui elementos de interface, como um indicador no rodapé mostrando o número de arquivos de contexto carregados, para mantê-lo informado sobre o contexto ativo.

  • Propósito: Esses arquivos Markdown contêm instruções, diretrizes ou contexto que você deseja que o modelo Qwen tenha conhecimento durante suas interações. O sistema foi projetado para gerenciar esse contexto instrucional de forma hierárquica.

Exemplo de Conteúdo de Arquivo de Contexto (ex: QWEN.md)

Aqui está um exemplo conceitual do que um arquivo de contexto na raiz de um projeto TypeScript pode conter:

# Projeto: Minha Biblioteca TypeScript Incrível ## Instruções Gerais: - Ao gerar novo código TypeScript, siga o estilo de codificação existente. - Garanta que todas as novas funções e classes tenham comentários JSDoc. - Prefira paradigmas de programação funcional quando apropriado. - Todo código deve ser compatível com TypeScript 5.0 e Node.js 20+. ## Estilo de Codificação: - Use 2 espaços para indentação. - Nomes de interfaces devem ter o prefixo `I` (ex: `IUserService`). - Membros privados de classes devem ter o prefixo sublinhado (`_`). - Sempre use igualdade estrita (`===` e `!==`). ## Componente Específico: `src/api/client.ts` - Este arquivo lida com todas as requisições de API de saída. - Ao adicionar novas funções de chamada de API, garanta que elas incluam tratamento robusto de erros e logging. - Use o utilitário existente `fetchWithRetry` para todas as requisições GET.

Sobre Dependências:

  • Evite introduzir novas dependências externas a menos que sejam absolutamente necessárias.
  • Se uma nova dependência for necessária, por favor justifique o motivo.
Este exemplo demonstra como você pode fornecer contexto geral do projeto, convenções específicas de codificação e até notas sobre arquivos ou componentes particulares. Quanto mais relevantes e precisos forem seus arquivos de contexto, melhor a IA poderá ajudá-lo. Arquivos de contexto específicos do projeto são altamente encorajados para estabelecer convenções e contexto. - **Carregamento Hierárquico e Precedência:** A CLI implementa um sofisticado sistema de memória hierárquico ao carregar arquivos de contexto (ex: `QWEN.md`) de diversos locais. Conteúdo de arquivos mais abaixo nesta lista (mais específicos) normalmente substitui ou complementa conteúdo de arquivos acima (mais gerais). A ordem exata de concatenação e o contexto final podem ser inspecionados usando o comando `/memory show`. A ordem típica de carregamento é: 1. **Arquivo de Contexto Global:** - Localização: `~/.qwen/<nome-do-arquivo-de-contexto-configurado>` (ex: `~/.qwen/QWEN.md` no seu diretório home de usuário). - Escopo: Fornece instruções padrão para todos os seus projetos. 2. **Arquivos de Contexto da Raiz do Projeto & Ancestrais:** - Localização: A CLI procura pelo arquivo de contexto configurado no diretório de trabalho atual e então em cada diretório pai até o root do projeto (identificado por uma pasta `.git`) ou seu diretório home. - Escopo: Fornece contexto relevante para todo o projeto ou uma parte significativa dele. 3. **Arquivos de Contexto de Subdiretórios (Contextual/Local):** - Localização: A CLI também varre por arquivos de contexto configurados em subdiretórios _abaixo_ do diretório de trabalho atual (respeitando padrões comuns de ignoração como `node_modules`, `.git`, etc.). A amplitude desta busca é limitada a 200 diretórios por padrão, mas pode ser configurada com a opção `context.discoveryMaxDirs` no seu arquivo `settings.json`. - Escopo: Permite instruções altamente específicas relevantes a um componente particular, módulo ou subseção do seu projeto. - **Concatenação & Indicação na UI:** O conteúdo de todos os arquivos de contexto encontrados é concatenado (com separadores indicando sua origem e caminho) e fornecido como parte do prompt do sistema. O rodapé da CLI exibe a contagem de arquivos de contexto carregados, fornecendo uma dica visual rápida sobre o contexto instrucional ativo. - **Importando Conteúdo:** Você pode modularizar seus arquivos de contexto importando outros arquivos Markdown usando a sintaxe `@caminho/para/arquivo.md`. Para mais detalhes, veja a [documentação do Processador de Importação de Memória](../configuration/memory). - **Comandos para Gerenciamento de Memória:** - Use `/memory refresh` para forçar uma nova varredura e recarregamento de todos os arquivos de contexto de todos os locais configurados. Isso atualiza o contexto instrucional da IA. - Use `/memory show` para exibir o contexto instrucional combinado atualmente carregado, permitindo que você verifique a hierarquia e conteúdo sendo usado pela IA. - Veja a [documentação de Comandos](../features/commands) para detalhes completos sobre o comando `/memory` e seus sub-comandos (`show` e `refresh`). Ao entender e utilizar essas camadas de configuração e a natureza hierárquica dos arquivos de contexto, você pode gerenciar efetivamente a memória da IA e adaptar as respostas do Qwen Code às suas necessidades e projetos específicos. ## Sandbox O Qwen Code pode executar operações potencialmente inseguras (como comandos de shell e modificações de arquivos) dentro de um ambiente sandbox para proteger seu sistema. O [Sandbox](../features/sandbox) está desabilitado por padrão, mas você pode habilitá-lo de algumas formas: - Usando a flag `--sandbox` ou `-s`. - Configurando a variável de ambiente `GEMINI_SANDBOX`. - O sandbox é habilitado por padrão ao usar `--yolo` ou `--approval-mode=yolo`. Por padrão, ele usa uma imagem Docker predefinida `qwen-code-sandbox`. Para necessidades específicas de sandbox por projeto, você pode criar um Dockerfile personalizado em `.qwen/sandbox.Dockerfile` no diretório raiz do seu projeto. Este Dockerfile pode ser baseado na imagem base do sandbox:

FROM qwen-code-sandbox

Adicione suas dependências ou configurações personalizadas aqui

Por exemplo:

RUN apt-get update && apt-get install -y some-package

# COPY ./my-config /app/my-config

Quando .qwen/sandbox.Dockerfile existe, você pode usar a variável de ambiente BUILD_SANDBOX ao executar o Qwen Code para construir automaticamente a imagem personalizada do sandbox:

BUILD_SANDBOX=1 qwen -s

Estatísticas de Uso

Para nos ajudar a melhorar o Qwen Code, coletamos estatísticas de uso anônimas. Esses dados nos ajudam a entender como a CLI é usada, identificar problemas comuns e priorizar novos recursos.

O que coletamos:

  • Chamadas de Ferramentas: Registramos os nomes das ferramentas que são chamadas, se elas têm sucesso ou falham e quanto tempo levam para ser executadas. Não coletamos os argumentos passados para as ferramentas nem quaisquer dados retornados por elas.
  • Solicitações de API: Registramos o modelo usado para cada solicitação, a duração da solicitação e se foi bem-sucedida. Não coletamos o conteúdo dos prompts ou respostas.
  • Informações de Sessão: Coletamos informações sobre a configuração da CLI, como as ferramentas habilitadas e o modo de aprovação.

O que NÃO coletamos:

  • Informações Pessoalmente Identificáveis (PII): Não coletamos nenhuma informação pessoal, como seu nome, endereço de e-mail ou chaves de API.
  • Conteúdo de Prompts e Respostas: Não registramos o conteúdo dos seus prompts ou as respostas do modelo.
  • Conteúdo de Arquivos: Não registramos o conteúdo de quaisquer arquivos lidos ou escritos pela CLI.

Como desativar:

Você pode desativar a coleta de estatísticas de uso a qualquer momento definindo a propriedade usageStatisticsEnabled como false na categoria privacy do seu arquivo settings.json:

{ "privacy": { "usageStatisticsEnabled": false } }
Note

Quando as estatísticas de uso estão habilitadas, os eventos são enviados para um endpoint de coleta RUM da Alibaba Cloud.

Last updated on