clauderipple 0.8.3 → 0.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.es.md +623 -0
- package/README.ja.md +367 -0
- package/README.ko.md +3 -3
- package/README.md +6 -6
- package/README.pt-BR.md +608 -0
- package/README.zh-CN.md +368 -0
- package/dist/app/dist/main.js +307 -1
- package/dist/app/package.json +1 -1
- package/dist/router/src/version.js +1 -1
- package/dist/ui/app.js +10 -4
- package/dist/ui/i18n.js +1544 -8
- package/dist/ui/index.html +1 -1
- package/dist/ui/style.css +2 -1
- package/package.json +6 -2
package/README.pt-BR.md
ADDED
|
@@ -0,0 +1,608 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="docs/media/icon.png" width="128" alt="ClaudeRipple">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">ClaudeRipple</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center"><a href="README.md">English</a> · <a href="README.ko.md">한국어</a> · <a href="README.zh-CN.md">简体中文</a> · <a href="README.ja.md">日本語</a> · <a href="README.es.md">Español</a> · <b>Português (BR)</b></p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<b>O chat continua Claude. Só o Code vira GPT.</b><br>
|
|
11
|
+
A configuração do próprio Claude Desktop para outros modelos troca o <b>app inteiro</b> — o chat, o Remote
|
|
12
|
+
Control pelo celular e os conectores vão junto.<br>O ClaudeRipple não desliga nada: você continua logado na sua
|
|
13
|
+
assinatura do Claude enquanto GPT, DeepSeek, Kimi, Grok<br>ou mais de 400 outros modelos respondem na
|
|
14
|
+
<b>aba Code</b>. E ainda leva o Claude para o <b>app Codex</b> e o <b>Codex CLI</b>.
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
<p align="center">
|
|
18
|
+
<a href="https://www.npmjs.com/package/clauderipple"><img alt="npm" src="https://img.shields.io/npm/v/clauderipple?label=npm"></a>
|
|
19
|
+
<img alt="Alpha" src="https://img.shields.io/badge/status-alpha-orange">
|
|
20
|
+
<a href="LICENSE"><img alt="GPL-3.0" src="https://img.shields.io/badge/license-GPL--3.0-blue"></a>
|
|
21
|
+
<img alt="macOS" src="https://img.shields.io/badge/macOS-arm64%20%7C%20x64-black">
|
|
22
|
+
<img alt="Windows" src="https://img.shields.io/badge/Windows-arm64%20%7C%20x64-0078D4">
|
|
23
|
+
<img alt="Linux" src="https://img.shields.io/badge/Linux-x64%20(systemd)-FCC624">
|
|
24
|
+
<img alt="Node" src="https://img.shields.io/badge/node-24%2B-success">
|
|
25
|
+
<a href="README.md"><img alt="English" src="https://img.shields.io/badge/docs-English-blue"></a>
|
|
26
|
+
</p>
|
|
27
|
+
|
|
28
|
+
<p align="center">
|
|
29
|
+
<img src="docs/media/tour.png" width="880" alt="Tour pelas configurações do ClaudeRipple: status, mapeamento de modelos, provedores, clientes, log de requisições">
|
|
30
|
+
</p>
|
|
31
|
+
|
|
32
|
+
<table align="center">
|
|
33
|
+
<tr>
|
|
34
|
+
<td align="center" width="34%"><img src="docs/media/picker-zoom.png" width="300" alt="Nomes reais no seletor do Claude Desktop"><br><sub>Modelos GPT com os nomes reais no seletor do Claude Desktop</sub></td>
|
|
35
|
+
<td align="center" width="66%"><img src="docs/media/luna-answer.png" alt="GPT-5.6 Luna respondendo na aba Code do Claude Desktop"><br><sub>GPT-5.6 Luna respondendo na aba Code, com o esforço que você escolheu</sub></td>
|
|
36
|
+
</tr>
|
|
37
|
+
<tr>
|
|
38
|
+
<td colspan="2" align="center"><img src="docs/media/subagents.png" alt="Subagentes no GPT-5.6 Terra e no Sol, identificados no painel de tarefas em segundo plano"><br><sub>Subagentes no GPT-5.6 Terra e no Sol, identificados no painel de tarefas em segundo plano</sub></td>
|
|
39
|
+
</tr>
|
|
40
|
+
</table>
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 1P, não 3P: a diferença pela qual todo este projeto existe
|
|
45
|
+
|
|
46
|
+
O Claude Desktop já traz um jeito oficial de usar outros modelos — a configuração de
|
|
47
|
+
**gateway de inferência**, que o app chama de modo de terceiros ou **3P**. Ativá-la não é
|
|
48
|
+
uma escolha por sessão. Ela coloca o **app inteiro** em outro modo de implantação já na
|
|
49
|
+
inicialização, e esse modo é outro produto:
|
|
50
|
+
|
|
51
|
+
- A janela deixa de carregar o `claude.ai` e passa a carregar um bundle local. As chamadas
|
|
52
|
+
`/api/` e `/v1/` do claude.ai respondem `custom_3p_not_available` 503.
|
|
53
|
+
- O "Chat" deixa de ser o chat do claude.ai. Vira uma sessão de agente local do Claude Code.
|
|
54
|
+
- O Remote Control e as sessões paralelas são desativados por completo
|
|
55
|
+
(`shouldEnableSessionsBridge()` retorna false).
|
|
56
|
+
- Os conectores do claude.ai da própria Anthropic, o Claude Design, a continuidade com o
|
|
57
|
+
celular e a busca nos chats vão junto.
|
|
58
|
+
|
|
59
|
+
Não existe meio-termo. "Chat no Claude, Code no gateway" é impossível para qualquer pessoa,
|
|
60
|
+
porque no modo 1P nada passa pelo gateway. (Tudo isso foi extraído do próprio bundle do
|
|
61
|
+
app; veja [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) §2.)
|
|
62
|
+
|
|
63
|
+
**O ClaudeRipple nunca mexe nessa configuração.** O app continua logado na sua assinatura
|
|
64
|
+
do Claude, no modo 1P, e outro modelo responde na aba Code e nos subagentes dela — com o
|
|
65
|
+
nome real no seletor de modelos, com o esforço de raciocínio que você escolheu. Você não troca
|
|
66
|
+
sua conta do Claude por uma do GPT. Fica com as duas, no mesmo app.
|
|
67
|
+
|
|
68
|
+
Continuar no 1P traz três coisas, e nenhuma ferramenta baseada em gateway consegue oferecer
|
|
69
|
+
qualquer uma delas:
|
|
70
|
+
|
|
71
|
+
- **Programe pelo celular, com GPT.** O Remote Control fica desligado no 3P. Aqui ele
|
|
72
|
+
continua ligado, então você pode escolher um modelo, mandar uma tarefa pelo celular e ver
|
|
73
|
+
os commits chegando.
|
|
74
|
+
- **Conectores funcionando enquanto outro modelo trabalha.** O 3P troca as chamadas ao
|
|
75
|
+
claude.ai por stubs, o que derruba junto os conectores da própria Anthropic. Leia um
|
|
76
|
+
documento do Google Drive e deixe o GPT escrever o código.
|
|
77
|
+
- **Sessões na nuvem e paralelas.** Somem no 3P. Aqui ficam intactas.
|
|
78
|
+
|
|
79
|
+
Se você paga pelo Claude, o 3P não é opção — ele joga fora metade da assinatura pela qual
|
|
80
|
+
você está pagando. Este é o único jeito de mantê-la e ainda escolher o modelo.
|
|
81
|
+
|
|
82
|
+
## Perguntas frequentes
|
|
83
|
+
|
|
84
|
+
### Posso usar GPT no app Claude Desktop?
|
|
85
|
+
|
|
86
|
+
Sim — na **aba Code** e nos subagentes dela. Instale o ClaudeRipple, faça login com uma
|
|
87
|
+
assinatura ChatGPT Plus ou Pro, e o GPT (GPT-6 Sol, Luna, Astra, GPT-5.6 Terra e os demais)
|
|
88
|
+
aparece com o nome real no seletor de modelos, com o esforço de raciocínio que você escolher.
|
|
89
|
+
O app em si não é modificado nem passa para nenhum outro modo. A aba de **chat** geral
|
|
90
|
+
continua Claude: nenhuma ferramenta consegue rotear o chat sem colocar o app inteiro em modo
|
|
91
|
+
gateway (veja [1P, não 3P](#1p-não-3p-a-diferença-pela-qual-todo-este-projeto-existe)).
|
|
92
|
+
|
|
93
|
+
### Como uso GPT no Claude Code?
|
|
94
|
+
|
|
95
|
+
A mesma instalação cobre a CLI `claude` no terminal. O ClaudeRipple é um proxy local para o
|
|
96
|
+
qual o Claude Code é apontado com duas linhas em `~/.claude/settings.json`; assim, suas
|
|
97
|
+
skills, hooks, servidores MCP, `CLAUDE.md` e subagentes continuam funcionando enquanto outro
|
|
98
|
+
modelo responde.
|
|
99
|
+
|
|
100
|
+
### Preciso ativar a configuração de "inferência de terceiros" (gateway) do Claude Desktop?
|
|
101
|
+
|
|
102
|
+
Não — e você não deve ativá-la. Essa configuração coloca o app inteiro no modo 3P, que deixa de carregar
|
|
103
|
+
o claude.ai, substitui o chat por uma sessão de agente local e desliga o Remote Control. O
|
|
104
|
+
ClaudeRipple nunca mexe nela.
|
|
105
|
+
|
|
106
|
+
### Vou perder o chat do claude.ai, o Remote Control ou meus conectores?
|
|
107
|
+
|
|
108
|
+
Não. O app continua logado na sua assinatura do Claude, então o chat, o Remote Control pelo
|
|
109
|
+
celular, as sessões na nuvem e os conectores da própria Anthropic continuam funcionando. É
|
|
110
|
+
justamente para isso que se fica no 1P.
|
|
111
|
+
|
|
112
|
+
### Ainda posso usar o próprio Claude?
|
|
113
|
+
|
|
114
|
+
Sim. O mapeamento de modelos é feito por nome de modelo: deixe um nome mapeado para o Claude
|
|
115
|
+
e ele responde como Claude. A maioria das pessoas mapeia um ou dois nomes para o GPT e deixa
|
|
116
|
+
o resto como está.
|
|
117
|
+
|
|
118
|
+
### Preciso de uma chave de API da OpenAI?
|
|
119
|
+
|
|
120
|
+
Não. Qualquer plano do ChatGPT que inclua o Codex serve — Plus, Pro e Business, além de
|
|
121
|
+
Enterprise ou Edu quando o administrador do workspace tiver ativado o Codex. Você faz login
|
|
122
|
+
pelo app, e nenhuma chave de API entra na história. Valem os limites de uso do plano; quando
|
|
123
|
+
eles se esgotam, os créditos do Codex que você comprou passam a ser usados. As chaves de API
|
|
124
|
+
são para os outros provedores (DeepSeek, Kimi, GLM, OpenRouter e qualquer outro com endpoint
|
|
125
|
+
compatível com Anthropic ou OpenAI).
|
|
126
|
+
|
|
127
|
+
### Quais modelos posso usar?
|
|
128
|
+
|
|
129
|
+
GPT por meio de uma assinatura do ChatGPT, e DeepSeek, Kimi, GLM, Grok, Qwen e mais de 400
|
|
130
|
+
outros pelo OpenRouter ou por uma chave de API direta. Os modelos Claude continuam
|
|
131
|
+
funcionando como sempre.
|
|
132
|
+
|
|
133
|
+
### Funciona no Windows?
|
|
134
|
+
|
|
135
|
+
Sim, no Windows e no macOS, em arm64 e x64. A instalação, o painel, o reinício e a desinstalação
|
|
136
|
+
foram medidos no Windows 11 arm64; o runtime x64 foi medido sob emulação. No Linux também
|
|
137
|
+
funciona, desde que haja uma sessão de usuário do systemd: a instalação, uma requisição da aba
|
|
138
|
+
Code passando pelo roteador, um reinício no meio de uma resposta em streaming e a
|
|
139
|
+
desinstalação foram medidos no Ubuntu 24.04 x64 com o Claude Desktop 2.2553.13, assim como
|
|
140
|
+
o modo seletor: os modelos de `cli.extraModels` aparecem no seletor da aba Code ao lado dos
|
|
141
|
+
modelos do próprio Claude.
|
|
142
|
+
|
|
143
|
+
### Meu código é enviado para algum outro lugar?
|
|
144
|
+
|
|
145
|
+
Não. O proxy roda na sua própria máquina. As requisições vão para o provedor que você
|
|
146
|
+
configurou e para mais nenhum lugar, e as credenciais ficam no seu diretório home. Veja
|
|
147
|
+
[Privacidade](#privacidade).
|
|
148
|
+
|
|
149
|
+
### Minha conta do Claude pode ser banida? Isso viola os termos da Anthropic?
|
|
150
|
+
|
|
151
|
+
O que o ClaudeRipple faz com o Claude é limitado e verificável: uma requisição que fica no
|
|
152
|
+
Claude sai da sua máquina exatamente como o Claude Code a enviou, byte por byte, e uma requisição
|
|
153
|
+
roteada para o GPT ou outro provedor nunca chega à Anthropic. Ele funciona pelas
|
|
154
|
+
configurações de proxy e de certificado que o Claude Code documenta para redes corporativas
|
|
155
|
+
(`HTTPS_PROXY`, `NODE_EXTRA_CA_CERTS` — [Enterprise network configuration](https://code.claude.com/docs/en/corporate-proxy)),
|
|
156
|
+
e não modificando o app. Os relatos de contas banidas tratam da direção oposta — um login de
|
|
157
|
+
assinatura do Claude usado a partir de **outro** programa. O ClaudeRipple tem um recurso
|
|
158
|
+
opcional desse tipo: o Claude dentro do Codex usando o login da sua assinatura. Esse uso
|
|
159
|
+
está sujeito aos termos da Anthropic; uma chave de API da Anthropic elimina a questão. Fazer
|
|
160
|
+
rodízio entre várias assinaturas do Claude também é uma decisão sua, à luz desses termos. Só
|
|
161
|
+
a Anthropic pode dizer como uma conta é tratada, então nada aqui é uma promessa.
|
|
162
|
+
|
|
163
|
+
### E o Gemini com uma conta do Google?
|
|
164
|
+
|
|
165
|
+
Uma chave de API do AI Studio é a opção com suporte do Google — e a segura. O login com conta
|
|
166
|
+
do Google (Antigravity) é diferente: os [termos do Antigravity](https://antigravity.google/terms)
|
|
167
|
+
do Google (seção 6) e o [FAQ do Gemini CLI](https://geminicli.com/docs/resources/faq/)
|
|
168
|
+
classificam como violação o uso dessas credenciais a partir de outro programa. Em fevereiro
|
|
169
|
+
de 2026, o Google suspendeu contas usadas dessa forma — a suspensão também cortou o acesso
|
|
170
|
+
ao Gemini CLI e ao Code Assist — e [afirmou](https://github.com/google-gemini/gemini-cli/discussions/20632)
|
|
171
|
+
que uma segunda violação resulta em suspensão permanente. O ClaudeRipple oferece esse login
|
|
172
|
+
porque outras ferramentas oferecem e porque houve pedidos, mostra este aviso antes de
|
|
173
|
+
começar e não faz nada para esconder o tráfego. Se for usar mesmo assim, use uma conta
|
|
174
|
+
secundária.
|
|
175
|
+
|
|
176
|
+
### Posso usar várias contas do ChatGPT?
|
|
177
|
+
|
|
178
|
+
Sim. Cada `clauderipple login` (ou **+ Adicionar conta do ChatGPT** no painel) adiciona uma.
|
|
179
|
+
Quando uma conta atinge o limite de uso, a mesma requisição passa para a próxima conta, e a
|
|
180
|
+
conta esgotada fica em espera até sua janela de uso reiniciar; uma conversa fica na conta que respondeu, para
|
|
181
|
+
manter o cache de prompt. Isso vale para a aba Code do Claude Desktop, para o Claude Code e
|
|
182
|
+
para o GPT no app e na CLI do Codex.
|
|
183
|
+
|
|
184
|
+
### Posso usar o Claude dentro do Codex?
|
|
185
|
+
|
|
186
|
+
Sim. `clauderipple codex on` adiciona o ClaudeRipple como provedor, e os modelos Claude
|
|
187
|
+
aparecem com os próprios nomes na lista de modelos do app e da CLI do Codex. Eles respondem
|
|
188
|
+
pelo seu login do Claude Code ou por uma chave de API da Anthropic. Veja
|
|
189
|
+
[App Codex e Codex CLI](#app-codex-e-codex-cli).
|
|
190
|
+
|
|
191
|
+
### Ele gera imagens?
|
|
192
|
+
|
|
193
|
+
Sim, com uma assinatura do ChatGPT e sem chave de API:
|
|
194
|
+
`clauderipple image "a red paper boat" -o boat.png --aspect square`. `--ref FILE` adiciona
|
|
195
|
+
uma imagem de referência, e `--transparent`, um fundo transparente. Cada imagem leva cerca
|
|
196
|
+
de 30 segundos, e a assinatura escolhe a resolução e a qualidade. Os subagentes que o
|
|
197
|
+
ClaudeRipple gera recebem essa mesma chamada nas instruções, então também conseguem criar
|
|
198
|
+
imagens. Veja [Claude Code](#claude-code-terminal-remote-control-subagentes).
|
|
199
|
+
|
|
200
|
+
### O GPT se sai pior dentro do Claude Code?
|
|
201
|
+
|
|
202
|
+
O prompt de sistema e as descrições de ferramentas do Claude Code foram escritos para o
|
|
203
|
+
Claude; outro modelo, portanto, lê instruções ajustadas para um modelo diferente e pode se
|
|
204
|
+
comportar um pouco diferente do que no próprio cliente. O ClaudeRipple informa a cada modelo
|
|
205
|
+
o próprio nome e esforço, adapta os schemas de ferramentas que um fornecedor rejeitaria e
|
|
206
|
+
permite acrescentar instruções por provedor. Uma configuração comum é usar o Claude como
|
|
207
|
+
modelo principal, com GPT ou DeepSeek como subagentes.
|
|
208
|
+
|
|
209
|
+
### Qual a diferença para o CC Switch, o opencodex ou o claude-code-router?
|
|
210
|
+
|
|
211
|
+
Veja a [tabela comparativa](#uma-ferramenta-em-vez-de-quatro). Resumindo: o ClaudeRipple
|
|
212
|
+
chega à aba Code do Claude **Desktop** enquanto o app continua logado no Claude, e mostra
|
|
213
|
+
outros modelos no seletor com os nomes reais. O CC Switch também chega ao app desktop, mas
|
|
214
|
+
ativando o modo gateway (3P) dele.
|
|
215
|
+
|
|
216
|
+
### É gratuito?
|
|
217
|
+
|
|
218
|
+
Sim. O ClaudeRipple é open source, sob a GPL-3.0. Você paga só pelas assinaturas ou chaves
|
|
219
|
+
de API que já usa.
|
|
220
|
+
|
|
221
|
+
## Uma ferramenta em vez de quatro
|
|
222
|
+
|
|
223
|
+
Ferramentas parecidas permitem que a CLI do Claude Code ou o Codex CLI usem outros modelos,
|
|
224
|
+
mas ou não alcançam o **app desktop** do Claude, ou só o alcançam pelo modo gateway (3P)
|
|
225
|
+
dele, e, no momento em que você troca de modelo, perde o lado da assinatura do Claude (chat
|
|
226
|
+
do claude.ai, Remote Control, sessões na nuvem). O ClaudeRipple cobre o app desktop, o
|
|
227
|
+
terminal e o Codex a partir de um único app na barra de menus, roda as duas assinaturas lado
|
|
228
|
+
a lado e mantém intacto o harness do Claude Code: suas skills, hooks, servidores MCP,
|
|
229
|
+
`CLAUDE.md`, subagentes e conectores do claude.ai continuam funcionando enquanto outro
|
|
230
|
+
modelo faz o raciocínio.
|
|
231
|
+
|
|
232
|
+
| | ClaudeRipple | CC Switch (verificado em 2026-09-24) | opencodex / openclaude (verificado em 2026-09-16) | claude-code-router | Modo gateway (3P) do Claude Desktop |
|
|
233
|
+
|---|---|---|---|---|---|
|
|
234
|
+
| Aba Code do Claude **Desktop** **sem** o modo gateway (3P) | ✅ | ❌ ² | ❌ ¹ | ❌ | ❌ por definição |
|
|
235
|
+
| Mantém chat do claude.ai, Remote Control, sessões na nuvem e conectores | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
236
|
+
| Assinaturas do Claude e do GPT lado a lado | ✅ | ❌ um provedor por vez | ❌ tudo ou nada | ❌ | ❌ |
|
|
237
|
+
| Nomes reais dos modelos no seletor do Desktop | ✅ | ❌ nomes de função `claude-*` ² | ❌ | ❌ | parcial |
|
|
238
|
+
| Várias contas do ChatGPT, trocando quando uma se esgota (Desktop e Codex) | ✅ | ❌ troca manual ³ | ✅ | ❌ | ❌ |
|
|
239
|
+
| CLI `claude` no terminal | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
240
|
+
| **App** Codex e Codex CLI → Claude | ✅ | ✅ | ✅ | ❌ | ❌ |
|
|
241
|
+
| Cache de prompt em provedores traduzidos | **94–99%** medido | não medido | não medido | varia | não se aplica |
|
|
242
|
+
| Subagentes identificados pelo modelo real no painel de tarefas | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
243
|
+
| Interface gráfica de configuração, sem precisar de terminal | ✅ | ✅ | ❌ | ❌ | ❌ |
|
|
244
|
+
| App assinado e notarizado, com runtime próprio | ✅ | ✅ | ❌ | ❌ | – |
|
|
245
|
+
|
|
246
|
+
¹ O README do opencodex mostrava o Claude Desktop em uma demo, mas não publicava passos de
|
|
247
|
+
configuração para ele, nem no repositório nem no site de documentação (verificado em
|
|
248
|
+
2026-09-16). Na época, o único caminho público para o app desktop era a configuração oficial
|
|
249
|
+
de gateway — a última coluna.
|
|
250
|
+
|
|
251
|
+
² O CC Switch chega ao Claude Desktop gravando o perfil de terceiros do app
|
|
252
|
+
(`Claude-3p/claude_desktop_config.json`, `"inferenceProvider": "gateway"`), que é a última
|
|
253
|
+
coluna. Pelo gateway local dele, o seletor mostra apenas os nomes de função `claude-sonnet-*`,
|
|
254
|
+
`claude-opus-*` e `claude-haiku-*` ([manual do CC Switch](https://github.com/farion1231/cc-switch/blob/main/docs/user-manual/en/2-providers/2.6-claude-desktop.md)).
|
|
255
|
+
O CC Switch gerencia mais ferramentas do que esta tabela cobre (Gemini CLI, OpenCode e
|
|
256
|
+
outras) e sincroniza servidores MCP e skills entre elas.
|
|
257
|
+
|
|
258
|
+
³ Cada conta do ChatGPT fica vinculada ao próprio card de provedor, e os cards oficiais do
|
|
259
|
+
ChatGPT ficam fora da fila de failover (notas de versão da v3.20.0).
|
|
260
|
+
|
|
261
|
+
A configuração de "inferência de terceiros" do próprio app desktop joga o app inteiro em
|
|
262
|
+
outro modo: você perde o chat do claude.ai, o Remote Control e as sessões na nuvem.
|
|
263
|
+
Ferramentas que substituem `ANTHROPIC_BASE_URL` nunca chegam ao app desktop, e as que chegam
|
|
264
|
+
gravam essa mesma configuração. O ClaudeRipple, por sua vez, é um
|
|
265
|
+
pequeno proxy HTTPS em que só o processo do Claude Code confia: as requisições dos modelos
|
|
266
|
+
que você mapeia vão para o seu provedor, e todo o resto vai para a Anthropic byte a byte.
|
|
267
|
+
|
|
268
|
+
## O que você ganha
|
|
269
|
+
|
|
270
|
+
- **Qualquer modelo no Claude Desktop e no Claude Code.** GPT-6 Sol / Luna / Astra e
|
|
271
|
+
GPT-5.6 Terra / Sol / Luna pela sua assinatura ChatGPT Plus/Pro (modelos novos aparecem
|
|
272
|
+
no mesmo dia em que a OpenAI os disponibiliza), Google Gemini, ou DeepSeek, Kimi, GLM,
|
|
273
|
+
MiniMax, Qwen, Grok, Mistral, Groq, Together, Fireworks, OpenRouter (mais de 400 modelos)
|
|
274
|
+
e Ollama / LM Studio locais. Com os nomes reais no seletor, ou mapeados para um nome do
|
|
275
|
+
Claude.
|
|
276
|
+
- **Claude no app Codex e no Codex CLI.** Um endpoint local compatível com OpenAI que o
|
|
277
|
+
Codex trata como provedor; os modelos Claude aparecem na própria lista de modelos do
|
|
278
|
+
Codex. Usa seu login atual do Claude Code ou uma chave de API da Anthropic.
|
|
279
|
+
- **Várias contas do Claude sem quebrar o cache de prompt.** Ative o rodízio de contas em um
|
|
280
|
+
provedor Claude nativo, adicione assinaturas pelo painel, e cada conversa fica na conta
|
|
281
|
+
que respondeu. Antes de a resposta começar, uma recusa por cota ou por autenticação passa
|
|
282
|
+
aquele turno para a próxima conta. Esse caminho nativo do Claude Desktop/Code é separado
|
|
283
|
+
da entrada traduzida do Codex, que escolhe um login disponível e não faz rodízio de contas.
|
|
284
|
+
- **Várias contas do ChatGPT.** Cada `clauderipple login` (ou **+ Adicionar conta do ChatGPT**
|
|
285
|
+
no painel) adiciona uma. Quando uma conta atinge o limite, a próxima assume a mesma
|
|
286
|
+
requisição, e a conta esgotada fica em espera até sua janela de uso reiniciar; uma conversa fica na conta que
|
|
287
|
+
respondeu, para manter o cache. Isso cobre a aba Code e os subagentes do Claude Desktop
|
|
288
|
+
**e o GPT no app e na CLI do Codex** — o Codex mantém o próprio login e passa para a
|
|
289
|
+
próxima conta sem precisar sair.
|
|
290
|
+
- **O harness completo do Claude Code, intacto.** Skills, hooks, MCP, `CLAUDE.md`,
|
|
291
|
+
subagentes, plan mode, Remote Control no celular: nada é desligado.
|
|
292
|
+
- **Correto por construção.** Cache de prompt preservado (breakpoints de cache da Anthropic
|
|
293
|
+
e prefixos estáveis da OpenAI), threads do lado do servidor do Claude Code tratadas,
|
|
294
|
+
chamadas de ferramentas e imagens preservadas na ida e na volta, esforço de raciocínio
|
|
295
|
+
limitado ao que cada modelo aceita, campos exclusivos da Anthropic removidos para
|
|
296
|
+
fornecedores compatíveis.
|
|
297
|
+
- **Um log de requisições de verdade.** Quem pediu, qual modelo respondeu, tokens de
|
|
298
|
+
entrada / em cache / de saída, latência e status de cada requisição, com um resumo da
|
|
299
|
+
última hora.
|
|
300
|
+
- **Identificação dos subagentes.** O painel de tarefas em segundo plano mostra
|
|
301
|
+
`Terra·high · Review` em vez de um "Agent" genérico.
|
|
302
|
+
- **A rota, onde você digita.** Um mod do Claude Code coloca uma linha acima do prompt:
|
|
303
|
+
para onde foi sua última requisição, o esforço, o acerto de cache e o tempo. `Log` (ou
|
|
304
|
+
`/ripple-log`) abre o log de requisições em um painel lateral, com cores por provedor e
|
|
305
|
+
por resultado; `×` (ou `/ripple-bar`) oculta a linha. O mesmo mod mantém um worker no
|
|
306
|
+
próprio modelo quando a chamada do Agent indica outro, e lê o marcador
|
|
307
|
+
`[[ripple: name@level]]` dele onde quer que esteja no prompt. Basta um botão na tela
|
|
308
|
+
**Clientes**, ou `clauderipple mod on`.
|
|
309
|
+
- **Imagens pela sua assinatura do ChatGPT.** `clauderipple image "<prompt>"`, com imagens
|
|
310
|
+
de referência e fundos transparentes. Os subagentes recebem instruções de como fazer,
|
|
311
|
+
então um worker GPT ou DeepSeek consegue criar uma imagem e olhar para ela sem uma
|
|
312
|
+
ferramenta de imagem.
|
|
313
|
+
- **Workers enxutos, se você quiser.** Um único botão faz com que os subagentes gerados
|
|
314
|
+
recebam só as ferramentas que um worker usa, em vez de todos os servidores MCP e plugins
|
|
315
|
+
da sessão: a primeira requisição de um worker caiu de 33k para 9k tokens.
|
|
316
|
+
- **Feito para quem não quer saber de terminal.** Presets de provedores com teste de conexão
|
|
317
|
+
em um clique e descoberta de modelos, mapeamento de modelos em menus suspensos, salvamento
|
|
318
|
+
automático, interface em coreano e inglês. Um app de barra de menus que traz o próprio
|
|
319
|
+
runtime e se configura sozinho na primeira execução. Assinado e notarizado.
|
|
320
|
+
|
|
321
|
+
<p align="center">
|
|
322
|
+
<img src="docs/media/mapping.png" width="880" alt="Mapeamento de modelos: qual modelo responde por cada nome do Claude, com esforço de raciocínio por modelo">
|
|
323
|
+
</p>
|
|
324
|
+
|
|
325
|
+
## Instalação
|
|
326
|
+
|
|
327
|
+
**macOS**
|
|
328
|
+
|
|
329
|
+
```sh
|
|
330
|
+
curl -fsSL https://raw.githubusercontent.com/PBJ-2/clauderipple/main/scripts/install.sh | sh
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
**Windows** (PowerShell)
|
|
334
|
+
|
|
335
|
+
```powershell
|
|
336
|
+
irm https://raw.githubusercontent.com/PBJ-2/clauderipple/main/scripts/install.ps1 | iex
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
**Linux** (uma sessão desktop com systemd)
|
|
340
|
+
|
|
341
|
+
```sh
|
|
342
|
+
curl -fsSL https://raw.githubusercontent.com/PBJ-2/clauderipple/main/scripts/install.sh | sh
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
O roteador roda como um serviço systemd por usuário: `systemctl --user status clauderipple`,
|
|
346
|
+
e `journalctl --user -u clauderipple` para ver o que ele registrou. O modo seletor registra a
|
|
347
|
+
CA local como confiável no banco de dados NSS que o Chromium lê (`~/.pki/nssdb`, só para o
|
|
348
|
+
seu usuário, sem sudo), o que exige o `certutil`: rode `sudo apt install libnss3-tools`
|
|
349
|
+
(Fedora: `sudo dnf install nss-tools`) antes de `clauderipple picker on`.
|
|
350
|
+
|
|
351
|
+
Esses são todos os pré-requisitos. O script usa um Node 24+ que você já tenha e, se não houver
|
|
352
|
+
nenhum, baixa o build oficial para `~/.clauderipple/runtime`, conferindo-o com o checksum
|
|
353
|
+
publicado pelo nodejs.org. Depois, configura o ClaudeRipple: um certificado local, duas
|
|
354
|
+
linhas em `~/.claude/settings.json` e um roteador em segundo plano que inicia junto com o
|
|
355
|
+
computador. Sem direitos de administrador, sem senha.
|
|
356
|
+
|
|
357
|
+
Com o Node já instalado, você pode pular o script:
|
|
358
|
+
|
|
359
|
+
```sh
|
|
360
|
+
npm install -g clauderipple
|
|
361
|
+
clauderipple install
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
Depois, abra o painel e adicione um provedor:
|
|
365
|
+
|
|
366
|
+
```sh
|
|
367
|
+
clauderipple ui
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
**Provedores** → adicione o ChatGPT ou cole uma chave de API → **Mapeamento de modelos**.
|
|
371
|
+
|
|
372
|
+
**O app da barra de menus / bandeja** é opcional. Ele mostra o estado do roteador e abre o
|
|
373
|
+
painel com um clique:
|
|
374
|
+
|
|
375
|
+
```sh
|
|
376
|
+
clauderipple tray
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
Ele roda em Electron, que tem cerca de 270 MB e, por isso, não é instalado por padrão.
|
|
380
|
+
`clauderipple tray --install` baixa o Electron uma única vez; todo o resto funciona sem ele.
|
|
381
|
+
|
|
382
|
+
**Atualização.** A bandeja oferece a nova versão quando houver uma (**Verificar atualizações…**), ou:
|
|
383
|
+
|
|
384
|
+
```sh
|
|
385
|
+
clauderipple update
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
A atualização segue o jeito como você instalou — o script de instalação de novo, ou o npm — e
|
|
389
|
+
reinicia o roteador na nova versão. O Electron da bandeja é mantido entre atualizações.
|
|
390
|
+
|
|
391
|
+
Opcional, para ver os nomes reais no seletor do Desktop: **Clientes → Claude Desktop →
|
|
392
|
+
Seletor de modelos → Ativar seletor**; depois, encerre o Claude Desktop e abra-o de novo. Para
|
|
393
|
+
confiar no certificado local só para o seu usuário, o macOS pede sua senha de login e o
|
|
394
|
+
Windows mostra uma caixa de confirmação com a impressão digital do certificado; o Linux o
|
|
395
|
+
adiciona ao seu banco NSS sem perguntar. O ClaudeRipple nunca vê nenhuma senha, e nenhuma
|
|
396
|
+
plataforma exige direitos de administrador.
|
|
397
|
+
|
|
398
|
+
> **Fechar a janela do Claude Desktop não basta.** Ele continua rodando, e a próxima
|
|
399
|
+
> abertura reaproveita esse processo sem ler a nova configuração. Encerre-o de verdade
|
|
400
|
+
> (macOS: ⌘Q; Windows: pelo ícone da bandeja ou pelo Gerenciador de Tarefas; Linux: Ctrl+Q ou
|
|
401
|
+
> o ícone da bandeja, até `pgrep -f claude-desktop` não imprimir nada), senão o seletor
|
|
402
|
+
> simplesmente não muda, sem nenhum aviso.
|
|
403
|
+
|
|
404
|
+
<details>
|
|
405
|
+
<summary>A partir do código-fonte (Node 24)</summary>
|
|
406
|
+
|
|
407
|
+
```bash
|
|
408
|
+
git clone https://github.com/PBJ-2/clauderipple && cd clauderipple && npm install
|
|
409
|
+
node packages/cli/src/index.ts install # certs, settings.json env, supervisor (launchd / Task Scheduler), end-to-end probe
|
|
410
|
+
node packages/cli/src/index.ts ui # open the local GUI in your browser
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
`uninstall` desfaz tudo e restaura `~/.claude/settings.json` a partir de um backup.
|
|
414
|
+
Outros comandos: `status`, `start`, `stop`, `restart`, `logs -f`, `login`, `logout`,
|
|
415
|
+
`claude-login`, `claude-logout`, `picker on|off`, `agent-title on|off`, `mod on|off`,
|
|
416
|
+
`codex on|off`, `update`, `image "<prompt>"`.
|
|
417
|
+
</details>
|
|
418
|
+
|
|
419
|
+
## Clientes
|
|
420
|
+
|
|
421
|
+
### Claude Desktop
|
|
422
|
+
|
|
423
|
+
Funciona logo após a instalação. Mapeie modelos em **Mapeamento de modelos** (salva
|
|
424
|
+
automaticamente) ou ative o **modo seletor** para ver os modelos dos provedores pelo nome no
|
|
425
|
+
próprio seletor do app. O esforço escolhido no app é repassado; níveis não suportados são
|
|
426
|
+
trocados pelo mais próximo.
|
|
427
|
+
|
|
428
|
+
### Claude Code (terminal, Remote Control, subagentes)
|
|
429
|
+
|
|
430
|
+
Mesmo roteador, mesmo mapeamento. `/model gpt-5.6-terra` lista os modelos que você adicionou.
|
|
431
|
+
Os subagentes seguem o roteamento; um marcador `[[gpt: sol@xhigh]]` no prompt de um subagente
|
|
432
|
+
substitui o modelo naquela chamada, e o painel de tarefas mostra o nome real do modelo.
|
|
433
|
+
|
|
434
|
+
**Você não precisa montar um harness de agentes para isso.** Aponte o slot de subagente para
|
|
435
|
+
um modelo roteado e todos os subagentes passam a rodar nele — sem arquivo de agente, sem mais
|
|
436
|
+
nada:
|
|
437
|
+
|
|
438
|
+
```jsonc
|
|
439
|
+
// Settings → CLI models, or "cli": { "models": { … } } in the config
|
|
440
|
+
{ "subagent": "gpt-5.6-terra" } // → CLAUDE_CODE_SUBAGENT_MODEL
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
**Todo modelo que você marca também vira um subagente nomeado.** O roteador grava
|
|
444
|
+
`~/.claude/agents/<name>.md` para cada modelo oferecido por exatamente um provedor
|
|
445
|
+
(`gpt-5.6-terra` → `gpt-5-6-terra`, `deepseek-v4.1-flash` → `deepseek-v4-1-flash`); assim,
|
|
446
|
+
"manda o DeepSeek fazer" não exige nada além de marcar o modelo: a ferramenta Agent o lista,
|
|
447
|
+
`subagent_type: "deepseek-v4-1-flash"` o executa e o painel de tarefas mostra o nome dele.
|
|
448
|
+
Desmarque o modelo e o arquivo dele some. O roteador só mexe nos arquivos que ele mesmo
|
|
449
|
+
gravou (registrados em `generated-agents.json`); um arquivo de agente que você mesmo escreveu
|
|
450
|
+
com o mesmo nome tem prioridade e não é tocado, então um briefing personalizado continua
|
|
451
|
+
sendo só o arquivo de agente do próprio Claude Code, com um `model:` que o roteador conhece:
|
|
452
|
+
|
|
453
|
+
```markdown
|
|
454
|
+
---
|
|
455
|
+
name: reviewer
|
|
456
|
+
description: Independent review on GPT-5.6 Sol.
|
|
457
|
+
model: gpt-5.6-sol@medium
|
|
458
|
+
---
|
|
459
|
+
You are the reviewer for this session. Verify the change yourself and report
|
|
460
|
+
the conclusion only.
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
O esforço por chamada vai na **primeira linha** do prompt do subagente:
|
|
464
|
+
`[[ripple: gpt-5-6-terra@high]]` — qualquer nome de agente ou id de modelo funciona ali. Um
|
|
465
|
+
marcador em qualquer outro lugar é texto comum e é ignorado (um resumo de compactação que
|
|
466
|
+
cite um marcador não pode redirecionar a sessão). Um modelo que o roteador não sabe para onde
|
|
467
|
+
mandar é recusado pelo nome (`400 ClaudeRipple: no provider declares "…"`), em vez de ser
|
|
468
|
+
repassado para falhar em outro lugar de forma menos clara; os modelos nativos do Claude
|
|
469
|
+
sempre passam direto. Defina `"cli": { "agentFiles": false }` para desligar a geração.
|
|
470
|
+
|
|
471
|
+
Por padrão, um worker gerado herda todas as ferramentas da sessão, então todos os servidores MCP e
|
|
472
|
+
plugins são incluídos em cada requisição de worker. `"cli": {
|
|
473
|
+
"limitWorkerTools": true }` (ou **Ferramentas dos workers** no painel) dá a ele só as
|
|
474
|
+
ferramentas de leitura, edição, execução, busca e skills, o que reduziu a primeira
|
|
475
|
+
requisição de um worker de cerca de 33k para 9k tokens. Um worker assim não tem ferramentas
|
|
476
|
+
de navegador nem de simulador. Um worker que precise delas deve ser definido em um arquivo de agente
|
|
477
|
+
seu, que nunca é tocado.
|
|
478
|
+
|
|
479
|
+
Com um provedor ChatGPT configurado, as imagens vêm da mesma assinatura:
|
|
480
|
+
|
|
481
|
+
```bash
|
|
482
|
+
clauderipple image "a red paper boat, flat illustration" -o boat.png --aspect square
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
`--transparent`, `--format png|jpeg|webp` e `--ref FILE` (uma imagem de referência, pode
|
|
486
|
+
ser repetido) são opcionais. Cada imagem leva cerca de 30 segundos. O backend da assinatura
|
|
487
|
+
escolhe a resolução e a qualidade por conta própria, então a proporção é solicitada em palavras
|
|
488
|
+
(`--aspect`). O comando é um cliente de `POST /api/image` na porta de administração, que
|
|
489
|
+
responde com os bytes da imagem. Os workers gerados recebem a forma `curl` dessa chamada,
|
|
490
|
+
então um worker que só tem Bash consegue criar uma imagem e lê-la de volta.
|
|
491
|
+
|
|
492
|
+
O Claude Code executa o `WebSearch` como uma requisição separada a um modelo pequeno. Para
|
|
493
|
+
que uma configuração roteada para o ChatGPT não gaste cota da Anthropic nessa requisição,
|
|
494
|
+
selecione o mesmo provedor ChatGPT como backend de busca em `config.json`:
|
|
495
|
+
|
|
496
|
+
```jsonc
|
|
497
|
+
{ "webSearch": { "provider": "chatgpt", "model": "gpt-5.6-terra" } }
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
Isso é opcional. Sem a configuração `webSearch`, o caminho de busca atual do Claude Code
|
|
501
|
+
continua o mesmo.
|
|
502
|
+
|
|
503
|
+
### App Codex e Codex CLI
|
|
504
|
+
|
|
505
|
+
```bash
|
|
506
|
+
clauderipple codex on # adds a "clauderipple" provider to ~/.codex/config.toml (backup first)
|
|
507
|
+
codex --profile clauderipple -m claude-sonnet-5
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
`codex on` também aponta o provedor OpenAI embutido do Codex para o ClaudeRipple (`openai_base_url`).
|
|
511
|
+
O Codex mantém o login do ChatGPT; as requisições GPT dele seguem para o ChatGPT sem alteração,
|
|
512
|
+
exceto pela conta, que é escolhida entre as adicionadas ao ClaudeRipple — então, com várias
|
|
513
|
+
adicionadas, o Codex também passa de uma conta esgotada para a próxima. Sem nenhuma adicionada,
|
|
514
|
+
ou com todas no limite, é usado o login do próprio Codex. Um `openai_base_url` que você mesmo
|
|
515
|
+
definiu é deixado como está. `clauderipple codex off` desfaz a alteração.
|
|
516
|
+
|
|
517
|
+
Os modelos Claude aparecem com os próprios nomes na lista de modelos do Codex (o ClaudeRipple
|
|
518
|
+
grava um catálogo de modelos ao lado do catálogo do próprio Codex). O Claude é acessado pelo
|
|
519
|
+
seu login do Claude Code (detectado na sessão do Desktop em execução, no login do terminal ou
|
|
520
|
+
em um login próprio do ClaudeRipple: **Provedores → Claude (Anthropic) → + Adicionar conta do Claude**
|
|
521
|
+
abre o navegador, sem precisar de terminal; equivale a
|
|
522
|
+
`clauderipple claude-login`) ou por uma chave de API da Anthropic. Reutilizar o login de uma
|
|
523
|
+
assinatura está sujeito aos termos da Anthropic. Qualquer provedor compatível com Anthropic
|
|
524
|
+
que você tenha configurado fica disponível da mesma forma.
|
|
525
|
+
|
|
526
|
+
<p align="center">
|
|
527
|
+
<img src="docs/media/add-provider.png" width="880" alt="Adicionar provedor: assinatura do ChatGPT, presets, provedores compatíveis com OpenAI">
|
|
528
|
+
</p>
|
|
529
|
+
|
|
530
|
+
## Provedores
|
|
531
|
+
|
|
532
|
+
| Provedor | Tipo | Autenticação | Lista de modelos | Observações |
|
|
533
|
+
|---|---|---|---|---|
|
|
534
|
+
| Assinatura do ChatGPT | backend do Codex | vários logins, trocando quando um se esgota (o login do Codex também é reaproveitado) | lida da sua assinatura (GPT-6 Sol, Luna, Astra, GPT-5.6 …) | esforço low…max (Luna: ultra), cache de prompt 94–99% |
|
|
535
|
+
| Google Gemini | API Gemini | chave de API do AI Studio, ou login com conta do Google (Antigravity, veja as Perguntas frequentes) | descoberta automática | traduzido (Messages ⇄ generateContent), thought signatures mantidas entre turnos |
|
|
536
|
+
| OpenRouter | compatível com Anthropic | chave de API | mais de 400, descoberta automática | suporte a esforço por modelo lido da API |
|
|
537
|
+
| DeepSeek, Kimi, Z.ai GLM, MiniMax, Qwen (intl / cn) | compatível com Anthropic | chave de API | preset | conferido com a documentação do fornecedor |
|
|
538
|
+
| xAI Grok, Mistral, Groq, Together, Fireworks | compatível com OpenAI | chave de API | descoberta automática | traduzido (Chat Completions / Responses) |
|
|
539
|
+
| Ollama, LM Studio | compatível com OpenAI, local | nenhuma | descoberta automática | |
|
|
540
|
+
| Anthropic | nativo | login(s) do Claude ou chave de API | modelos Claude | rodízio opcional, com a conversa fixa na conta, para Claude Desktop/Code; o Codex escolhe um login |
|
|
541
|
+
| Qualquer outro | personalizado | à sua escolha | descoberta automática | qualquer endpoint compatível com Anthropic ou OpenAI |
|
|
542
|
+
|
|
543
|
+
As requisições para provedores compatíveis são limpas dos campos exclusivos da Anthropic
|
|
544
|
+
(threads do lado do servidor, ferramentas diferidas, gerenciamento de contexto, vínculos de
|
|
545
|
+
thinking), e o esforço é limitado por modelo, para que os fornecedores não respondam 400 ao
|
|
546
|
+
formato de requisição do Claude Code.
|
|
547
|
+
|
|
548
|
+
## Como funciona
|
|
549
|
+
|
|
550
|
+
```
|
|
551
|
+
Claude Desktop / claude CLI ──HTTPS_PROXY──▶ ClaudeRipple ──▶ api.anthropic.com (unchanged)
|
|
552
|
+
│
|
|
553
|
+
mapped model ──────────┼──▶ chatgpt.com/backend-api (Responses ⇄ Messages)
|
|
554
|
+
├──▶ Anthropic-compatible vendors (+ compat layer)
|
|
555
|
+
├──▶ OpenAI-compatible vendors (Messages ⇄ Chat/Responses)
|
|
556
|
+
└──▶ Google Gemini (Messages ⇄ generateContent)
|
|
557
|
+
Codex app / CLI ──/v1/responses──▶ ClaudeRipple ingress ──▶ Claude (your login or API key) / vendors
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
- A CLI do Claude Code lê `HTTPS_PROXY` e `NODE_EXTRA_CA_CERTS` de
|
|
561
|
+
`~/.claude/settings.json` (o caminho de proxy corporativo documentado pela Anthropic). Só
|
|
562
|
+
esse processo confia na CA local do ClaudeRipple; o armazenamento de certificados do sistema operacional não é
|
|
563
|
+
tocado, a menos que você ative o modo seletor.
|
|
564
|
+
- O modo seletor faz o próprio tráfego do app para o claude.ai passar pelo proxy e adiciona
|
|
565
|
+
seus modelos à lista do seletor que o app busca ao iniciar. Para desligar, basta um clique.
|
|
566
|
+
- Ao reiniciar, o roteador espera as chamadas em andamento terminarem; ele se encerra sozinho
|
|
567
|
+
após falhas repetidas no upstream para que o launchd o reinicie, rotaciona os logs e nunca
|
|
568
|
+
descarta uma requisição em silêncio.
|
|
569
|
+
|
|
570
|
+
Detalhes, com as fontes: [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).
|
|
571
|
+
|
|
572
|
+
## Privacidade
|
|
573
|
+
|
|
574
|
+
Tudo roda em 127.0.0.1. As chaves de API ficam em `~/.clauderipple/config.json`, e as
|
|
575
|
+
autorizações OAuth do Claude adicionadas, em `~/.clauderipple/claude-accounts.json` (ambos
|
|
576
|
+
com permissão 0600). As APIs de administração e os logs não expõem nem tokens nem ids de
|
|
577
|
+
conta do upstream. Os únicos destinos de rede são os provedores que você configura. Não há
|
|
578
|
+
telemetria.
|
|
579
|
+
|
|
580
|
+
## Status: alfa
|
|
581
|
+
|
|
582
|
+
Em uso diário pelo autor, mas ainda jovem. Espere algumas arestas:
|
|
583
|
+
|
|
584
|
+
- **O suporte a Windows é novo (2026-09-14).** Instalação, configuração, o roteador, o login,
|
|
585
|
+
o seletor e uma chamada real ao GPT foram verificados em hardware x64; a recuperação após
|
|
586
|
+
falhas, em arm64. A janela ainda usa a barra de título padrão do Windows. Os builds para
|
|
587
|
+
Windows não são assinados; veja a observação em Instalação.
|
|
588
|
+
- **O suporte a Linux é novo (2026-09-24)**, uma contribuição acompanhada de medições no
|
|
589
|
+
Ubuntu 24.04 x64 (instalação, uma requisição da aba Code, reinício no meio do streaming,
|
|
590
|
+
modo seletor, desinstalação). Exige uma sessão de usuário do systemd; outras distribuições
|
|
591
|
+
e arm64 não foram testados.
|
|
592
|
+
- ChatGPT, OpenRouter e Claude no Codex foram verificados com contas reais; os outros presets
|
|
593
|
+
seguem a documentação oficial dos fornecedores.
|
|
594
|
+
- Um modelo adicionado ao seletor fica disponível a partir da sessão seguinte.
|
|
595
|
+
- O Claude Code e o Codex mudam os protocolos com frequência; uma atualização de cliente
|
|
596
|
+
pode quebrar uma tradução até o ClaudeRipple se ajustar. Relatos de bugs e logs são
|
|
597
|
+
bem-vindos.
|
|
598
|
+
|
|
599
|
+
## Sem afiliação
|
|
600
|
+
|
|
601
|
+
O ClaudeRipple é um projeto open source independente. Não tem afiliação com a Anthropic nem
|
|
602
|
+
com a OpenAI, nem é endossado ou patrocinado por nenhuma delas. Claude e Claude Code são
|
|
603
|
+
marcas comerciais da Anthropic, PBC. ChatGPT e Codex são marcas comerciais da OpenAI.
|
|
604
|
+
|
|
605
|
+
## Licença
|
|
606
|
+
|
|
607
|
+
Copyright (c) 2026 pbj. GPL-3.0 — veja [LICENSE](LICENSE). Use à vontade; se você distribuir
|
|
608
|
+
uma versão modificada, distribua também o código-fonte dela sob a mesma licença.
|