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)