Sobre o projeto
# routatic-proxy
Um proxy CLI em Go que permite rotear solicitações do [Claude Code](https://docs.anthropic.com/en/docs/claude-code) por vários provedores upstream com seleção automática de modelo e transformação de formato.
O `routatic-proxy` fica entre o Claude Code e seus provedores escolhidos, interceptando solicitações da API Anthropic, transformando-as para o formato apropriado (OpenAI, Anthropic, Responses ou Gemini) e encaminhando-as upstream. O Claude Code pensa que está falando com a Anthropic — mas suas solicitações vão para os modelos e provedores que você configura.
O `oc-go-cc` permanece disponível como um alias de compatibilidade, e as variáveis de ambiente `OC_GO_CC_*` existentes e os arquivos `~/.config/oc-go-cc/config.json` ainda são reconhecidos.
## Provedores Suportados
| Provedor | Descrição | Melhor Para |
|----------|-------------|----------|
| **OpenCode Go** | Modelos de codificação de código aberto de alto desempenho com preço fixo | Codificação diária, raciocínio complexo, cargas de trabalho econômicas |
| **OpenCode Zen** | Modelos selecionados e testados com preço pré-pago | Acesso a Claude/GPT/Gemini sem múltiplas chaves de API |
| **AWS Bedrock** | Modelos de nível empresarial em sua própria infraestrutura AWS | Empresas que precisam de soberania de dados e conformidade |
| **OpenRouter** | API unificada para mais de 100 LLMs com failover automático | Experimentar modelos de vários provedores |
| **Anthropic** | Modelos Claude nativos com modo de failover anthropic-first | Fluxos de trabalho focados em Claude com fallback OpenCode |
## Recursos
- **Multi-Provedor** — Roteie por OpenCode Go, OpenCode Zen, AWS Bedrock ou OpenRouter a partir de uma única configuração
- **Proxy Transparente** — O Claude Code envia solicitações no formato Anthropic, o proxy transforma para o formato nativo do provedor e vice-versa
- **Roteamento de Modelo** — Roteia automaticamente para diferentes modelos com base no contexto (padrão, pensamento, contexto longo, segundo plano)
- **Roteamento de Cenário de Streaming** — Roteamento configurável para solicitações de streaming
- **Cadeias de Fallback** — Se um modelo falhar, tenta automaticamente o próximo na cadeia configurada
- **Failover Anthropic-Primeiro** — Mantenha o Claude na Anthropic e use o OpenCode apenas durante limites de taxa ou interrupções
- **Disjuntor** — Rastreia a saúde do modelo e ignora modelos com falha para evitar picos de latência
- **Streaming em Tempo Real** — Streaming SSE completo com transformação de formato ao vivo
- **Chamada de Ferramentas** — Tradução adequada de tool_use/tool_result da Anthropic ↔ chamada de função OpenAI/Gemini
- **Recarga Automática** — Observa o arquivo de configuração para alterações e recarrega automaticamente
- **Auto-Atualização** — Verifica e instala a versão mais recente com um comando
## Versão GUI
Este repositório fornece uma GUI multiplataforma para o `routatic-proxy`:
- **macOS** — Janela nativa Cocoa com integração com a bandeja do sistema (requer CGO). Baixe o `.dmg` na página **Releases**.
- **Linux** — GUI baseada em navegador via `xdg-open` (padrão, sem CGO necessário). Para bandeja do sistema: compile com `CGO_ENABLED=1` e instale `libappindicator-gtk3-devel` (Fedora) ou `libayatana-appindicator3-dev` (Ubuntu/Debian).
- **Windows** — GUI não suportada (apenas CLI).
**Abas do painel:** Visão Geral (métricas em tempo real e distribuição de modelos), Histórico (últimas 1000 solicitações com filtros), Configurações (editar configuração com recarga automática).
O painel está disponível em `http://127.0.0.1:3445` ao usar `start` (não `serve`).
## Início Rápido
```bash
# 1. Instalar
brew tap routatic/tap && brew install routatic-proxy
# 2. Inicializar configuração
routatic-proxy init
# 3. Definir sua chave de API
export ROUTATIC_PROXY_API_KEY=sk-opencode-sua-chave-aqui
# 4. Iniciar o proxy
routatic-proxy serve
# 5. Configurar o Claude Code
export ANTHROPIC_BASE_URL=http://127.0.0.1:3456
export ANTHROPIC_AUTH_TOKEN=unused
# 6. Executar o Claude Code
claude
```
**Fedora / RHEL:** cada versão inclui RPMs `x86_64` e `aarch64` —
`sudo dnf install https://github.com/routatic/proxy/releases/download/vX.Y.Z/routatic-proxy-X.Y.Z-1.x86_64.rpm`.
Consulte [INSTALLATION.md](INSTALLATION.md) para opções de Homebrew, Scoop, Docker e compilação a partir do código-fonte.
Prefere uma GUI para alternar provedores? O routatic-proxy funciona com o [CC-Switch](https://github.com/farion1231/cc-switch).
## Comandos CLI
```
routatic-proxy start Iniciar proxy + painel (http://127.0.0.1:3445)
routatic-proxy start -b Iniciar proxy + painel em segundo plano
routatic-proxy serve Iniciar apenas o servidor proxy (headless, sem painel)
routatic-proxy serve -b Iniciar apenas o proxy em segundo plano (desanexado do terminal)
routatic-proxy stop Parar o servidor proxy em execução
routatic-proxy status Verificar se o proxy está em execução
routatic-proxy init Criar arquivo de configuração padrão
routatic-proxy validate Validar arquivo de configuração
routatic-proxy models Listar todos os modelos disponíveis
routatic-proxy autostart enable Habilitar início automático no login
routatic-proxy update Atualizar para a versão mais recente no seu canal
routatic-proxy update check Verificar uma versão mais recente sem instalar
routatic-proxy update-channel Mostrar ou alternar canal de versão (stable|beta)
routatic-proxy --version Mostrar versão
```
## Documentação
| Documento | Descrição |
|----------|-------------|
| [MODELS.md](MODELS.md) | Referência de modelos em todos os provedores — capacidades, custos, endpoints, recomendações de roteamento |
| [docs/openrouter.md](docs/openrouter.md) | Configuração e instalação do provedor OpenRouter |
| [CONFIGURATION.md](CONFIGURATION.md) | Referência do arquivo de configuração, variáveis de ambiente, roteamento de modelos, cadeias de fallback |
| [INSTALLATION.md](INSTALLATION.md) | Homebrew, Scoop, compilação a partir do código-fonte, Docker |
| [CONTRIBUTING.md](CONTRIBUTING.md) | Configuração de desenvolvimento, arquitetura |
| [TROUBLESHOOTING.md](TROUBLESHOOTING.md) | Problemas comuns e modo de depuração |
| [docs/architecture.md](docs/architecture.md) | Design do sistema e fluxo de solicitações |
| [docs/fedora-setup.md](docs/fedora-setup.md) | Configuração do Fedora 44 (systemd, SELinux) |
| [docs/reference-api.md](docs/reference-api.md) | Referência da API HTTP |
| [docs/howto-add-model.md](docs/howto-add-model.md) | Adicionar novos modelos (sem alterações de código) |
| [docs/howto-custom-routing.md](docs/howto-custom-routing.md) | Personalizar detecção de cenário e roteamento |
| [docs/howto-debug-routing.md](docs/howto-debug-routing.md) | Depurar problemas de roteamento |
## Canais de Versão
Este projeto é distribuído em dois canais. Stable é o padrão; beta oferece os recursos mais recentes antecipadamente.
```bash
routatic-proxy update-channel beta # optar por betas
routatic-proxy update # instalar o beta mais recente
routatic-proxy update-channel stable # voltar para versões estáveis
```
### Canal Beta (Automático)
- **Gatilho:** Cada push para o branch `main`
- **Formato da versão:** `v{PRÓXIMA}-beta.{N}` (ex.: `v0.6.4-beta.1`), onde `{N}` é um contador sequencial que reinicia quando essa versão é lançada como estável
- **Lançamento no GitHub:** Marcado como pré-lançamento
- **Tags Docker:** `beta` (rolante), além do exato `v{PRÓXIMA}-beta.{N}`
- **Caso de uso:** Obter os recursos e correções mais recentes imediatamente; ideal para testes
### Canal de Produção (Manual)
- **Gatilho:** `workflow_dispatch` manual no branch `releases`
- **Formato da versão:** `vX.Y.Z` (versionamento semântico)
- **Lançamento no GitHub:** Marcado como estável
- **Tags Docker:** `vX.Y.Z`, `vX.Y`, `vX`, `latest`
- **Caso de uso:** Versões estáveis e testadas para uso em produção
## Contribuindo
Aceitamos contribuições! Consulte [CONTRIBUTING.md](CONTRIBUTING.md) para configuração de desenvolvimento, visão geral da arquitetura e como enviar pull requests.
## Licença
[AGPL-3.0](LICENSE)
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.