AI Agent — Extensão VS Code
Agente de programação para VS Code, com chat integrado, execução de ferramentas
(arquivos, terminal, git) e suporte a múltiplos modelos via OpenRouter.
Interface e implementação originais — inspiradas no fluxo de uso de extensões
como Cline, Roo Code e OpenCode, mas sem reaproveitar código, textos ou ícones
de nenhuma delas.
Estrutura
src/ → extensão VS Code (registro de views, comandos)
extension.ts
chatViewProvider.ts → ponte entre webview <-> agente
webview/ → interface (React + Vite + Tailwind)
src/components/
agent/ → núcleo do agente, independente do VS Code
core/agent.ts → orquestra prompt, streaming e loop de ferramentas
core/context.ts → contexto automático do projeto
providers/openrouter.ts
tools/ → read_file, write_file, run_terminal, git_*, etc.
executor/ → executa ferramentas chamadas pelo modelo
planner/ → extrai o plano de execução da resposta
memory/ → histórico e resumo do projeto em SQLite
shared/types.ts → tipos e protocolo de mensagens webview <-> extensão
Interface
Visual escuro, minimalista e "voltado ao agente" — inspirado no estilo de
Antigravity/OpenCode: barra de título compacta com badge do modelo atual e
indicador de modo (Plan/Build), bolhas de mensagem com blocos de código
destacados, e um card por ferramenta chamada (com status, aprovação e saída).
Comandos de barra (/)
Digite / no campo de mensagem para ver sugestões. Comandos disponíveis:
/models — abre um seletor com todos os modelos disponíveis na
OpenRouter (busca em tempo real por nome/id, contexto e preço por
1M de tokens). Basta digitar /models (com ou sem termo de busca depois,
ex.: /models claude) que o seletor abre automaticamente. Também dá para
abrir clicando no badge do modelo no cabeçalho.
/mode — alterna entre o modo Plan (somente leitura/pesquisa) e
Build (acesso completo a arquivos, terminal e git).
/clear — inicia uma nova conversa.
A lista de modelos é buscada do endpoint público
GET https://openrouter.ai/api/v1/models e fica em cache por 10 minutos no
lado da extensão.
Como funciona o protocolo do modelo
O modelo recebe um prompt de sistema com a lista de ferramentas disponíveis e é
instruído a:
- Abrir tarefas complexas com um bloco de plano:
```plan
- Ler projeto
- Criar autenticação
```
- Chamar ferramentas emitindo blocos:
```tool
{ "name": "read_file", "args": { "path": "package.json" } }
```
A extensão intercepta esses blocos, executa a ferramenta (pedindo aprovação
quando sensível — escrita, terminal, git, exclusão), devolve o resultado ao
modelo e repete o ciclo até a resposta final, num loop com limite de 8
iterações por turno.
Rodando em desenvolvimento
npm install
npm run compile # compila extensão + build da webview
No VS Code, abra esta pasta e pressione F5 (usa .vscode/launch.json)
para abrir uma nova janela com a extensão carregada.
Configure sua chave do OpenRouter pelo painel de configurações da extensão
(ícone ⚙ na sidebar) ou em Configurações > AI Agent.
Empacotando
npm install -g @vscode/vsce
npm run package # gera .vsix
Próximos passos sugeridos
- Streaming incremental de blocos
tool/plan (hoje são extraídos só ao final da resposta)
- Suporte a MCP como fonte adicional de ferramentas
- Segundo e terceiro agentes (Arquiteto → Executor → Revisor) orquestrando o mesmo core
- Diff visual real (hoje
show_diff retorna texto simples) usando a API nativa de diff do VS Code
- Testes automatizados para
agent/tools e agent/executor