Repository navigation
O Codis integra um painel de chat com IA diretamente na sidebar. Suporta múltiplos provedores, streaming de respostas, ferramentas de contexto e skills personalizáveis.
-
Activity Bar → ícone
[IA] - Menu Exibir → "Assistente IA"
Ctrl+Shift+A
| Provedor | Tipo | Requer Chave |
|---|---|---|
| Anthropic (Claude) | API Anthropic | Sim |
| OpenAI (ChatGPT) | API OpenAI | Sim |
| Google Gemini | API Gemini | Sim |
| OpenAI Compatible | Qualquer /v1/chat/completions
|
Opcional |
| Ollama | HTTP local (localhost:11434) |
Não |
| LocalLib |
llama-cpp-python direto |
Não |
O provedor OpenAI Compatible funciona com: LM Studio, Jan, Groq, Together AI, OpenRouter, Perplexity, e qualquer servidor compatível com a API OpenAI.
- No painel de IA, clique no ícone de configuração (⚙) ao lado do seletor de provedor.
- Insira a chave de API, modelo e URL base (quando aplicável).
- Clique em Testar para verificar a conectividade.
As configurações de cada provedor são salvas em config.json.
O assistente pode receber contexto automático do editor ativo. Selecione o tipo de contexto no seletor:
| Opção | Descrição |
|---|---|
| Nenhum | Sem contexto de código |
| Arquivo | Conteúdo completo do arquivo ativo |
| Seleção | Apenas o texto selecionado no editor |
| Manual | Você escreve o contexto manualmente |
Além do que é selecionado manualmente, o ContextBuilder (src/ia/context_builder.py) monta automaticamente um bloco de contexto bem mais rico, injetado no system prompt antes de cada requisição - toda a coleta é projetada para falhar silenciosamente caso alguma informação não esteja disponível, sem nunca travar o envio da mensagem:
Nível de projeto:
nome, caminho e tipo de projeto (detectado por arquivos de configuração como pyproject.toml, package.json etc.), linguagens predominantes com contagem de arquivos, árvore de arquivos relevante (filtrada e limitada em tamanho), branch e último commit Git, status de arquivos modificados, dependências declaradas e um resumo das primeiras linhas do README.
Nível de arquivo ativo: caminho relativo, linguagem, imports/includes do arquivo (para entender suas dependências internas), e o conteúdo da janela ao redor do cursor.
Com esse contexto automático, o modelo normalmente não precisa perguntar em qual workspace está, qual arquivo foi aberto, qual linguagem é usada ou como o projeto se estrutura - ele já recebe isso de forma implícita em cada requisição.
Skills são prompts pré-configurados que fornecem instruções especializadas ao modelo antes da mensagem do usuário. O seletor de skills fica na barra de ferramentas do painel de IA.
| Skill | Finalidade |
|---|---|
ask |
Pergunta geral de programação |
generate |
Gerar novo código |
explain |
Explicar código selecionado |
fix |
Corrigir bugs identificados |
refactor |
Refatorar código |
review |
Revisão de código (code review) |
document |
Gerar documentação (docstrings, JSDoc) |
tests |
Gerar testes unitários |
optimize |
Otimizar performance |
translate |
Traduzir código entre linguagens |
commit |
Gerar mensagem de commit |
security |
Análise de segurança |
sql |
Auxiliar com queries SQL |
regex |
Construir/explicar expressões regulares |
architecture |
Discussão de arquitetura de software |
Crie skills próprias em ~/.codis/skills/:
---
name: minha-skill
description: Descrição da skill
i18n_key: ia.skill_minha_skill
prompt_prefix: "Você é um especialista em..."
---
Instruções detalhadas para o modelo...Skills do usuário aparecem no seletor após as skills padrão.
O painel de IA usa function calling para que o modelo possa agir sobre o workspace automaticamente, em vez de depender só de texto colado pelo usuário. As ferramentas são executadas via ToolExecutor (src/ia/toolbox.py) em thread separada, e são organizadas em níveis de risco - o Approval Gate define cinco (SAFE, LOW, MEDIUM, HIGH e CRITICAL) e as ferramentas atuais usam SAFE, MEDIUM, HIGH e CRITICAL; cada nível tem um tratamento diferente pelo Approval Gate, descrito na próxima seção.
read_file, read_active_file, get_cursor_context, list_files, search_in_files, find_definition, get_project_summary, read_diagnostics, read_symbols, read_git_diff, read_git_log, find_references, preview_rename, workspace_symbols, get_env_info, check_dependency, diff_files, read_file_tree, get_clipboard.
write_file, apply_edit, insert_after_line, format_code, patch_files.
run_command, run_script, run_tests, create_directory, delete_file, move_file, copy_file, init_project, install_dependency, git_commit, git_stage, git_branch, open_terminal_tab.
delete_directory, git_reset, git_clean.
No total, são 40 ferramentas disponíveis ao agente, cobrindo leitura de contexto, edição, execução de comandos, integração Git, inicialização de projetos e instalação de dependências - um nível de capacidade comparável a assistentes como Cursor ou Zed Agent.
O Approval Gate (src/ia/approval_gate.py) pausa a execução da IA e exige confirmação explícita do usuário antes de qualquer ação com efeitos colaterais. Ele é o que torna seguro deixar a IA operar com 40 ferramentas, incluindo exclusão de arquivos e comandos shell.
| Categoria de risco | Exemplos de ferramenta | Comportamento |
|---|---|---|
| SAFE | Leitura, busca, análise | Executa imediatamente, sem interromper o fluxo |
| LOW | Análises pesadas | Confirmação opcional, configurável pelo usuário |
| MEDIUM | Escrita de arquivo, formatação | Pede aprovação antes de aplicar |
| HIGH | Comandos shell, criar/deletar arquivos, operações Git | Bloqueia a execução e aguarda decisão do usuário |
| CRITICAL | Delete recursivo, git reset --hard
|
Alerta vermelho - exige confirmação extra, mesmo tendo aprovado HIGH anteriormente |
Quando uma ação cai em MEDIUM ou acima, o painel de IA exibe um card de aprovação descrevendo exatamente o que será feito (arquivo afetado, comando exato, diff da escrita) antes de qualquer execução real. O usuário pode aprovar, rejeitar, ou - no Modo Agente (tarefas multi-passo autônomas) - configurar um nível de confiança que aprova automaticamente certas categorias por sessão.
As respostas do modelo são exibidas em streaming - o texto aparece progressivamente enquanto o modelo gera a resposta. Um indicador de carregamento animado é exibido durante a geração.
Para cancelar uma resposta em andamento, clique no botão ✕ Cancelar.
Quando a resposta do modelo contém blocos de código (```linguagem ... ```), o Codis extrai esses blocos automaticamente.
Dois botões aparecem após a resposta:
- 📋 Copiar - copia o código para o clipboard.
-
⤵ Inserir no Editor - abre um diálogo de diff (
DialDiff) mostrando as diferenças entre o código atual e o código sugerido pela IA. Você pode aceitar, rejeitar ou editar antes de aplicar.
Cada sessão mantém um histórico de mensagens que é enviado ao modelo a cada turno (contexto acumulado). O histórico é mantido em memória durante a sessão e não é persistido entre reinicializações.
Para iniciar uma nova conversa do zero, clique em 🗑 Limpar Histórico.
Clique no botão ⚙ Configurar ao lado do seletor de provedor para abrir um painel inline de configuração. Os campos disponíveis variam por provedor:
- Anthropic / OpenAI / Gemini: chave de API + modelo
- OpenAI Compatible: chave de API (opcional) + URL base + modelo
-
Ollama: URL base (padrão:
http://localhost:11434) + modelo - LocalLib: caminho do modelo GGUF + parâmetros de inferência
O assistente de IA usa um prompt de sistema padrão otimizado para programação:
- Responde no mesmo idioma que o usuário escreve.
- Usa sempre blocos de código com a linguagem correta.
- Utiliza o contexto automático fornecido sem pedir informações repetidas.
- Usa as ferramentas proativamente quando o contexto é insuficiente.
O prompt de sistema padrão pode ser customizado via configuração avançada (campo sistema em config.json, lido por todos os 6 provedores em src/ia/providers.py).
O painel de IA é carregado de forma condicional: se a importação de src.ia.iaspace falhar por qualquer motivo (dependências ausentes, erro de importação), o Codis inicia normalmente sem o painel, registrando apenas um aviso no log. Nenhuma funcionalidade do editor é afetada.
Começando
Editando
- Editor
- Inteligência do Editor
- KDocs
- Linting & LSP
- Debug
- Git
- Terminal
- Workspace & Produtividade
- Utilitários de Desenvolvimento
Assistente e conectividade
Ferramentas e extras
- Recursos Avançados
- Recursos Exclusivos
- K-UI
- Sistema & Performance
- Backups, Lixeira & Arquivos
- Painel de Saída
- Acessibilidade
- Editor de Imagens (Paint)
- Utilitários Pessoais
- Incorporar Programas e Preview Web
- DOOM Embutido
Para quem desenvolve
Projeto