@verboo/opencode-auth
v0.1.3
Published
Verboo OAuth authentication plugin for OpenCode
Maintainers
Readme
@verboo/opencode-auth
Plugin de autenticação OAuth para o opencode que permite logar com sua conta Verboo e usar os modelos servidos pelo router do Verboo dentro do opencode (CLI e TUI).
Pré-requisitos
- opencode instalado (1.4+). Se ainda não tem:
curl -fsSL https://opencode.ai/install | bash - Uma conta no code.verboo.ai
Tutorial passo a passo
1. Setup + login (um comando)
npx @verboo/opencode-authO comando:
- Adiciona
@verboo/opencode-authao seu~/.config/opencode/opencode.json(preserva o resto da config; idempotente) - Roda
opencode auth loginautomaticamente
Você só interage com o passo do navegador:
- Digita
verboono buscador → Verboo (plugin) →Enter - Escolhe Login with Verboo (browser)
- Navegador abre em
code.verboo.ai/oauth/authorize→ autoriza - Volta pro terminal: "Logged in to verboo"
Quer fazer só o setup sem login (pra automação)?
npx @verboo/opencode-auth --no-login1.b Setup manual (se preferir)
Edita ~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@verboo/opencode-auth"]
}Depois opencode auth login e segue o fluxo de browser.
2. Verifica
opencode auth list
# deve mostrar: ● verboo oauth3. Lista os modelos disponíveis
opencode models verbooMostra todos os modelos que sua conta tem acesso no router. Por exemplo:
verboo/verboo/gemma-4-31b
verboo/verboo/qwen3.6-27b
verboo/verboo/qwen3.6-a35b
verboo/verboo/minimax-m2.7
verboo/early-adopters/qwen3.6-27bA lista é puxada dinamicamente de
code.verboo.ai/router/v1/modelsna hora do start. Se o admin adicionar modelos novos pro seu tenant, reinicia o opencode pra ver.
4. Usa
Modo TUI (interativo):
opencodeDentro da TUI:
/model→ seleciona umverboo/...- Manda uma mensagem
Modo one-shot (terminal):
opencode run -m verboo/verboo/gemma-4-31b "explica essa função em 3 linhas: $(cat util.js)"Definir como modelo padrão: adiciona ao seu opencode.json:
{
"model": "verboo/verboo/gemma-4-31b",
"plugin": ["@verboo/opencode-auth"]
}5. Logout
opencode auth logout
# escolhe verbooRemove as credenciais de ~/.local/share/opencode/auth.json. Pra logar de novo, repete o passo 2.
Como funciona
- OAuth 2.1 Authorization Code com PKCE (S256): o plugin sobe um servidor HTTP em
http://localhost:11451/callback, abre o navegador emcode.verboo.ai/oauth/authorizee captura o código de autorização sem precisar copiar/colar. - Token storage: o
access_token+refresh_tokenficam em~/.local/share/opencode/auth.jsoncom permissão0600. - Refresh automático: quando o
expirespassa, o plugin troca orefresh_tokenpor um novoaccess_tokenantes da próxima request — sem ação do usuário. - Roteamento de chamadas: o opencode usa o AI SDK
@ai-sdk/openai-compatibleapontando prahttps://code.verboo.ai/router/v1, comAuthorization: Bearer <access>em cada call.
Configurações opcionais
Variáveis de ambiente:
| Variável | Default | Uso |
|---|---|---|
| VERBOO_BASE_URL | https://code.verboo.ai | Aponta pra staging ou outra instância |
| VERBOO_OAUTH_CLIENT_ID | verboo-code-cli | Override do client OAuth (raro) |
Exemplo (staging):
export VERBOO_BASE_URL=https://staging.code.verboo.ai
opencode auth loginFAQ / problemas comuns
"Provider not found: verboo"
Você não tem "plugin": ["@verboo/opencode-auth"] no opencode.json ativo. Confere com:
cat ~/.config/opencode/opencode.json
# OU, se for por projeto:
cat ./opencode.json"redirect_uri not registered for this client"
Sua instância do verboo-code-back está numa versão antiga sem a migration 0006_cli_oauth_client. Atualize o back ou cadastre http://localhost/callback (qualquer porta — RFC 8252 loopback) como redirect_uri válido pro client verboo-code-cli.
"redirect_uri timeout" / página de sucesso não fecha
Porta 11451 ocupada por outro processo. Mata o processo que está usando ou aguarde alguns segundos e tente de novo.
Modelos não aparecem em opencode models verboo
- Você não está logado (verifica com
opencode auth list). - O token expirou e o refresh falhou. Faz
opencode auth logout+opencode auth loginde novo. - A instância retornou 0 modelos pro seu user (problema de permissão no back, fale com o admin).
Quero ver o que o plugin está fazendo
opencode --print-logs --log-level DEBUG auth login 2>&1 | grep -iE "verboo|plugin|oauth"Atualizar pra versão nova do plugin O opencode resolve o npm na inicialização e cacheia. Pra forçar update:
rm -rf ~/.local/share/opencode/plugins
opencode # baixa de novoVersão / changelog
- 0.1.1 — adiciona
npx @verboo/opencode-authque faz setup + login em um comando. - 0.1.0 — release inicial: OAuth com PKCE, refresh automático, descoberta dinâmica de modelos via
/v1/models.
Licença
MIT.
