Linha de comando
agent-providers
Uma interface só para chamar vários modelos de IA.
Chama Claude Code, Codex ou OpenRouter pela mesma interface, com fallback entre eles, limite de tempo e estimativa de custo. Usado pelos meus outros produtos.
É um pacote Go e também um binário de linha de comando, para quem chama modelos de IA do próprio código, em Go ou em outra linguagem. Uso interno nos meus produtos.
- tipo
- Linha de comando
- estado
- em uso próprio
- plataformas
- CLI, API
- conferido em
- 2026-10-15
O que faz
Uma interface, vários provedores
Claude Code e Codex rodam como subprocesso. OpenRouter e TypeSafe são chamados por HTTP, sem SDK. Um provedor novo é um arquivo novo.
Preferido primeiro, com fallback
O binário tenta o provedor preferido e passa para os outros se ele falhar. Com --no-fallback tenta só o escolhido.
Limites por chamada e por tarefa
Timeout por tentativa, retry, circuit breaker e limite de concorrência são opcionais. Um orçamento opt-in de chamadas e prazo vale para a tarefa inteira, fallbacks incluídos.
Uso e custo por tentativa
Registra o uso de cada tentativa e estima o custo a partir de uma tabela de preços.
Perfis e qualificação de versões
Perfis de execução opt-in são recusados antes da chamada se a versão da CLI não foi qualificada. Não são garantia de isolamento; a resposta em JSON, sozinha, não restringe as ferramentas.
Em uso
$ agent-providers-cli --helpUsage of agent-providers-cli: -budget-max-calls int opt-in total provider invocations across fallback; requires --budget-timeout -budget-timeout duration opt-in total execution deadline, e.g. 2m; requires --budget-max-calls -capabilities-json print the versioned provider/profile capability contract without invoking a provider -no-fallback only try --preferred (e.g. image generation: claude has no image_gen) -preferred string codex|claude|openrouter|typesafe (required): tried first -serve-stdio long-lived typed-decision mode: one JSON request per stdin line, one JSON response per stdout line; one HTTP client and one --budget-* for the whole process -text treat the answer as free text, not JSON — skips the json.Valid fallback check and the embedded-JSON-block extraction; for a chat/completion caller, not a structured-output one -timeout int seconds per provider attempt (default 600) -version-json print build provenance as JSON without invoking a provider...
Comandos reais, trecho do --help do programa.
Comandos
- agent-providers-cli --preferred=codex
- Lê o prompt da entrada padrão e tenta primeiro o provedor indicado.
- agent-providers-cli --preferred=claude --no-fallback
- Tenta só o provedor preferido, sem passar para os outros.
- agent-providers-cli --timeout=600
- Define os segundos por tentativa de cada provedor.
- agent-providers-cli --serve-stdio
- Processo longo: um JSON por linha na entrada, um JSON por linha na saída.
- agent-providers-cli --capabilities-json
- Imprime o contrato de capacidades sem chamar nenhum provedor.
- agent-providers-cli update --dry-run
- Mostra como cada CLI de IA seria atualizada, sem instalar nada.
- agent-providers-cli qualify
- Qualifica a versão instalada de cada CLI de IA com uma sonda.
Como foi feito
Go, sem SDK: subprocesso para Claude Code e Codex, net/http para OpenRouter e TypeSafe