VS Code — Configurar com GarraIA (OpenAI-compatible)
Extensão recomendada: Continue.dev
Continue é a extensão mais completa que suporta baseUrl customizado + apiKey customizado, essencial para conectar ao GarraIA local.
Pré-requisito: GarraIA rodando
Certifique-se de que o servidor está no ar:
cargo run -p garraia-gateway
# ou via Docker:
docker compose up
Por padrão ele escuta em http://localhost:3888.
Instalação
- Abra o VS Code
- Instale a extensão Continue (ID:
Continue.continue) - Clique no ícone do Continue na barra lateral → "Open Config" (ou edite
~/.continue/config.json) - Substitua o conteúdo pelo arquivo
continue-config.jsondeste diretório, ajustando:apiKey: preencha com o valor deGARRAIA_API_KEYdo seu.env(ou deixe vazio se sem autenticação)model: o nome do modelo é passado ao gateway e pode acionar um provider específico via prefixo (ex:openrouter/anthropic/claude-3.5-sonnet,anthropic/claude-sonnet-4-6)apiBase:http://localhost:3888para local, ouhttps://seu-domínio.comem produção
Exemplo de config.json
{
"models": [
{
"title": "GarraIA",
"provider": "openai",
"model": "gpt-4o",
"apiBase": "http://localhost:3888",
"apiKey": ""
}
],
"allowAnonymousTelemetry": false
}
Como a sessão funciona
- Cada conversa no Continue gera um
session_idbaseado nouserfield (ou UUID aleatório) - O histórico é persistido no SQLite do GarraIA (via GAR-204)
- A mesma sessão continua se você reabrir o VS Code — o backend usa o DB como fonte de verdade
Alternativas ao Continue
| Extensão | Suporte a baseUrl custom | Observação |
|---|---|---|
| Continue | ✅ | Recomendado |
| CodeGPT | ✅ | Interface mais simples |
| Aider (via terminal) | ✅ | aider --openai-api-base http://localhost:3888 |
| GitHub Copilot | ❌ | Não aceita provider customizado |
Verificação
Para confirmar que o gateway está respondendo:
curl http://localhost:3888/v1/models
# JSON com os modelos que o gateway de fato serve: o modelo configurado de
# cada provider registrado, no formato OpenAI (`data[].id`); `owned_by` e o
# id do provider no GarraIA (ex.: "openrouter", "ollama"). Desde o #1029 a
# lista sai da config — antes era fixa e prometia modelos que davam 500.
Use um id dessa lista no campo model (ou omita o campo, que cai no
provider default):
curl -X POST http://localhost:3888/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"z-ai/glm-5.3-flash","messages":[{"role":"user","content":"Olá!"}],"stream":false}'