clauderipple 0.8.3 → 0.8.5
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 +22 -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 +1546 -10
- package/dist/ui/index.html +1 -1
- package/dist/ui/style.css +2 -1
- package/package.json +7 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.8.5 — 2026-10-07
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- **The ChatGPT provider no longer says Plus/Pro only.** Any ChatGPT plan that includes Codex
|
|
8
|
+
(Plus, Pro, Business, and Enterprise/Edu with Codex on) signs in the same way; the dashboard
|
|
9
|
+
now says so in every language.
|
|
10
|
+
|
|
11
|
+
## 0.8.4 — 2026-10-06
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- **Four more languages.** The dashboard, the tray and the README now come in Simplified
|
|
16
|
+
Chinese, Japanese, Spanish and Brazilian Portuguese as well as English and Korean. The
|
|
17
|
+
dashboard follows your browser or OS language; pick another from the selector at the bottom
|
|
18
|
+
of the sidebar.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- **Releases publish themselves.** A version tag now publishes to npm from GitHub Actions, with
|
|
23
|
+
a signed provenance statement, so fixes reach `clauderipple update` without waiting on anyone.
|
|
24
|
+
|
|
3
25
|
## 0.8.3 — 2026-10-06
|
|
4
26
|
|
|
5
27
|
### Fixed
|
package/README.es.md
ADDED
|
@@ -0,0 +1,623 @@
|
|
|
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> · <b>Español</b> · <a href="README.pt-BR.md">Português (BR)</a></p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<b>El chat sigue siendo Claude. Solo Code pasa a GPT.</b><br>
|
|
11
|
+
El ajuste propio de Claude Desktop para usar otros modelos cambia <b>toda la app</b>, y con ella se van el chat,
|
|
12
|
+
Remote Control desde el teléfono y los conectores.<br>ClaudeRipple no desactiva nada: mantienes la sesión iniciada en tu
|
|
13
|
+
suscripción de Claude mientras GPT, DeepSeek, Kimi, Grok<br>o cualquiera de más de 400 modelos responden en la
|
|
14
|
+
<b>pestaña Code</b>. Y también Claude dentro de la <b>app de Codex</b> y de <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="Recorrido por la configuración de ClaudeRipple: estado, asignación de modelos, proveedores, clientes, registro de solicitudes">
|
|
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="Nombres reales en el selector de Claude Desktop"><br><sub>Modelos GPT con su nombre real en el selector de Claude Desktop</sub></td>
|
|
35
|
+
<td align="center" width="66%"><img src="docs/media/luna-answer.png" alt="GPT-5.6 Luna respondiendo en la pestaña Code de Claude Desktop"><br><sub>GPT-5.6 Luna respondiendo en la pestaña Code, con el esfuerzo que elegiste</sub></td>
|
|
36
|
+
</tr>
|
|
37
|
+
<tr>
|
|
38
|
+
<td colspan="2" align="center"><img src="docs/media/subagents.png" alt="Subagentes con GPT-5.6 Terra y Sol, identificados en el panel de tareas en segundo plano"><br><sub>Subagentes con GPT-5.6 Terra y Sol, identificados en el panel de tareas en segundo plano</sub></td>
|
|
39
|
+
</tr>
|
|
40
|
+
</table>
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 1P, no 3P: la diferencia por la que existe este proyecto
|
|
45
|
+
|
|
46
|
+
Claude Desktop ya incluye una forma oficial de usar otros modelos: el ajuste de **gateway
|
|
47
|
+
de inferencia**, lo que la app llama modo de terceros o **3P**. Activarlo no es una
|
|
48
|
+
elección por sesión. Al arrancar, cambia **toda la app** a otro modo de despliegue, y
|
|
49
|
+
ese modo es otro producto:
|
|
50
|
+
|
|
51
|
+
- La ventana deja de cargar `claude.ai` y carga en su lugar un paquete local. Las
|
|
52
|
+
llamadas a `/api/` y `/v1/` de claude.ai responden `custom_3p_not_available` 503.
|
|
53
|
+
- El "chat" ya no es el chat de claude.ai. Es una sesión de agente local de Claude Code.
|
|
54
|
+
- Remote Control y las sesiones laterales se desactivan por completo
|
|
55
|
+
(`shouldEnableSessionsBridge()` devuelve false).
|
|
56
|
+
- Los conectores de claude.ai de la propia Anthropic, Claude Design, la continuidad en
|
|
57
|
+
dispositivos móviles y la búsqueda en el chat desaparecen con él.
|
|
58
|
+
|
|
59
|
+
No hay término medio. "El chat en Claude y Code en el gateway" es imposible para
|
|
60
|
+
cualquiera, porque el modo 1P no enruta absolutamente nada a través del gateway. (Todo
|
|
61
|
+
esto se ha extraído del propio paquete de la app; consulta [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) §2).
|
|
62
|
+
|
|
63
|
+
**ClaudeRipple nunca toca ese ajuste.** La app mantiene la sesión iniciada en tu
|
|
64
|
+
suscripción de Claude en modo 1P, y otro modelo responde en la pestaña Code y en sus
|
|
65
|
+
subagentes, con su nombre real en el selector de modelos y con el esfuerzo de
|
|
66
|
+
razonamiento que elegiste. No cambias tu cuenta de Claude por una de GPT. Conservas
|
|
67
|
+
las dos, en una sola app.
|
|
68
|
+
|
|
69
|
+
Quedarse en 1P tiene tres consecuencias, y ninguna herramienta basada en el gateway puede ofrecer ninguna de ellas:
|
|
70
|
+
|
|
71
|
+
- **Programa desde el teléfono, con GPT.** Remote Control está desactivado en 3P. Aquí
|
|
72
|
+
está activado, así que puedes elegir un modelo, enviar una tarea desde el teléfono y
|
|
73
|
+
ver cómo llegan los commits.
|
|
74
|
+
- **Conectores activos mientras trabaja otro modelo.** 3P sustituye las llamadas a
|
|
75
|
+
claude.ai por stubs, y con ellas caen los conectores de la propia Anthropic. Lee un
|
|
76
|
+
documento de Google Drive y deja que GPT escriba el código.
|
|
77
|
+
- **Sesiones en la nube y laterales.** Desaparecen en 3P. Aquí siguen intactas.
|
|
78
|
+
|
|
79
|
+
Si pagas Claude, 3P no es una opción: tira a la basura la mitad de la suscripción
|
|
80
|
+
que estás pagando. Esta es la única forma de conservarla y, aun así, elegir el
|
|
81
|
+
modelo.
|
|
82
|
+
|
|
83
|
+
## Preguntas frecuentes
|
|
84
|
+
|
|
85
|
+
### ¿Puedo usar GPT en la app Claude Desktop?
|
|
86
|
+
|
|
87
|
+
Sí, en la **pestaña Code** y sus subagentes. Instala ClaudeRipple, inicia sesión con una
|
|
88
|
+
suscripción ChatGPT Plus o Pro, y GPT (GPT-6 Sol, Luna, Astra, GPT-5.6 Terra y el resto)
|
|
89
|
+
aparece con su nombre real en el selector de modelos, con el esfuerzo de razonamiento
|
|
90
|
+
que elijas. La app en sí no se modifica ni se cambia a ningún otro modo. La pestaña
|
|
91
|
+
general de **chat** sigue siendo Claude: ninguna herramienta puede redirigirla sin pasar
|
|
92
|
+
toda la app al modo gateway (consulta [1P, no 3P](#1p-no-3p-la-diferencia-por-la-que-existe-este-proyecto)).
|
|
93
|
+
|
|
94
|
+
### ¿Cómo uso GPT en Claude Code?
|
|
95
|
+
|
|
96
|
+
La misma instalación sirve para la CLI `claude` en la terminal. ClaudeRipple es un proxy local
|
|
97
|
+
que Claude Code usa mediante dos líneas en `~/.claude/settings.json`, así que tus
|
|
98
|
+
skills, hooks, servidores MCP, `CLAUDE.md` y subagentes siguen funcionando mientras
|
|
99
|
+
responde otro modelo.
|
|
100
|
+
|
|
101
|
+
### ¿Tengo que activar el ajuste de "inferencia de terceros" (gateway) de Claude Desktop?
|
|
102
|
+
|
|
103
|
+
No, y no deberías. Ese ajuste pasa toda la app al modo 3P, que deja de cargar
|
|
104
|
+
claude.ai, sustituye el chat por una sesión de agente local y desactiva Remote Control.
|
|
105
|
+
ClaudeRipple nunca lo toca.
|
|
106
|
+
|
|
107
|
+
### ¿Perderé el chat de claude.ai, Remote Control o mis conectores?
|
|
108
|
+
|
|
109
|
+
No. La app mantiene la sesión iniciada en tu suscripción de Claude, así que el chat,
|
|
110
|
+
Remote Control desde el teléfono, las sesiones en la nube y los conectores de la propia
|
|
111
|
+
Anthropic siguen funcionando. Ese es precisamente el sentido de quedarse en 1P.
|
|
112
|
+
|
|
113
|
+
### ¿Puedo seguir usando el propio Claude?
|
|
114
|
+
|
|
115
|
+
Sí. La asignación de modelos funciona por nombre de modelo: deja un nombre asignado a
|
|
116
|
+
Claude y responderá Claude. La mayoría de la gente asigna uno o dos nombres a GPT y deja
|
|
117
|
+
el resto como está.
|
|
118
|
+
|
|
119
|
+
### ¿Necesito una clave de API de OpenAI?
|
|
120
|
+
|
|
121
|
+
No. Sirve cualquier plan de ChatGPT que incluya Codex: Plus, Pro y Business, y Enterprise o
|
|
122
|
+
Edu si el administrador del espacio de trabajo ha activado Codex. Inicias sesión desde la
|
|
123
|
+
app y no interviene ninguna clave de API. Se aplican los límites de uso del plan; cuando se
|
|
124
|
+
agotan, se siguen usando los créditos de Codex que hayas comprado. Las claves de API son
|
|
125
|
+
para los demás proveedores (DeepSeek, Kimi, GLM, OpenRouter y cualquier otro con un
|
|
126
|
+
endpoint compatible con Anthropic u OpenAI).
|
|
127
|
+
|
|
128
|
+
### ¿Qué modelos puedo usar?
|
|
129
|
+
|
|
130
|
+
GPT con una suscripción de ChatGPT, y DeepSeek, Kimi, GLM, Grok, Qwen y más de 400
|
|
131
|
+
modelos más a través de OpenRouter o de una clave de API directa. Los modelos de Claude
|
|
132
|
+
siguen funcionando como siempre.
|
|
133
|
+
|
|
134
|
+
### ¿Funciona en Windows?
|
|
135
|
+
|
|
136
|
+
Sí, en Windows y macOS, arm64 y x64. La instalación, el panel, el reinicio y la
|
|
137
|
+
desinstalación se han medido en Windows 11 arm64; el runtime x64 se ha medido con
|
|
138
|
+
emulación. Linux también funciona donde haya una sesión de usuario de systemd: la
|
|
139
|
+
instalación, una solicitud de la pestaña Code a través del router, un reinicio en mitad
|
|
140
|
+
de una respuesta en streaming y la desinstalación se han medido en Ubuntu 24.04 x64 con
|
|
141
|
+
Claude Desktop 2.2553.13, igual que el modo selector: los modelos de `cli.extraModels`
|
|
142
|
+
aparecen en el selector de la pestaña Code junto a los de Claude.
|
|
143
|
+
|
|
144
|
+
### ¿Se envía mi código a algún otro sitio?
|
|
145
|
+
|
|
146
|
+
No. El proxy se ejecuta en tu propio equipo. Las solicitudes van al proveedor que
|
|
147
|
+
configuraste y a ningún otro sitio, y las credenciales se quedan en tu directorio
|
|
148
|
+
personal. Consulta [Privacidad](#privacidad).
|
|
149
|
+
|
|
150
|
+
### ¿Me suspenderán la cuenta de Claude? ¿Va en contra de los términos de Anthropic?
|
|
151
|
+
|
|
152
|
+
Lo que ClaudeRipple hace con Claude es poco y verificable: una solicitud que se queda en
|
|
153
|
+
Claude sale de tu equipo byte a byte tal como la envió Claude Code, y una solicitud
|
|
154
|
+
redirigida a GPT o a otro proveedor nunca llega a Anthropic. Funciona mediante los ajustes
|
|
155
|
+
de proxy y certificados que Claude Code documenta para redes corporativas (`HTTPS_PROXY`,
|
|
156
|
+
`NODE_EXTRA_CA_CERTS` — [Enterprise network configuration](https://code.claude.com/docs/en/corporate-proxy)),
|
|
157
|
+
no parcheando la app. Los casos de cuentas suspendidas que se han reportado se refieren a
|
|
158
|
+
la dirección contraria: el inicio de sesión de una suscripción de Claude usado desde
|
|
159
|
+
**otro** programa. ClaudeRipple tiene una función opcional de ese tipo: Claude dentro de
|
|
160
|
+
Codex usando el inicio de sesión de tu suscripción. Ese uso está sujeto a los términos de
|
|
161
|
+
Anthropic; con una clave de API de Anthropic, la cuestión no se plantea. Rotar varias
|
|
162
|
+
suscripciones de Claude también es decisión tuya conforme a esos términos. Solo Anthropic
|
|
163
|
+
puede decir cómo trata una cuenta, así que nada de lo que se dice aquí es una promesa.
|
|
164
|
+
|
|
165
|
+
### ¿Y Gemini con una cuenta de Google?
|
|
166
|
+
|
|
167
|
+
Una clave de API de AI Studio es la vía que Google admite, y la segura. El inicio de
|
|
168
|
+
sesión con cuenta de Google (Antigravity) es distinto: los [términos de Antigravity](https://antigravity.google/terms)
|
|
169
|
+
de Google (sección 6) y las [preguntas frecuentes de Gemini CLI](https://geminicli.com/docs/resources/faq/)
|
|
170
|
+
califican de incumplimiento usar esas credenciales desde otro programa. En febrero de 2026,
|
|
171
|
+
Google suspendió cuentas usadas de esta forma (la suspensión también les cortó el acceso a
|
|
172
|
+
Gemini CLI y a Code Assist) y [afirmó](https://github.com/google-gemini/gemini-cli/discussions/20632)
|
|
173
|
+
que, ante una segunda infracción, la suspensión es permanente. ClaudeRipple ofrece este
|
|
174
|
+
inicio de sesión porque otros lo hacen y hubo quien lo pidió, muestra esta advertencia
|
|
175
|
+
antes de empezar y no hace nada para ocultar el tráfico. Si decides usarlo, hazlo con una
|
|
176
|
+
cuenta secundaria.
|
|
177
|
+
|
|
178
|
+
### ¿Puedo usar varias cuentas de ChatGPT?
|
|
179
|
+
|
|
180
|
+
Sí. Cada `clauderipple login` (o **+ Añadir cuenta de ChatGPT** en el panel) añade una.
|
|
181
|
+
Cuando una cuenta alcanza su límite de uso, la misma solicitud pasa a la siguiente cuenta y
|
|
182
|
+
la agotada descansa hasta que se restablece su ventana; una conversación se mantiene en la
|
|
183
|
+
cuenta que respondió, para conservar su caché de prompts. Esto se aplica a la pestaña Code
|
|
184
|
+
de Claude Desktop, a Claude Code y a GPT en la app y la CLI de Codex.
|
|
185
|
+
|
|
186
|
+
### ¿Puedo usar Claude dentro de Codex?
|
|
187
|
+
|
|
188
|
+
Sí. `clauderipple codex on` añade ClaudeRipple como proveedor, y los modelos de Claude
|
|
189
|
+
aparecen con su propio nombre en la lista de modelos de la app y la CLI de Codex.
|
|
190
|
+
Responden a través de tu inicio de sesión de Claude Code o de una clave de API de
|
|
191
|
+
Anthropic. Consulta [App de Codex y Codex CLI](#app-de-codex-y-codex-cli).
|
|
192
|
+
|
|
193
|
+
### ¿Puede generar imágenes?
|
|
194
|
+
|
|
195
|
+
Sí, con una suscripción de ChatGPT y sin clave de API:
|
|
196
|
+
`clauderipple image "a red paper boat" -o boat.png --aspect square`. `--ref FILE` añade
|
|
197
|
+
una imagen de referencia y `--transparent`, un fondo transparente. Cada imagen tarda unos
|
|
198
|
+
30 segundos, y la suscripción elige la resolución y la calidad. A los subagentes que
|
|
199
|
+
genera ClaudeRipple se les indica esa misma llamada, así que también pueden crear
|
|
200
|
+
imágenes. Consulta [Claude Code](#claude-code-terminal-remote-control-subagentes).
|
|
201
|
+
|
|
202
|
+
### ¿GPT rinde peor dentro de Claude Code?
|
|
203
|
+
|
|
204
|
+
El prompt del sistema y las descripciones de herramientas de Claude Code están escritos
|
|
205
|
+
para Claude, así que otro modelo lee instrucciones pensadas para otro, y puede comportarse
|
|
206
|
+
de forma algo distinta que en su propio cliente. ClaudeRipple le dice a cada modelo su
|
|
207
|
+
propio nombre y esfuerzo, adapta los esquemas de herramientas que un proveedor rechazaría
|
|
208
|
+
y te permite añadir instrucciones por proveedor. Una configuración habitual es Claude
|
|
209
|
+
como modelo principal con GPT o DeepSeek como subagentes.
|
|
210
|
+
|
|
211
|
+
### ¿En qué se diferencia de CC Switch, opencodex o claude-code-router?
|
|
212
|
+
|
|
213
|
+
Consulta la [tabla comparativa](#una-herramienta-en-lugar-de-cuatro). En resumen:
|
|
214
|
+
ClaudeRipple llega a la pestaña Code de Claude **Desktop** mientras la app mantiene la
|
|
215
|
+
sesión iniciada en Claude, y muestra otros modelos en su selector con su nombre real.
|
|
216
|
+
CC Switch también llega a la app de escritorio, pero activando su modo gateway (3P).
|
|
217
|
+
|
|
218
|
+
### ¿Es gratis?
|
|
219
|
+
|
|
220
|
+
Sí. ClaudeRipple es de código abierto con licencia GPL-3.0. Solo pagas las suscripciones o
|
|
221
|
+
claves de API que ya usas.
|
|
222
|
+
|
|
223
|
+
## Una herramienta en lugar de cuatro
|
|
224
|
+
|
|
225
|
+
Hay herramientas similares que permiten que la CLI de Claude Code o Codex CLI usen otros
|
|
226
|
+
modelos, pero o bien no pueden llegar a la **app de escritorio** de Claude, o solo llegan
|
|
227
|
+
a través de su modo gateway (3P), y en cuanto cambias de modelo pierdes la parte de la
|
|
228
|
+
suscripción de Claude (chat de claude.ai, Remote Control, sesiones en la nube).
|
|
229
|
+
ClaudeRipple cubre la app de escritorio, la terminal y Codex desde una sola app de la
|
|
230
|
+
barra de menús, usa ambas suscripciones a la vez y mantiene intacto el harness de
|
|
231
|
+
Claude Code: tus skills, hooks, servidores MCP, `CLAUDE.md`, subagentes y conectores de
|
|
232
|
+
claude.ai siguen funcionando mientras otro modelo hace el trabajo de pensar.
|
|
233
|
+
|
|
234
|
+
| | ClaudeRipple | CC Switch (revisado el 2026-09-24) | opencodex / openclaude (revisado el 2026-09-16) | claude-code-router | Modo gateway (3P) de Claude Desktop |
|
|
235
|
+
|---|---|---|---|---|---|
|
|
236
|
+
| Pestaña Code de Claude **Desktop** **sin** modo gateway (3P) | ✅ | ❌ ² | ❌ ¹ | ❌ | ❌ por definición |
|
|
237
|
+
| Conserva el chat de claude.ai, Remote Control, las sesiones en la nube y los conectores | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
238
|
+
| Suscripciones de Claude y GPT a la vez | ✅ | ❌ un proveedor cada vez | ❌ todo o nada | ❌ | ❌ |
|
|
239
|
+
| Nombres reales de los modelos en el selector de Desktop | ✅ | ❌ nombres de rol `claude-*` ² | ❌ | ❌ | parcial |
|
|
240
|
+
| Varias cuentas de ChatGPT, con cambio cuando una se agota (Desktop y Codex) | ✅ | ❌ cambio manual ³ | ✅ | ❌ | ❌ |
|
|
241
|
+
| CLI `claude` en la terminal | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
242
|
+
| **App** de Codex y Codex CLI → Claude | ✅ | ✅ | ✅ | ❌ | ❌ |
|
|
243
|
+
| Caché de prompts en proveedores con traducción de protocolo | **94–99 %** medido | sin medir | sin medir | variable | no aplica |
|
|
244
|
+
| Subagentes identificados por su modelo real en el panel de tareas | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
245
|
+
| Interfaz gráfica de configuración, sin necesidad de terminal | ✅ | ✅ | ❌ | ❌ | ❌ |
|
|
246
|
+
| App firmada y notarizada con su propio runtime | ✅ | ✅ | ❌ | ❌ | – |
|
|
247
|
+
|
|
248
|
+
¹ El README de opencodex mostraba Claude Desktop en una demo, pero no publicaba pasos de
|
|
249
|
+
configuración para ello, ni en el repositorio ni en su sitio de documentación (revisado el
|
|
250
|
+
2026-09-16). En ese momento, la única vía pública para llegar a la app de escritorio era el
|
|
251
|
+
ajuste oficial del gateway: la última columna.
|
|
252
|
+
|
|
253
|
+
² CC Switch llega a Claude Desktop escribiendo el perfil de terceros de la app
|
|
254
|
+
(`Claude-3p/claude_desktop_config.json`, `"inferenceProvider": "gateway"`), que es la
|
|
255
|
+
última columna. A través de su gateway local, el selector solo muestra los nombres de rol
|
|
256
|
+
`claude-sonnet-*`, `claude-opus-*` y `claude-haiku-*` ([su manual](https://github.com/farion1231/cc-switch/blob/main/docs/user-manual/en/2-providers/2.6-claude-desktop.md)).
|
|
257
|
+
CC Switch gestiona más herramientas de las que cubre esta tabla (Gemini CLI, OpenCode y
|
|
258
|
+
otras) y sincroniza los servidores MCP y las skills entre ellas.
|
|
259
|
+
|
|
260
|
+
³ Cada cuenta de ChatGPT está vinculada a su propia tarjeta de proveedor, y las tarjetas
|
|
261
|
+
oficiales de ChatGPT quedan fuera de la cola de failover (notas de la versión v3.20.0).
|
|
262
|
+
|
|
263
|
+
El propio ajuste de "inferencia de terceros" de la app de escritorio cambia toda la app a
|
|
264
|
+
otro modo: pierdes el chat de claude.ai, Remote Control y las sesiones en la nube. Las
|
|
265
|
+
herramientas que sustituyen `ANTHROPIC_BASE_URL` nunca llegan a la app de escritorio, y
|
|
266
|
+
las que sí llegan escriben ese mismo ajuste. ClaudeRipple, en cambio, es un
|
|
267
|
+
pequeño proxy HTTPS en el que solo confía el proceso de Claude Code: las solicitudes de
|
|
268
|
+
los modelos que asignas van a tu proveedor, y todo lo demás va a Anthropic byte a byte.
|
|
269
|
+
|
|
270
|
+
## Qué obtienes
|
|
271
|
+
|
|
272
|
+
- **Cualquier modelo en Claude Desktop y Claude Code.** GPT-6 Sol / Luna / Astra y
|
|
273
|
+
GPT-5.6 Terra / Sol / Luna con tu suscripción ChatGPT Plus/Pro (los modelos nuevos
|
|
274
|
+
aparecen el mismo día en que OpenAI los ofrece), Google Gemini, o DeepSeek, Kimi, GLM,
|
|
275
|
+
MiniMax, Qwen, Grok, Mistral, Groq, Together, Fireworks, OpenRouter (más de 400
|
|
276
|
+
modelos) y Ollama / LM Studio en local. Con su nombre real en el selector, o asignados
|
|
277
|
+
a un nombre de Claude.
|
|
278
|
+
- **Claude en la app de Codex y en Codex CLI.** Un endpoint local compatible con OpenAI
|
|
279
|
+
que Codex trata como un proveedor; los modelos de Claude aparecen en la propia lista de
|
|
280
|
+
modelos de Codex. Usa tu inicio de sesión actual de Claude Code o una clave de API de
|
|
281
|
+
Anthropic.
|
|
282
|
+
- **Varias cuentas de Claude sin romper la caché de prompts.** Activa la rotación de
|
|
283
|
+
cuentas en un proveedor nativo de Claude, añade suscripciones desde el panel y cada
|
|
284
|
+
conversación se mantiene en la cuenta que respondió. Antes de que empiece la respuesta,
|
|
285
|
+
un rechazo por cuota o por autenticación pasa ese turno a la siguiente cuenta. Esta ruta
|
|
286
|
+
nativa de Claude Desktop/Code es independiente de la entrada traducida de Codex, que
|
|
287
|
+
elige un inicio de sesión disponible y no rota cuentas.
|
|
288
|
+
- **Varias cuentas de ChatGPT.** Cada `clauderipple login` (o **+ Añadir cuenta de ChatGPT**
|
|
289
|
+
en el panel) añade una. Cuando una cuenta alcanza su límite, la siguiente toma el relevo
|
|
290
|
+
en la misma solicitud y la agotada descansa hasta que se restablece su ventana; una
|
|
291
|
+
conversación se mantiene en la cuenta que respondió, para conservar su caché. Esto
|
|
292
|
+
cubre la pestaña Code de Claude Desktop y los subagentes **y GPT en la app y la CLI de
|
|
293
|
+
Codex**: Codex conserva su propio inicio de sesión y pasa a la siguiente cuenta sin
|
|
294
|
+
cerrar sesión.
|
|
295
|
+
- **El harness completo de Claude Code, intacto.** Skills, hooks, MCP, `CLAUDE.md`,
|
|
296
|
+
subagentes, modo plan, Remote Control en tu teléfono: no se desactiva nada.
|
|
297
|
+
- **Correcto por construcción.** Se conserva la caché de prompts (puntos de corte de caché de
|
|
298
|
+
Anthropic y prefijos estables de OpenAI), se gestionan los hilos del lado del servidor
|
|
299
|
+
de Claude Code, las llamadas a herramientas y las imágenes se transmiten en ambos
|
|
300
|
+
sentidos, el esfuerzo de razonamiento se limita a los niveles que admite cada modelo y
|
|
301
|
+
se eliminan los campos exclusivos de Anthropic para los proveedores compatibles.
|
|
302
|
+
- **Un registro de solicitudes de verdad.** Quién preguntó, qué modelo respondió, tokens
|
|
303
|
+
de entrada / en caché / de salida, latencia y estado, por solicitud, con un resumen de
|
|
304
|
+
la última hora.
|
|
305
|
+
- **Etiquetas de subagentes.** El panel de tareas en segundo plano muestra
|
|
306
|
+
`Terra·high · Review` en lugar de un genérico "Agent".
|
|
307
|
+
- **La ruta, donde escribes.** Un mod de Claude Code añade una línea encima del prompt:
|
|
308
|
+
adónde fue tu última solicitud, su esfuerzo, el acierto de caché y el tiempo. `Log` (o
|
|
309
|
+
`/ripple-log`) abre el registro de solicitudes en un panel lateral, con colores según el
|
|
310
|
+
proveedor y el resultado; `×` (o `/ripple-bar`) oculta la línea. El mismo mod mantiene a
|
|
311
|
+
un worker en su propio modelo cuando la llamada a Agent indica otro, y lee su marcador
|
|
312
|
+
`[[ripple: name@level]]` esté donde esté en el prompt. Un solo interruptor en la
|
|
313
|
+
pantalla Clientes, o `clauderipple mod on`.
|
|
314
|
+
- **Imágenes con tu suscripción de ChatGPT.** `clauderipple image "<prompt>"`, con
|
|
315
|
+
imágenes de referencia y fondos transparentes. A los subagentes se les explica cómo
|
|
316
|
+
hacerlo, así que un worker de GPT o DeepSeek puede crear una imagen y verla sin una
|
|
317
|
+
herramienta de imágenes.
|
|
318
|
+
- **Workers ligeros, si los quieres.** Un solo interruptor da a los subagentes generados
|
|
319
|
+
solo las herramientas que usa un worker, en lugar de todos los servidores MCP y plugins
|
|
320
|
+
de la sesión: la primera solicitud de un worker bajó de 33k a 9k tokens.
|
|
321
|
+
- **Hecho para quien no quiere usar la terminal.** Ajustes predefinidos de proveedores con
|
|
322
|
+
prueba de conexión y descubrimiento de modelos en un clic, asignación de modelos con
|
|
323
|
+
menús desplegables, guardado automático e interfaz en coreano e inglés. Una app de la
|
|
324
|
+
barra de menús que trae su propio runtime y se configura sola en el primer arranque.
|
|
325
|
+
Firmada y notarizada.
|
|
326
|
+
|
|
327
|
+
<p align="center">
|
|
328
|
+
<img src="docs/media/mapping.png" width="880" alt="Asignación de modelos: qué modelo responde por cada nombre de Claude, con esfuerzo de razonamiento por modelo">
|
|
329
|
+
</p>
|
|
330
|
+
|
|
331
|
+
## Instalación
|
|
332
|
+
|
|
333
|
+
**macOS**
|
|
334
|
+
|
|
335
|
+
```sh
|
|
336
|
+
curl -fsSL https://raw.githubusercontent.com/PBJ-2/clauderipple/main/scripts/install.sh | sh
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
**Windows** (PowerShell)
|
|
340
|
+
|
|
341
|
+
```powershell
|
|
342
|
+
irm https://raw.githubusercontent.com/PBJ-2/clauderipple/main/scripts/install.ps1 | iex
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
**Linux** (una sesión de escritorio con systemd)
|
|
346
|
+
|
|
347
|
+
```sh
|
|
348
|
+
curl -fsSL https://raw.githubusercontent.com/PBJ-2/clauderipple/main/scripts/install.sh | sh
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
El router se ejecuta como servicio de systemd por usuario: `systemctl --user status clauderipple`,
|
|
352
|
+
y `journalctl --user -u clauderipple` para ver lo que ha registrado. El modo selector confía en
|
|
353
|
+
la CA local a través de la base de datos NSS que lee Chromium (`~/.pki/nssdb`, solo para tu
|
|
354
|
+
usuario, sin sudo), para lo que hace falta `certutil`: ejecuta `sudo apt install libnss3-tools`
|
|
355
|
+
(Fedora: `sudo dnf install nss-tools`) antes de `clauderipple picker on`.
|
|
356
|
+
|
|
357
|
+
Esos son todos los requisitos previos. El script usa el Node 24+ que ya tengas y, si no
|
|
358
|
+
tienes ninguno, descarga la compilación oficial en `~/.clauderipple/runtime` y la verifica
|
|
359
|
+
con la suma de comprobación que publica nodejs.org. Después configura ClaudeRipple: un
|
|
360
|
+
certificado local, dos líneas en `~/.claude/settings.json` y un router en segundo plano
|
|
361
|
+
que se inicia con tu equipo. Sin permisos de administrador y sin contraseña.
|
|
362
|
+
|
|
363
|
+
Si ya tienes Node instalado, puedes saltarte el script:
|
|
364
|
+
|
|
365
|
+
```sh
|
|
366
|
+
npm install -g clauderipple
|
|
367
|
+
clauderipple install
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
Luego abre el panel y añade un proveedor:
|
|
371
|
+
|
|
372
|
+
```sh
|
|
373
|
+
clauderipple ui
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
**Proveedores** → añade ChatGPT o pega una clave de API → **Asignación de modelos**.
|
|
377
|
+
|
|
378
|
+
**La app de la barra de menús / bandeja** es opcional. Muestra el estado del router y abre
|
|
379
|
+
el panel con un clic:
|
|
380
|
+
|
|
381
|
+
```sh
|
|
382
|
+
clauderipple tray
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
Funciona con Electron, que ocupa unos 270 MB y por eso no se instala por defecto.
|
|
386
|
+
`clauderipple tray --install` lo descarga una sola vez; todo lo demás funciona sin él.
|
|
387
|
+
|
|
388
|
+
**Actualización.** La bandeja ofrece la nueva versión cuando la hay (**Buscar actualizaciones…**), o bien:
|
|
389
|
+
|
|
390
|
+
```sh
|
|
391
|
+
clauderipple update
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
Actualiza de la misma forma en que instalaste (otra vez con el script de instalación, o con
|
|
395
|
+
npm) y reinicia el router con la nueva versión. El Electron de la bandeja se conserva entre
|
|
396
|
+
actualizaciones.
|
|
397
|
+
|
|
398
|
+
Opcional, para ver los nombres reales en el selector de Desktop:
|
|
399
|
+
**Clientes → Claude Desktop → Selector de modelos → Activar el selector**, y después cierra
|
|
400
|
+
Claude Desktop por completo y vuelve a abrirlo. Para confiar en el certificado local solo
|
|
401
|
+
para tu usuario, macOS te pide tu contraseña de inicio de sesión y
|
|
402
|
+
Windows muestra un cuadro de confirmación con la huella digital; Linux lo añade a tu base de
|
|
403
|
+
datos NSS sin preguntar. ClaudeRipple nunca ve ninguna contraseña, y ninguna plataforma
|
|
404
|
+
necesita permisos de administrador.
|
|
405
|
+
|
|
406
|
+
> **Cerrar la ventana de Claude Desktop no basta.** La app sigue en ejecución y, al volver
|
|
407
|
+
> a abrirla, se reutiliza sin leer el nuevo ajuste. Sal de ella por completo (macOS: ⌘Q;
|
|
408
|
+
> Windows: el icono de la bandeja o el Administrador de tareas; Linux: Ctrl+Q o el icono de
|
|
409
|
+
> la bandeja, hasta que `pgrep -f claude-desktop` no imprima nada) o el selector no cambiará,
|
|
410
|
+
> sin ningún aviso.
|
|
411
|
+
|
|
412
|
+
<details>
|
|
413
|
+
<summary>Desde el código fuente (Node 24)</summary>
|
|
414
|
+
|
|
415
|
+
```bash
|
|
416
|
+
git clone https://github.com/PBJ-2/clauderipple && cd clauderipple && npm install
|
|
417
|
+
node packages/cli/src/index.ts install # certs, settings.json env, supervisor (launchd / Task Scheduler), end-to-end probe
|
|
418
|
+
node packages/cli/src/index.ts ui # open the local GUI in your browser
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
`uninstall` lo revierte todo y restaura `~/.claude/settings.json` desde una copia de seguridad.
|
|
422
|
+
Otros comandos: `status`, `start`, `stop`, `restart`, `logs -f`, `login`, `logout`,
|
|
423
|
+
`claude-login`, `claude-logout`, `picker on|off`, `agent-title on|off`, `mod on|off`,
|
|
424
|
+
`codex on|off`, `update`, `image "<prompt>"`.
|
|
425
|
+
</details>
|
|
426
|
+
|
|
427
|
+
## Clientes
|
|
428
|
+
|
|
429
|
+
### Claude Desktop
|
|
430
|
+
|
|
431
|
+
Funciona nada más instalarlo. Asigna modelos en **Asignación de modelos** (se guarda
|
|
432
|
+
automáticamente) o activa el **modo selector** para ver los modelos de los proveedores por
|
|
433
|
+
su nombre en el propio selector de la app. El esfuerzo elegido en la app se transmite; los
|
|
434
|
+
niveles no admitidos se ajustan al más cercano.
|
|
435
|
+
|
|
436
|
+
### Claude Code (terminal, Remote Control, subagentes)
|
|
437
|
+
|
|
438
|
+
El mismo router, la misma asignación. `/model gpt-5.6-terra` lista los modelos que añadiste.
|
|
439
|
+
Los subagentes siguen el enrutamiento; un marcador `[[gpt: sol@xhigh]]` en el prompt de un
|
|
440
|
+
subagente sustituye el modelo para esa llamada, y el panel de tareas muestra el nombre real
|
|
441
|
+
del modelo.
|
|
442
|
+
|
|
443
|
+
**No tienes que construir un harness de agentes para esto.** Asigna un modelo redirigido al
|
|
444
|
+
slot de subagentes y todos los subagentes se ejecutarán en él, sin archivo de agente ni
|
|
445
|
+
nada más:
|
|
446
|
+
|
|
447
|
+
```jsonc
|
|
448
|
+
// Settings → CLI models, or "cli": { "models": { … } } in the config
|
|
449
|
+
{ "subagent": "gpt-5.6-terra" } // → CLAUDE_CODE_SUBAGENT_MODEL
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
**Cada modelo que marques es también un subagente con nombre.** El router escribe
|
|
453
|
+
`~/.claude/agents/<name>.md` para cada modelo que ofrece exactamente un proveedor
|
|
454
|
+
(`gpt-5.6-terra` → `gpt-5-6-terra`, `deepseek-v4.1-flash` → `deepseek-v4-1-flash`),
|
|
455
|
+
así que para "que lo haga DeepSeek" basta con marcar el modelo: la herramienta Agent
|
|
456
|
+
lo lista, `subagent_type: "deepseek-v4-1-flash"` lo ejecuta y el panel de tareas
|
|
457
|
+
muestra su nombre. Desmarca el modelo y su archivo desaparece. El router solo toca
|
|
458
|
+
los archivos que escribió él (registrados en `generated-agents.json`); un archivo de
|
|
459
|
+
agente que hayas escrito tú con el mismo nombre tiene prioridad y no se toca, así que
|
|
460
|
+
unas instrucciones personalizadas siguen siendo simplemente el archivo de agente de
|
|
461
|
+
Claude Code, con un `model:` que el router conozca:
|
|
462
|
+
|
|
463
|
+
```markdown
|
|
464
|
+
---
|
|
465
|
+
name: reviewer
|
|
466
|
+
description: Independent review on GPT-5.6 Sol.
|
|
467
|
+
model: gpt-5.6-sol@medium
|
|
468
|
+
---
|
|
469
|
+
You are the reviewer for this session. Verify the change yourself and report
|
|
470
|
+
the conclusion only.
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
El esfuerzo por llamada va en la **primera línea** del prompt del subagente:
|
|
474
|
+
`[[ripple: gpt-5-6-terra@high]]`; ahí sirve cualquier nombre de agente o ID de modelo. Un
|
|
475
|
+
marcador en cualquier otro lugar es texto normal y se ignora (un resumen de compactación
|
|
476
|
+
que cite uno no debe redirigir la sesión). Un modelo que el router no sabe ubicar se
|
|
477
|
+
rechaza indicando su nombre (`400 ClaudeRipple: no provider declares "…"`) en lugar de
|
|
478
|
+
enviarse para que falle en algún sitio donde el error se entienda peor; los modelos
|
|
479
|
+
nativos de Claude siempre pasan. Configura `"cli": { "agentFiles": false }` para
|
|
480
|
+
desactivar la generación.
|
|
481
|
+
|
|
482
|
+
Por defecto, un worker generado hereda todas las herramientas de la sesión, así que cada
|
|
483
|
+
servidor MCP y cada plugin acompañan cada solicitud del worker. `"cli": {
|
|
484
|
+
"limitWorkerTools": true }` (o **Herramientas de los workers** en el panel) le da solo
|
|
485
|
+
las herramientas de lectura, edición, ejecución, búsqueda y skills, lo que redujo la
|
|
486
|
+
primera solicitud de un worker de unos 33k a 9k tokens. Un worker así no tiene
|
|
487
|
+
herramientas de navegador ni de simulador. Un worker que las necesite debe ir en un
|
|
488
|
+
archivo de agente propio, que nunca se toca.
|
|
489
|
+
|
|
490
|
+
Con un proveedor de ChatGPT configurado, las imágenes salen de la misma suscripción:
|
|
491
|
+
|
|
492
|
+
```bash
|
|
493
|
+
clauderipple image "a red paper boat, flat illustration" -o boat.png --aspect square
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
`--transparent`, `--format png|jpeg|webp` y `--ref FILE` (una imagen de referencia; se
|
|
497
|
+
puede repetir) son opcionales. Cada imagen tarda unos 30 segundos. El backend de la
|
|
498
|
+
suscripción elige por sí mismo la resolución y la calidad, así que la forma se pide con
|
|
499
|
+
palabras (`--aspect`). El comando es un cliente de `POST /api/image` en el puerto de
|
|
500
|
+
administración, que responde con los bytes de la imagen. A los workers generados se les
|
|
501
|
+
indica la forma `curl` de esa llamada, así que un worker que solo tenga Bash puede crear
|
|
502
|
+
una imagen y volver a leerla.
|
|
503
|
+
|
|
504
|
+
Claude Code ejecuta `WebSearch` como una solicitud aparte a un modelo pequeño. Para que
|
|
505
|
+
una configuración redirigida a ChatGPT no gaste cuota de Anthropic en esa solicitud,
|
|
506
|
+
elige el mismo proveedor de ChatGPT como backend de búsqueda en `config.json`:
|
|
507
|
+
|
|
508
|
+
```jsonc
|
|
509
|
+
{ "webSearch": { "provider": "chatgpt", "model": "gpt-5.6-terra" } }
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
Es opcional. Sin el ajuste `webSearch`, la ruta de búsqueda actual de Claude Code no
|
|
513
|
+
cambia.
|
|
514
|
+
|
|
515
|
+
### App de Codex y Codex CLI
|
|
516
|
+
|
|
517
|
+
```bash
|
|
518
|
+
clauderipple codex on # adds a "clauderipple" provider to ~/.codex/config.toml (backup first)
|
|
519
|
+
codex --profile clauderipple -m claude-sonnet-5
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
`codex on` también apunta el proveedor OpenAI integrado de Codex a ClaudeRipple (`openai_base_url`).
|
|
523
|
+
Codex conserva su inicio de sesión de ChatGPT; sus solicitudes GPT siguen llegando a ChatGPT sin
|
|
524
|
+
cambios, salvo que la cuenta se elige entre las añadidas a ClaudeRipple, así que, con varias
|
|
525
|
+
añadidas, Codex también pasa de una cuenta agotada a la siguiente. Si no hay ninguna añadida, o
|
|
526
|
+
todas están en su límite, se usa el inicio de sesión propio de Codex. Un `openai_base_url` que
|
|
527
|
+
hayas configurado tú no se toca. `clauderipple codex off` lo deshace.
|
|
528
|
+
|
|
529
|
+
Los modelos de Claude aparecen con su nombre en la lista de modelos de Codex (ClaudeRipple
|
|
530
|
+
escribe un catálogo de modelos junto al de Codex). Se accede a Claude mediante tu inicio de
|
|
531
|
+
sesión de Claude Code (detectado en la sesión de Desktop en ejecución, en el inicio de sesión
|
|
532
|
+
de la terminal o en un inicio de sesión propio de ClaudeRipple:
|
|
533
|
+
**Proveedores → Claude (Anthropic) → + Añadir cuenta de Claude** abre el navegador, sin
|
|
534
|
+
necesidad de terminal; equivale a
|
|
535
|
+
`clauderipple claude-login`) o mediante una clave de API de Anthropic. Reutilizar el inicio
|
|
536
|
+
de sesión de una suscripción está sujeto a los términos de Anthropic. Cualquier proveedor
|
|
537
|
+
compatible con Anthropic que hayas configurado está disponible de la misma forma.
|
|
538
|
+
|
|
539
|
+
<p align="center">
|
|
540
|
+
<img src="docs/media/add-provider.png" width="880" alt="Añadir proveedor: suscripción de ChatGPT, ajustes predefinidos, proveedores compatibles con OpenAI">
|
|
541
|
+
</p>
|
|
542
|
+
|
|
543
|
+
## Proveedores
|
|
544
|
+
|
|
545
|
+
| Proveedor | Tipo | Autenticación | Lista de modelos | Notas |
|
|
546
|
+
|---|---|---|---|---|
|
|
547
|
+
| Suscripción de ChatGPT | Backend de Codex | varios inicios de sesión, con cambio cuando uno se agota (también reutiliza el de Codex) | leída de tu suscripción (GPT-6 Sol, Luna, Astra, GPT-5.6 …) | esfuerzo low…max (Luna: ultra), caché de prompts 94–99 % |
|
|
548
|
+
| Google Gemini | API de Gemini | clave de API de AI Studio o inicio de sesión con cuenta de Google (Antigravity, consulta las preguntas frecuentes) | descubierta | traducido (Messages ⇄ generateContent), las firmas de pensamiento se conservan entre turnos |
|
|
549
|
+
| OpenRouter | Compatible con Anthropic | clave de API | más de 400, descubierta | compatibilidad de esfuerzo por modelo leída de la API |
|
|
550
|
+
| DeepSeek, Kimi, Z.ai GLM, MiniMax, Qwen (intl / cn) | Compatible con Anthropic | clave de API | predefinida | verificado con la documentación del proveedor |
|
|
551
|
+
| xAI Grok, Mistral, Groq, Together, Fireworks | Compatible con OpenAI | clave de API | descubierta | traducido (Chat Completions / Responses) |
|
|
552
|
+
| Ollama, LM Studio | Compatible con OpenAI, local | ninguna | descubierta | |
|
|
553
|
+
| Anthropic | nativo | inicio(s) de sesión de Claude o clave de API | modelos de Claude | rotación opcional de cuentas con afinidad por conversación para Claude Desktop/Code; Codex elige un inicio de sesión |
|
|
554
|
+
| Cualquier otro | personalizado | a tu elección | descubierta | cualquier endpoint compatible con Anthropic u OpenAI |
|
|
555
|
+
|
|
556
|
+
Se eliminan de las solicitudes a proveedores compatibles los campos exclusivos de Anthropic
|
|
557
|
+
(hilos del lado del servidor, herramientas diferidas, gestión del contexto, vinculaciones de
|
|
558
|
+
pensamiento) y el esfuerzo se limita a los niveles que admite cada modelo, para que los
|
|
559
|
+
proveedores no rechacen con un error 400 el formato de las solicitudes de Claude Code.
|
|
560
|
+
|
|
561
|
+
## Cómo funciona
|
|
562
|
+
|
|
563
|
+
```
|
|
564
|
+
Claude Desktop / claude CLI ──HTTPS_PROXY──▶ ClaudeRipple ──▶ api.anthropic.com (unchanged)
|
|
565
|
+
│
|
|
566
|
+
mapped model ──────────┼──▶ chatgpt.com/backend-api (Responses ⇄ Messages)
|
|
567
|
+
├──▶ Anthropic-compatible vendors (+ compat layer)
|
|
568
|
+
├──▶ OpenAI-compatible vendors (Messages ⇄ Chat/Responses)
|
|
569
|
+
└──▶ Google Gemini (Messages ⇄ generateContent)
|
|
570
|
+
Codex app / CLI ──/v1/responses──▶ ClaudeRipple ingress ──▶ Claude (your login or API key) / vendors
|
|
571
|
+
```
|
|
572
|
+
|
|
573
|
+
- La CLI de Claude Code lee `HTTPS_PROXY` y `NODE_EXTRA_CA_CERTS` de
|
|
574
|
+
`~/.claude/settings.json` (la vía de proxy corporativo que documenta Anthropic). Solo ese
|
|
575
|
+
proceso confía en la CA local de ClaudeRipple; el llavero del sistema operativo no se toca
|
|
576
|
+
salvo que actives el modo selector.
|
|
577
|
+
- El modo selector enruta a través del proxy el propio tráfico de claude.ai de la app y
|
|
578
|
+
añade tus modelos a la lista del selector que la app obtiene al arrancar. Se vuelve a
|
|
579
|
+
desactivar con un clic.
|
|
580
|
+
- Al reiniciarse, el router deja terminar las llamadas en curso; ante fallos repetidos del
|
|
581
|
+
upstream se cierra solo para que launchd lo reinicie; rota los registros y nunca descarta una
|
|
582
|
+
solicitud en silencio.
|
|
583
|
+
|
|
584
|
+
Detalles con fuentes: [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).
|
|
585
|
+
|
|
586
|
+
## Privacidad
|
|
587
|
+
|
|
588
|
+
Todo se ejecuta en 127.0.0.1. Las claves de API se guardan en `~/.clauderipple/config.json`
|
|
589
|
+
y las autorizaciones OAuth de Claude añadidas, en `~/.clauderipple/claude-accounts.json`
|
|
590
|
+
(ambos con permisos 0600). Las API de administración y los registros no exponen ni tokens ni
|
|
591
|
+
ID de cuentas upstream. Los únicos destinos de red son los proveedores que configures. No hay
|
|
592
|
+
telemetría.
|
|
593
|
+
|
|
594
|
+
## Estado: alfa
|
|
595
|
+
|
|
596
|
+
El autor lo usa a diario, pero es un proyecto joven. Cuenta con algunas asperezas:
|
|
597
|
+
|
|
598
|
+
- **La compatibilidad con Windows es nueva (2026-09-14).** La instalación, la configuración,
|
|
599
|
+
el router, el inicio de sesión, el selector y una llamada real a GPT están verificados en
|
|
600
|
+
hardware x64; la recuperación tras fallos, en arm64. La ventana todavía tiene la barra de
|
|
601
|
+
título estándar de Windows. Las compilaciones para Windows no están firmadas; consulta la
|
|
602
|
+
nota en Instalación.
|
|
603
|
+
- **La compatibilidad con Linux es nueva (2026-09-24)**, aportada con mediciones en Ubuntu
|
|
604
|
+
24.04 x64 (instalación, una solicitud de la pestaña Code, reinicio en mitad del streaming,
|
|
605
|
+
modo selector, desinstalación). Requiere una sesión de usuario de systemd; otras
|
|
606
|
+
distribuciones y arm64 no se han probado.
|
|
607
|
+
- ChatGPT, OpenRouter y Claude en Codex están verificados con cuentas reales; los demás
|
|
608
|
+
ajustes predefinidos siguen la documentación oficial de los proveedores.
|
|
609
|
+
- Un modelo añadido al selector se puede usar a partir de la siguiente sesión.
|
|
610
|
+
- Claude Code y Codex cambian a menudo sus protocolos de comunicación; una actualización del
|
|
611
|
+
cliente puede romper una traducción hasta que ClaudeRipple se ponga al día. Se agradecen
|
|
612
|
+
los informes de errores y los registros.
|
|
613
|
+
|
|
614
|
+
## Sin afiliación
|
|
615
|
+
|
|
616
|
+
ClaudeRipple es un proyecto independiente de código abierto. No está afiliado a Anthropic ni
|
|
617
|
+
a OpenAI, ni cuenta con su respaldo ni con su patrocinio. Claude y Claude Code son marcas
|
|
618
|
+
comerciales de Anthropic, PBC. ChatGPT y Codex son marcas comerciales de OpenAI.
|
|
619
|
+
|
|
620
|
+
## Licencia
|
|
621
|
+
|
|
622
|
+
Copyright (c) 2026 pbj. GPL-3.0: consulta [LICENSE](LICENSE). Úsalo libremente; si distribuyes
|
|
623
|
+
una versión modificada, incluye su código fuente con la misma licencia.
|