Configuração
Ajustes do VS Code
Configure o Cortex nas Configurações do VS Code (pesquise “Cortex”). Os ajustes ficam no namespace cortex.* — não são um config.json do projeto.
| Ajuste | Padrão | Descrição |
|---|---|---|
cortex.opencodeBinary | "opencode" | Caminho para o binário da CLI OpenCode |
cortex.opencodePort | 4096 | Porta preferida para opencode serve; se outro workspace a usar, o Cortex escolhe a próxima livre |
cortex.agent | "build" | Agente primário OpenCode padrão (ex.: build, plan) |
cortex.providerID | "opencode" | Espelho offline obsoleto — o modelo predefinido é `model` em opencode.json |
cortex.modelID | "big-pickle" | Espelho offline obsoleto — preferir config OpenCode / seletor do chat |
cortex.modelMode | "auto" | Seleção de modelo: auto / turbo / manual |
cortex.routing.useAllConnectedProviders | false | Se true, Auto/Turbo pode usar qualquer provedor conectado; se false, só o do modelo predefinido OpenCode |
cortex.models.optimizeFor | "balance" | Roteamento Auto custo vs qualidade: cost / balance / intelligence |
cortex.models.zenBillingEnabled | false | Desbloqueia modelos Zen pagos no seletor (off por padrão — sem cobranças surpresa) |
cortex.models.byokEnabled | false | Desbloqueia modelos BYOK (OpenAI, Anthropic, etc.) |
cortex.context.topK | 8 | Número de chunks de contexto local injetados por prompt |
cortex.context.maxChars | 16000 | Máximo de caracteres de contexto recuperado por prompt |
cortex.context.embedWeight | 0.45 | Peso (0–1) da similaridade de embeddings vs match lexical ao rankear contexto |
cortex.context.embeddings | "hash" | Modo de retrieval: hash = Desempenho (rápido, offline); minilm = Qualidade (MiniLM semântico). Qualidade descarrega um runtime nativo uma vez em ~/.cache/cortex-minilm (não vai no VSIX); o envio fica bloqueado até estar pronto (normalmente ≤~30s no primeiro índice); vetores em .cortex/index; arranques seguintes só aquecem o modelo; edits re-embebem só ficheiros alterados. Onboarding/chat mostram aptidão de hardware (Qualidade +~150 MB; concorrência limitada em PCs justos) |
cortex.context.chunkMode | "symbols" | Modo de divisão do índice: symbols (LSP) ou lines |
cortex.context.include | [] | Globs de inclusão opcionais (relativos ao workspace). Vazio = todos indexáveis |
cortex.context.exclude | [] | Globs de exclusão extras além do gitignore |
cortex.context.extensionPriority | {".ts":1,".tsx":1,".js":0.8,".jsx":0.8,".py":0.9} | Multiplicadores de score por extensão para o ranking de retrieval (maior = preferido) |
cortex.autocomplete.enabled | true | Autocomplete ghost via um agente OpenCode rápido sem tools |
cortex.autocomplete.debounceMs | 350 | Debounce (ms) antes de pedir uma sugestão de autocomplete após pausar a digitação |
cortex.locale | "en" | Idioma da UI do Cortex (independente do idioma do VS Code) |
cortex.chat.pinEditorTab | true | Fixa a aba de chat do Cortex e mantém-na em primeiro no grupo |
cortex.chat.maxOpenTabs | 5 | Máx. abas de chat abertas e restauradas na inicialização (0 = ilimitado) |
cortex.chat.maxHistorySessions | 100 | Máx. chats no Histórico (mais recentes primeiro; 0 = todos) |
cortex.ui.showHeaderVersion | true | Mostrar a versão (suave) ao lado do título Cortex (desative em demos) |
cortex.ui.showReasoningSummaries | true | Mostrar blocos de thinking / resumo de reasoning na timeline do chat |
cortex.ui.shellToolPartsExpanded | true | Expandir por padrão os blocos de saída shell/bash na timeline |
cortex.ui.editToolPartsExpanded | true | Expandir por padrão os cards de edit/write/patch na timeline |
cortex.permissions.autoAccept | false | Aceitar automaticamente os prompts de permissão do OpenCode com um allow pontual |
cortex.appearance.uiFont | "" | Família CSS opcional para a UI do chat; vazio usa a fonte de UI do VS Code |
cortex.appearance.codeFont | "" | Família CSS opcional para monoespaçado / código no chat; vazio usa a fonte do editor |
cortex.notifications.agent | false | Mostrar uma notificação do VS Code quando o agente termina um turno |
cortex.notifications.permissions | false | Mostrar uma notificação do VS Code quando aparece um prompt de permissão |
cortex.notifications.errors | true | Mostrar uma notificação do VS Code em erros de chat |
cortex.sounds.agent | "none" | Som quando o agente termina um turno (none ou um preset Web Audio) |
cortex.sounds.permissions | "none" | Som quando aparece um prompt de permissão |
cortex.sounds.errors | "none" | Som em erros de chat |
cortex.theme.id | "follow" | Tema de cor do chat: follow (tui.json do OpenCode), cortex, ou um id de tema Desktop OpenCode (catálogo GitHub + cache) |
cortex.theme.mode | "system" | Variante clara/escura dos temas OpenCode; system segue o color theme do VS Code |
cortex.theme.remoteRef | "dev" | Git ref em anomalyco/opencode para listar os temas Desktop oficiais |
cortex.policy.t0MaxChars | 2000 | Máximo de caracteres do Tier T0 (segurança imutável / neverDo / hooks) |
cortex.policy.t1MaxChars | 12000 | Máximo de caracteres do Tier T1 (regras always-apply, AGENTS.md, user rules) |
cortex.policy.t2MaxChars | 8000 | Máximo de caracteres do Tier T2 (regras por glob, skills, catálogo requestable) |
cortex.policy.includeCursorRules | true | Carregar .cursor/rules no Policy Brain |
cortex.policy.includeCortexRules | true | Carregar .cortex/rules no Policy Brain |
cortex.skills.autoInvoke | true | Injetar automaticamente corpos SKILL.md que correspondam ao turn |
cortex.skills.topK | 2 | Máx. skills injetadas por completo por turn quando auto-invoke está ativo |
cortex.hooks.enabled | true | Executar .cortex/hooks.json e o changelog gate integrado |
cortex.hooks.strict | false | Se true, um hook prePrompt com falha nega o turn |
Atalhos de teclado
Atalhos do VS Code (não OpenCode Desktop). Personalize em Atalhos de Teclado:
| Atalho | Ação |
|---|---|
Ctrl/Cmd+Alt+C | Abrir chat (painel de editor à direita) |
Ctrl+Alt+I / Cmd+Alt+Shift+I | Inline Edit |
Ctrl/Cmd+Alt+\ | Disparar autocomplete ghost |
Ctrl/Cmd+Alt+T | Enviar seleção do terminal para o chat |
Paleta de comandos
Todos os comandos do Cortex estão na Paleta de comandos do VS Code (Ctrl/Cmd+Shift+P). Pesquise “Cortex”:
| Comando | Descrição |
|---|---|
Cortex: Open Session | Abrir o painel de chat (grupo de editor à direita) |
Cortex: New Session | Iniciar uma nova sessão de chat |
Cortex: Stop Generation | Abortar o turno atual do agente |
Cortex: Send Terminal Selection to Session | Enviar o texto selecionado do terminal para o chat |
Cortex: Reindex Workspace | Reconstruir o índice local do codebase |
Cortex: Trigger Inline Completion | Pedir agora uma sugestão ghost-text |
Cortex: Inline Edit (Ctrl+Alt+I) | Edição inline da seleção / ficheiro atual |
Cortex: Connect | Abrir Providers para ligar contas OpenCode |
Cortex: Connect / Models | Abrir Models (modelo predefinido, visibilidade, favoritos) |
Cortex: Remember preference | Guardar uma preferência na memória do Policy Brain |
Cortex: Open rules / memory | Abrir regras e ficheiros de memória |
Cortex: Edit user rules | Editar regras de utilizador |
Cortex: Show Policy Inspector | Inspecionar os tiers ativos do Policy Brain neste turno |
Cortex: Run Diagnostics | Executar diagnósticos de conectividade e setup |
Cortex: Show Log | Abrir o canal de saída do Cortex |
Cortex: Dump last retrieval | Escrever o dump do último retrieval de contexto para diagnóstico |
Cortex: Report Issue / Feedback | Abrir o fluxo de feedback / reporte de issues |
Modelos via OpenCode
O Cortex usa o OpenCode como provedor agentic. Você escolhe entre os modelos disponíveis na sua assinatura OpenCode (Zen free, Zen pago ou OpenCode Go). A cobrança do OpenCode é gerenciada fora do Cortex e não tem relação com a licença do Cortex.
- Servers — Em Settings → Servers gere a ligação OpenCode local e servidores HTTP remotos (health, adicionar/editar/apagar, default/ativo) — a mesma ideia do OpenCode Desktop.
- Providers — Abra Providers (Cortex: Connect) para ligar Zen, Go, Anthropic, Copilot, endpoints custom OpenAI-compatible e mais — catálogo no estilo OpenCode Desktop. A autenticação continua no auth.json local do OpenCode.
- OpenCode Go — Depois de assinar o Go em opencode.ai, o Cortex detecta no boot / Recheck e muda (reutiliza a API key). Também pode Ativar OpenCode Go em Models.
- Zen pago / BYOK — Zen free continua desbloqueado. Zen pago e BYOK precisam de opt-in em Models (ou cortex.models.zenBillingEnabled / cortex.models.byokEnabled).
- Seletor de modelo — Escolha qualquer modelo disponível nos provedores OpenCode conectados. Auto/Turbo respeitam cortex.models.optimizeFor (cost / balance / intelligence). Se o catálogo expuser, escolha uma variante (Default / Low / Medium / High).
- Temas — Os temas do chat seguem o OpenCode Desktop: catálogo oficial do GitHub (cache), temas custom em ~/.config/opencode/themes, ou follow tui.json. Configure cortex.theme.id / mode / remoteRef ou escolha o tema em Models.
- Notificações e sons — Notificações opcionais do VS Code e presets Web Audio quando o agente termina, aparece uma permissão ou há um erro (cortex.notifications.* / cortex.sounds.*). permissions.autoAccept espelha o auto-accept do Desktop.
- Composer + — O menu + do composer (paridade OpenCode Desktop): imagens e ficheiros (Ctrl/Cmd+U), Commands (/), Context (@), Shell (!). Os anexos são filtrados pelas modalidades de entrada do modelo ativo.
- Padrões — O modelo predefinido vive em opencode.json (`model`). cortex.modelMode (Auto/Turbo/Manual) no VS Code; visibilidade/favoritos em Models
- Sem pasta aberta — Pode conversar numa janela vazia; o Cortex usa o diretório home como cwd do OpenCode. Abra uma pasta de projeto para indexar o código e os planos do projeto.
As keys ficam no armazenamento local do OpenCode (~/.local/share/opencode/auth.json; no Windows: %USERPROFILE%\.local\share\opencode\auth.json). O Cortex lê e escreve aí — não duplica credenciais. O OpenCode também pode usar ~/.config/opencode/opencode.json para permissões de agente; isso é separado dos ajustes do Cortex no VS Code.
Fontes de contexto
O Cortex coleta contexto automaticamente de:
- Policy Brain (T0–T2) — regras em camadas: user rules, AGENTS.md, .cursor/rules, .cortex/rules, skills, neverDo — também Paleta: Remember preference, Open rules / memory, Edit user rules, Show Policy Inspector
- Arquivo ativo — o arquivo que você está editando (anexado a cada turno)
- Seleção — texto destacado
- Busca léxica — correspondência por palavras-chave no projeto
- Embeddings — Desempenho (hash) por padrão; Qualidade (MiniLM) na barra do chat — o envio desbloqueia quando o modelo local está pronto (sem fallback silencioso para Desempenho durante a carga)
- Memory — facts, preferências e neverDo em .cortex/memory.json
- @ mentions — arquivos, pastas, terminais e agentes pelo chat (também via composer + → Context)
- Hooks — .cortex/hooks.json prePrompt/postTurn e changelog gate embutido