clauderipple 0.11.1 → 0.12.1
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 +46 -0
- package/README.es.md +48 -0
- package/README.ja.md +42 -0
- package/README.ko.md +39 -0
- package/README.md +44 -0
- package/README.pt-BR.md +46 -0
- package/README.zh-CN.md +40 -0
- package/dist/app/dist/claude-desktop.js +31 -0
- package/dist/app/dist/main.js +127 -8
- package/dist/app/dist/status-model.js +12 -0
- package/dist/app/dist/update-model.js +32 -0
- package/dist/app/package.json +1 -1
- package/dist/cli/src/index.js +5 -1
- package/dist/mod/hooks/i18n.ts +6 -0
- package/dist/mod/hooks/modes.ts +15 -8
- package/dist/mod/hooks/register.tsx +72 -20
- package/dist/mod/hooks/settings.js +37 -2
- package/dist/mod/hooks/settings.ts +31 -3
- package/dist/mod/hooks/ui/agents.tsx +1 -1
- package/dist/mod/hooks/ui/art.ts +8 -3
- package/dist/mod/hooks/ui/band.tsx +6 -2
- package/dist/mod/hooks/ui/flat.ts +11 -8
- package/dist/mod/hooks/ui/look.ts +3 -1
- package/dist/mod/hooks/ui/view.ts +2 -0
- package/dist/mod/hooks/workers.ts +22 -1
- package/dist/mod/tests/delegation.test.tsx +50 -0
- package/dist/mod/tests/register.test.tsx +154 -1
- package/dist/mod/tests/ui.test.tsx +6 -3
- package/dist/mod/types/index.d.ts +14 -0
- package/dist/router/src/admin.js +41 -76
- package/dist/router/src/autoupdate.js +299 -0
- package/dist/router/src/bootstrap.js +3 -2
- package/dist/router/src/cli-control.js +65 -0
- package/dist/router/src/config.js +70 -11
- package/dist/router/src/index.js +11 -1
- package/dist/router/src/picker.js +25 -1
- package/dist/router/src/presets.js +21 -13
- package/dist/router/src/providers/chatgpt/index.js +11 -0
- package/dist/router/src/providers/google/index.js +7 -2
- package/dist/router/src/providers/google/transport.js +16 -1
- package/dist/router/src/proxy.js +847 -717
- package/dist/router/src/requestlog.js +3 -2
- package/dist/router/src/version.js +1 -1
- package/dist/router/src/webfetch.js +56 -0
- package/dist/router/src/websearch.js +2 -2
- package/dist/ui/app.js +247 -42
- package/dist/ui/i18n.js +160 -18
- package/dist/ui/style.css +21 -0
- package/docs/ARCHITECTURE.md +111 -14
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,51 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.12.1 — 2026-10-21
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- **One web setting covers page reading too.** WebFetch downloads a page and has the small, fast
|
|
8
|
+
model answer from it; that answer now comes from the model picked for web search, as WebSearch
|
|
9
|
+
already did, instead of Haiku on Claude quota. The Clients row is "Web search & page reading". If
|
|
10
|
+
that model fails before answering, the request goes where it went before.
|
|
11
|
+
- **Design work takes the heavy level of the frontend + design ladder**, whatever tier it was
|
|
12
|
+
given: a task judged design runs on the heavy workers, since its result depends on the model's
|
|
13
|
+
taste rather than on difficulty. Frontend tasks still pick by tier.
|
|
14
|
+
|
|
15
|
+
## 0.12.0 — 2026-10-21
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- **ClaudeRipple updates itself.** The router checks for a new version 10 minutes after it starts
|
|
20
|
+
and every 12 hours, and installs it once nothing has been in flight for 10 minutes; requests in
|
|
21
|
+
flight finish before the restart. A version that fails to come up is not retried for 24 hours.
|
|
22
|
+
The tray shows a desktop notification when an update has landed, or when one is available where
|
|
23
|
+
nothing installs by itself. Off with the switch in the dashboard's About view. Versions before
|
|
24
|
+
this one need one manual update to get here.
|
|
25
|
+
- **Frontend + design and backend can have workers of their own.** Each worker set (Base and every
|
|
26
|
+
mode) can give those two domains their own ladder of two levels, light work and heavy work; every
|
|
27
|
+
other task keeps the four general workers. When the main chat names a task's tier, the judge is
|
|
28
|
+
asked for its domain only while such a ladder is set.
|
|
29
|
+
- **Base has its own delegation strength.** Eager delegation no longer needs a mode to be on.
|
|
30
|
+
- **Web search gets its own model.** The Clients view picks the model that answers `WebSearch`
|
|
31
|
+
apart from the small, fast one, from the models ClaudeRipple can actually search with. It applies
|
|
32
|
+
at once, without a new session.
|
|
33
|
+
- **OpenCode Go's Gemini model works** (#68). A model can speak Google's `generateContent` wire
|
|
34
|
+
inside one provider; `gemini-4-argon-contributor` is listed on it, sent with OpenCode's session
|
|
35
|
+
header.
|
|
36
|
+
- **The Phone view introduces Ripple Remote**, with an App Store button for your language's store,
|
|
37
|
+
until a phone is paired.
|
|
38
|
+
- **Image generations appear in the request log and the usage counts.**
|
|
39
|
+
- **The Compact icon shows how many times the chat has been compacted.**
|
|
40
|
+
|
|
41
|
+
### Fixed
|
|
42
|
+
|
|
43
|
+
- **A routed model's compaction window falls back to the one its provider declared**, not the
|
|
44
|
+
global default: a 1M-token subagent was compacting at about 240K.
|
|
45
|
+
- **"Reopen Claude" goes away once Claude has restarted**, however it was restarted.
|
|
46
|
+
- **OpenCode Go's DeepSeek is no longer offered as a search model**; it never ran a search.
|
|
47
|
+
- **A router that briefly lost its settings no longer sends every chat back to setup.**
|
|
48
|
+
|
|
3
49
|
## 0.11.1 — 2026-10-20
|
|
4
50
|
|
|
5
51
|
### Fixed
|
package/README.es.md
CHANGED
|
@@ -10,6 +10,12 @@
|
|
|
10
10
|
<b>pestaña Code</b>. Y también Claude dentro de la <b>app de Codex</b> y de <b>Codex CLI</b>.
|
|
11
11
|
</p>
|
|
12
12
|
|
|
13
|
+
<p align="center">
|
|
14
|
+
<a href="https://apps.apple.com/es/app/id6823063731"><img height="40" alt="App Store" src="https://img.shields.io/badge/App%20Store-Descargar-0D96F6?style=for-the-badge&logo=apple&logoColor=white"></a>
|
|
15
|
+
<img height="40" alt="Google Play" src="https://img.shields.io/badge/Google%20Play-Pr%C3%B3ximamente-666666?style=for-the-badge&logo=googleplay&logoColor=white">
|
|
16
|
+
<a href="https://discord.gg/R8ZgGSNHjw"><img height="40" alt="Discord" src="https://img.shields.io/badge/Discord-Unirse-5865F2?style=for-the-badge&logo=discord&logoColor=white"></a>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
13
19
|
<p align="center">
|
|
14
20
|
<a href="https://www.npmjs.com/package/clauderipple"><img alt="npm" src="https://img.shields.io/npm/v/clauderipple?label=npm"></a>
|
|
15
21
|
<img alt="Alpha" src="https://img.shields.io/badge/status-alpha-orange">
|
|
@@ -341,6 +347,44 @@ los modelos que asignas van a tu proveedor, y todo lo demás va a Anthropic byte
|
|
|
341
347
|
<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">
|
|
342
348
|
</p>
|
|
343
349
|
|
|
350
|
+
## Ripple Remote: cualquier modelo, desde el teléfono, durante horas
|
|
351
|
+
|
|
352
|
+
Empieza un trabajo en la app de escritorio de Claude, cierra el portátil y sigue dando
|
|
353
|
+
órdenes desde el sofá. **Ripple Remote** es la app para el teléfono de ClaudeRipple: las mismas
|
|
354
|
+
sesiones, sea cual sea el modelo que las ejecute, en tu teléfono, y no te desconecta a los
|
|
355
|
+
30 minutos.
|
|
356
|
+
|
|
357
|
+
<p align="center">
|
|
358
|
+
<img src="docs/media/remote/store/en-1.png" width="260" alt="Un remoto que no se corta: una sesión de GPT seguida durante 1 h 47 min">
|
|
359
|
+
<img src="docs/media/remote/store/en-2.png" width="260" alt="GPT, DeepSeek y Gemini en un solo selector de modelos en el teléfono">
|
|
360
|
+
<img src="docs/media/remote/store/en-3.png" width="260" alt="Aprueba desde el teléfono la solicitud de una sesión de DeepSeek">
|
|
361
|
+
</p>
|
|
362
|
+
|
|
363
|
+
- **Horas, no minutos.** La conexión se mantiene mientras tu computadora esté encendida.
|
|
364
|
+
Sigue una refactorización de dos horas hasta el final y apruébala cuando te lo pida.
|
|
365
|
+
- **Cualquier modelo que enrutes.** GPT, DeepSeek, Gemini o Claude: todas las sesiones se
|
|
366
|
+
ven y funcionan igual. Cambia el modelo y el esfuerzo de razonamiento del siguiente
|
|
367
|
+
turno desde el teléfono.
|
|
368
|
+
- **Tus sesiones de la app de Claude, tal cual.** Las sesiones que empezaste en la pestaña
|
|
369
|
+
Code de tu Mac continúan en el teléfono: la línea de tiempo en vivo, las llamadas a
|
|
370
|
+
herramientas, los diffs, los subagentes y sus modelos, las aprobaciones de plan y las
|
|
371
|
+
tarjetas de preguntas, las fotos y los archivos.
|
|
372
|
+
- **La barra de estado de tu Mac en el bolsillo.** El modelo que respondió, la caché y tus
|
|
373
|
+
límites de uso, tal como los muestra la banda de ClaudeRipple en la Mac.
|
|
374
|
+
- **Se combina con las funciones del portátil.** Con la [tapa cerrada y el punto de
|
|
375
|
+
acceso del teléfono](#tapa-cerrada-y-el-punto-de-acceso-del-teléfono) activados, el
|
|
376
|
+
portátil sigue trabajando dentro de la mochila y se mantiene en línea cuando el Wi-Fi
|
|
377
|
+
no lo está.
|
|
378
|
+
- **Privado desde el diseño.** Los mensajes, los archivos adjuntos y las notificaciones van
|
|
379
|
+
cifrados de extremo a extremo; ni el relay ni el servicio de notificaciones pueden
|
|
380
|
+
leerlos. Sin cuenta, sin anuncios, sin rastreo, gratis.
|
|
381
|
+
|
|
382
|
+
Instala ClaudeRipple en tu computadora, abre la vista **Teléfono** del panel y escanea el
|
|
383
|
+
código QR una vez. iPhone: [App Store](https://apps.apple.com/es/app/id6823063731). Android:
|
|
384
|
+
en prueba cerrada en Google Play; pide acceso en
|
|
385
|
+
[Discord](https://discord.gg/R8ZgGSNHjw). Las sesiones de la app de Claude funcionan en
|
|
386
|
+
macOS; la app incluye una demo para probarla sin computadora.
|
|
387
|
+
|
|
344
388
|
## Instalación
|
|
345
389
|
|
|
346
390
|
**macOS**
|
|
@@ -663,6 +707,10 @@ El autor lo usa a diario, pero es un proyecto joven. Cuenta con algunas aspereza
|
|
|
663
707
|
cliente puede romper una traducción hasta que ClaudeRipple se ponga al día. Se agradecen
|
|
664
708
|
los informes de errores y los registros.
|
|
665
709
|
|
|
710
|
+
## Comunidad
|
|
711
|
+
|
|
712
|
+
Las preguntas, los informes de errores y la beta de Ripple Remote para Android (una prueba cerrada en Google Play) están en Discord: [https://discord.gg/R8ZgGSNHjw](https://discord.gg/R8ZgGSNHjw). Para unirte a la beta de Android, deja allí la dirección de Gmail que usas en Google Play.
|
|
713
|
+
|
|
666
714
|
## Sin afiliación
|
|
667
715
|
|
|
668
716
|
ClaudeRipple es un proyecto independiente de código abierto. No está afiliado a Anthropic ni
|
package/README.ja.md
CHANGED
|
@@ -9,6 +9,12 @@
|
|
|
9
9
|
のほか、400以上のモデルが応答します。<b>Codexアプリ</b>と<b>Codex CLI</b>でClaudeを使うこともできます。
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
|
+
<p align="center">
|
|
13
|
+
<a href="https://apps.apple.com/jp/app/id6823063731"><img height="40" alt="App Store" src="https://img.shields.io/badge/App%20Store-%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89-0D96F6?style=for-the-badge&logo=apple&logoColor=white"></a>
|
|
14
|
+
<img height="40" alt="Google Play" src="https://img.shields.io/badge/Google%20Play-%E6%BA%96%E5%82%99%E4%B8%AD-666666?style=for-the-badge&logo=googleplay&logoColor=white">
|
|
15
|
+
<a href="https://discord.gg/R8ZgGSNHjw"><img height="40" alt="Discord" src="https://img.shields.io/badge/Discord-%E5%8F%82%E5%8A%A0%E3%81%99%E3%82%8B-5865F2?style=for-the-badge&logo=discord&logoColor=white"></a>
|
|
16
|
+
</p>
|
|
17
|
+
|
|
12
18
|
<p align="center">
|
|
13
19
|
<a href="https://www.npmjs.com/package/clauderipple"><img alt="npm" src="https://img.shields.io/npm/v/clauderipple?label=npm"></a>
|
|
14
20
|
<img alt="Alpha" src="https://img.shields.io/badge/status-alpha-orange">
|
|
@@ -181,6 +187,38 @@ Claude Codeのシステムプロンプトとツールの説明はClaude向けに
|
|
|
181
187
|
<img src="docs/media/mapping.png" width="880" alt="モデルマッピング:Claudeの名前ごとに応答するモデルと、モデルごとの推論強度">
|
|
182
188
|
</p>
|
|
183
189
|
|
|
190
|
+
## Ripple Remote:どのモデルでも、スマートフォンで、何時間でも
|
|
191
|
+
|
|
192
|
+
Claudeデスクトップアプリで作業を始めて、ノートPCを閉じ、ソファから続きを指示します。
|
|
193
|
+
**Ripple Remote**はClaudeRippleのスマートフォンアプリです。どのモデルが動かすセッションでも
|
|
194
|
+
そのままスマートフォンで扱え、30分で接続が切れることもありません。
|
|
195
|
+
|
|
196
|
+
<p align="center">
|
|
197
|
+
<img src="docs/media/remote/store/en-1.png" width="260" alt="切れないリモート:1時間47分続くGPTセッション">
|
|
198
|
+
<img src="docs/media/remote/store/en-2.png" width="260" alt="スマートフォンの1つのモデルピッカーにGPT・DeepSeek・Gemini">
|
|
199
|
+
<img src="docs/media/remote/store/en-3.png" width="260" alt="DeepSeekセッションのリクエストをスマートフォンで承認">
|
|
200
|
+
</p>
|
|
201
|
+
|
|
202
|
+
- **数分ではなく数時間。** コンピュータの電源が入っている間、接続は保たれます。2時間の
|
|
203
|
+
リファクタリングも最後まで見守り、承認を求められたらその場で答えられます。
|
|
204
|
+
- **ルーティングするモデルを問いません。** GPT、DeepSeek、Gemini、Claude——どのセッションも
|
|
205
|
+
同じ見た目で同じように動きます。次のターンのモデルと推論強度もスマートフォンから切り替えられます。
|
|
206
|
+
- **Claudeアプリのセッションをそのまま。** MacのCodeタブで始めたセッションがスマートフォンで
|
|
207
|
+
続きます。ライブのタイムライン、ツール呼び出し、diff、サブエージェントとそのモデル、
|
|
208
|
+
プラン承認と質問カード、写真・ファイルの添付まで。
|
|
209
|
+
- **Macのステータスバーをポケットに。** 応答したモデル、キャッシュ、使用量の上限を、Macの
|
|
210
|
+
ClaudeRippleバンドと同じように表示します。
|
|
211
|
+
- **ノートPCの機能と組み合わせる。** [ふたを閉じたときとスマートフォンのインターネット共有](#ふたを閉じたときとスマートフォンのインターネット共有)
|
|
212
|
+
をオンにしておけば、ノートPCはかばんの中でも作業を続け、Wi-Fiがつながらなくてもオンラインを保ちます。
|
|
213
|
+
- **最初からプライベート。** メッセージ、添付ファイル、通知はエンドツーエンドで暗号化され、
|
|
214
|
+
リレーサーバーもプッシュサービスも読めません。アカウント登録・広告・トラッキングなし、無料。
|
|
215
|
+
|
|
216
|
+
コンピュータにClaudeRippleをインストールし、ダッシュボードの**スマートフォン**画面でQRコードを
|
|
217
|
+
一度スキャンするだけです。iPhone:[App Store](https://apps.apple.com/jp/app/id6823063731)。
|
|
218
|
+
Android:Google Playのクローズドテスト中で、[Discord](https://discord.gg/R8ZgGSNHjw)で申請を
|
|
219
|
+
受け付けています。Claudeアプリのセッション連携はmacOSで利用でき、コンピュータなしでも
|
|
220
|
+
アプリ内のデモですぐ試せます。
|
|
221
|
+
|
|
184
222
|
## インストール
|
|
185
223
|
|
|
186
224
|
**macOS**
|
|
@@ -380,6 +418,10 @@ Codex app / CLI ──/v1/responses──▶ ClaudeRipple ingress ──▶ Clau
|
|
|
380
418
|
- ピッカーに追加したモデルは、次のセッションから使えます。
|
|
381
419
|
- Claude CodeとCodexは通信プロトコルを頻繁に変更します。クライアントのアップデートにより、ClaudeRippleが追従するまで変換が動かなくなることがあります。バグ報告やログを歓迎します。
|
|
382
420
|
|
|
421
|
+
## コミュニティ
|
|
422
|
+
|
|
423
|
+
質問、不具合の報告、Ripple Remote Android 版ベータ(Google Play のクローズドテスト)への参加受付は Discord で行っています:[https://discord.gg/R8ZgGSNHjw](https://discord.gg/R8ZgGSNHjw)。Android 版ベータに参加するには、Google Play で使っている Gmail アドレスを Discord に書き込んでください。
|
|
424
|
+
|
|
383
425
|
## 提携関係について
|
|
384
426
|
|
|
385
427
|
ClaudeRippleは独立したオープンソースプロジェクトです。AnthropicおよびOpenAIとは提携関係になく、両社による承認や後援も受けていません。ClaudeおよびClaude Codeは、Anthropic, PBCの商標です。ChatGPTおよびCodexは、OpenAIの商標です。
|
package/README.ko.md
CHANGED
|
@@ -17,6 +17,12 @@
|
|
|
17
17
|
GPT·DeepSeek·Kimi·Grok 등<br>400여 모델이 답합니다. <b>Codex 앱</b>과 <b>Codex CLI</b>에서는 반대로 Claude를 씁니다.
|
|
18
18
|
</p>
|
|
19
19
|
|
|
20
|
+
<p align="center">
|
|
21
|
+
<a href="https://apps.apple.com/kr/app/id6823063731"><img height="40" alt="App Store" src="https://img.shields.io/badge/App%20Store-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C-0D96F6?style=for-the-badge&logo=apple&logoColor=white"></a>
|
|
22
|
+
<img height="40" alt="Google Play" src="https://img.shields.io/badge/Google%20Play-%EC%A4%80%EB%B9%84%20%EC%A4%91-666666?style=for-the-badge&logo=googleplay&logoColor=white">
|
|
23
|
+
<a href="https://discord.gg/R8ZgGSNHjw"><img height="40" alt="Discord" src="https://img.shields.io/badge/Discord-%EC%B0%B8%EC%97%AC%ED%95%98%EA%B8%B0-5865F2?style=for-the-badge&logo=discord&logoColor=white"></a>
|
|
24
|
+
</p>
|
|
25
|
+
|
|
20
26
|
<p align="center">
|
|
21
27
|
<a href="https://www.npmjs.com/package/clauderipple"><img alt="npm" src="https://img.shields.io/npm/v/clauderipple?label=npm"></a>
|
|
22
28
|
<img alt="Alpha" src="https://img.shields.io/badge/status-alpha-orange">
|
|
@@ -270,6 +276,35 @@ ClaudeRipple은 Claude Code 프로세스만 신뢰하는 작은 HTTPS 프록시
|
|
|
270
276
|
<img src="docs/media/mapping.png" width="880" alt="모델 매핑: Claude 이름마다 실제로 답할 모델과 추론 강도">
|
|
271
277
|
</p>
|
|
272
278
|
|
|
279
|
+
## Ripple Remote: 어떤 모델이든, 휴대폰으로, 몇 시간이고
|
|
280
|
+
|
|
281
|
+
Claude 데스크톱 앱에 일을 맡기고, 노트북을 덮고, 소파에서 이어서 지시하세요.
|
|
282
|
+
**Ripple Remote**는 ClaudeRipple의 휴대폰 앱입니다. 어떤 모델이 돌리는 세션이든 휴대폰에서 그대로 다루고,
|
|
283
|
+
30분이 지나도 연결이 끊기지 않습니다.
|
|
284
|
+
|
|
285
|
+
<p align="center">
|
|
286
|
+
<img src="docs/media/remote/store/ko-1.png" width="260" alt="끊기지 않는 원격: 1시간 47분째 이어지는 GPT 세션">
|
|
287
|
+
<img src="docs/media/remote/store/ko-2.png" width="260" alt="휴대폰의 모델 선택기 하나에 GPT·DeepSeek·Gemini">
|
|
288
|
+
<img src="docs/media/remote/store/ko-3.png" width="260" alt="DeepSeek 세션의 요청을 휴대폰에서 승인">
|
|
289
|
+
</p>
|
|
290
|
+
|
|
291
|
+
- **몇 분이 아니라 몇 시간.** 컴퓨터가 켜져 있는 동안 연결이 유지됩니다. 두 시간짜리 리팩터링도 끝까지
|
|
292
|
+
지켜보고, 승인을 물으면 그 자리에서 답하세요.
|
|
293
|
+
- **모델을 가리지 않습니다.** GPT·DeepSeek·Gemini·Claude, 어떤 세션이든 똑같이 보이고 똑같이 다룹니다.
|
|
294
|
+
다음 턴의 모델과 추론 강도도 휴대폰에서 바꿉니다.
|
|
295
|
+
- **Claude 앱 세션 그대로.** Mac의 Code 탭에서 시작한 세션이 휴대폰에서 이어집니다. 실시간 타임라인, 도구 실행,
|
|
296
|
+
diff, 하위 에이전트와 그 모델, 계획 승인과 질문 카드, 사진·파일 첨부까지.
|
|
297
|
+
- **Mac의 상태 표시줄을 주머니에.** 응답한 모델, 캐시, 사용 한도를 Mac의 ClaudeRipple 띠와 똑같이 보여 줍니다.
|
|
298
|
+
- **노트북 기능과 짝을 이룹니다.** [노트북 덮개와 휴대폰 핫스팟](#노트북-덮개와-휴대폰-핫스팟)을 켜 두면
|
|
299
|
+
노트북은 가방 안에서도 일하고, 와이파이가 끊겨도 온라인을 유지합니다.
|
|
300
|
+
- **처음부터 비공개.** 메시지·첨부·알림은 종단간 암호화되어 중계 서버도 푸시 서비스도 읽지 못합니다.
|
|
301
|
+
회원가입·광고·추적 없음, 무료.
|
|
302
|
+
|
|
303
|
+
컴퓨터에 ClaudeRipple을 설치하고 대시보드의 **휴대폰** 화면에서 QR 코드를 한 번 스캔하면 끝입니다.
|
|
304
|
+
아이폰: [App Store](https://apps.apple.com/kr/app/id6823063731). 안드로이드: Google Play 비공개 테스트 중이며
|
|
305
|
+
[디스코드](https://discord.gg/R8ZgGSNHjw)에서 신청받습니다. Claude 앱 세션 연동은 macOS에서 되고,
|
|
306
|
+
컴퓨터 없이도 앱 안의 데모로 먼저 써 볼 수 있습니다.
|
|
307
|
+
|
|
273
308
|
## 설치
|
|
274
309
|
|
|
275
310
|
**macOS**
|
|
@@ -532,6 +567,10 @@ Codex 앱 / CLI ──/v1/responses──▶ ClaudeRipple 입구 ──▶ Claud
|
|
|
532
567
|
- Claude Code와 Codex는 통신 규약을 자주 바꿉니다. 클라이언트 업데이트가 번역을 깨뜨리면 ClaudeRipple이 따라잡을 때까지
|
|
533
568
|
안 될 수 있습니다. 버그와 로그를 환영합니다.
|
|
534
569
|
|
|
570
|
+
## 커뮤니티
|
|
571
|
+
|
|
572
|
+
질문, 버그 제보, Ripple Remote 안드로이드 베타(Google Play 비공개 테스트) 신청은 디스코드에서 받습니다: [https://discord.gg/R8ZgGSNHjw](https://discord.gg/R8ZgGSNHjw). 안드로이드 베타에 참여하려면 Google Play에서 쓰는 Gmail 주소를 남겨 주세요.
|
|
573
|
+
|
|
535
574
|
## 비제휴
|
|
536
575
|
|
|
537
576
|
ClaudeRipple은 독립 오픈소스 프로젝트입니다. Anthropic이나 OpenAI와 제휴·보증·후원 관계가 없습니다. Claude와 Claude Code는
|
package/README.md
CHANGED
|
@@ -18,6 +18,12 @@
|
|
|
18
18
|
<b>Code tab</b>. Claude inside the <b>Codex app</b> and <b>Codex CLI</b> too.
|
|
19
19
|
</p>
|
|
20
20
|
|
|
21
|
+
<p align="center">
|
|
22
|
+
<a href="https://apps.apple.com/us/app/id6823063731"><img height="40" alt="App Store" src="https://img.shields.io/badge/App%20Store-Download-0D96F6?style=for-the-badge&logo=apple&logoColor=white"></a>
|
|
23
|
+
<img height="40" alt="Google Play" src="https://img.shields.io/badge/Google%20Play-Coming%20soon-666666?style=for-the-badge&logo=googleplay&logoColor=white">
|
|
24
|
+
<a href="https://discord.gg/R8ZgGSNHjw"><img height="40" alt="Discord" src="https://img.shields.io/badge/Discord-Join-5865F2?style=for-the-badge&logo=discord&logoColor=white"></a>
|
|
25
|
+
</p>
|
|
26
|
+
|
|
21
27
|
<p align="center">
|
|
22
28
|
<a href="https://www.npmjs.com/package/clauderipple"><img alt="npm" src="https://img.shields.io/npm/v/clauderipple?label=npm"></a>
|
|
23
29
|
<img alt="Alpha" src="https://img.shields.io/badge/status-alpha-orange">
|
|
@@ -327,6 +333,40 @@ you map go to your provider, everything else goes to Anthropic byte for byte.
|
|
|
327
333
|
<img src="docs/media/mapping.png" width="880" alt="Model mapping: which model answers for each Claude name, with per-model reasoning effort">
|
|
328
334
|
</p>
|
|
329
335
|
|
|
336
|
+
## Ripple Remote: every model, from your phone, for hours
|
|
337
|
+
|
|
338
|
+
Start a job in the Claude desktop app, close the laptop, and keep going from the couch.
|
|
339
|
+
**Ripple Remote** is the phone app for ClaudeRipple: the same sessions, whichever model
|
|
340
|
+
runs them, on your phone, and it does not drop you after 30 minutes.
|
|
341
|
+
|
|
342
|
+
<p align="center">
|
|
343
|
+
<img src="docs/media/remote/store/en-1.png" width="260" alt="A remote that doesn't time out: a GPT session followed for 1h 47m">
|
|
344
|
+
<img src="docs/media/remote/store/en-2.png" width="260" alt="GPT, DeepSeek and Gemini in one model picker on the phone">
|
|
345
|
+
<img src="docs/media/remote/store/en-3.png" width="260" alt="Approve a DeepSeek session's request from the phone">
|
|
346
|
+
</p>
|
|
347
|
+
|
|
348
|
+
- **Hours, not minutes.** The connection holds as long as your computer is on. Watch a
|
|
349
|
+
two-hour refactor through to the end and approve it when it asks.
|
|
350
|
+
- **Any model you route.** GPT, DeepSeek, Gemini or Claude: every session looks and works
|
|
351
|
+
the same. Switch the next turn's model and reasoning effort from your phone.
|
|
352
|
+
- **Your Claude app sessions, as they are.** Sessions you started in the Code tab on your
|
|
353
|
+
Mac continue on the phone — the live timeline, tool calls, diffs, subagents and their
|
|
354
|
+
models, plan approvals and question cards, photos and files.
|
|
355
|
+
- **Your Mac's status bar in your pocket.** The model that answered, the cache and your
|
|
356
|
+
usage limits, as the ClaudeRipple band shows them on the Mac.
|
|
357
|
+
- **Pairs with the laptop features.** With [lid-closed awake and the phone
|
|
358
|
+
hotspot](#lid-closed-and-the-phone-hotspot), the laptop keeps working in a bag and stays
|
|
359
|
+
online when the Wi-Fi does not.
|
|
360
|
+
- **Private by design.** Messages, attachments and notifications are end-to-end
|
|
361
|
+
encrypted; the relay and the push service cannot read them. No account, no ads, no
|
|
362
|
+
tracking, free.
|
|
363
|
+
|
|
364
|
+
Install ClaudeRipple on your computer, open the dashboard's **Phone** view and scan the
|
|
365
|
+
QR code once. iPhone: [App Store](https://apps.apple.com/us/app/id6823063731). Android: in a
|
|
366
|
+
closed test on Google Play — ask on [Discord](https://discord.gg/R8ZgGSNHjw).
|
|
367
|
+
Claude app sessions are supported on macOS; the app has a demo you can try without a
|
|
368
|
+
computer.
|
|
369
|
+
|
|
330
370
|
## Install
|
|
331
371
|
|
|
332
372
|
**macOS**
|
|
@@ -656,6 +696,10 @@ In daily use by the author, but young. Expect rough edges:
|
|
|
656
696
|
- Claude Code and Codex change their wire protocols often; a client update can
|
|
657
697
|
break a translation until ClaudeRipple catches up. Bugs and logs welcome.
|
|
658
698
|
|
|
699
|
+
## Community
|
|
700
|
+
|
|
701
|
+
Questions, bug reports and the Ripple Remote Android beta (a closed test on Google Play) are on Discord: [https://discord.gg/R8ZgGSNHjw](https://discord.gg/R8ZgGSNHjw). To join the Android beta, leave the Gmail address you use on Google Play there.
|
|
702
|
+
|
|
659
703
|
## Not affiliated
|
|
660
704
|
|
|
661
705
|
ClaudeRipple is an independent open-source project. It is not affiliated with,
|
package/README.pt-BR.md
CHANGED
|
@@ -10,6 +10,12 @@
|
|
|
10
10
|
<b>aba Code</b>. E ainda leva o Claude para o <b>app Codex</b> e o <b>Codex CLI</b>.
|
|
11
11
|
</p>
|
|
12
12
|
|
|
13
|
+
<p align="center">
|
|
14
|
+
<a href="https://apps.apple.com/br/app/id6823063731"><img height="40" alt="App Store" src="https://img.shields.io/badge/App%20Store-Baixar-0D96F6?style=for-the-badge&logo=apple&logoColor=white"></a>
|
|
15
|
+
<img height="40" alt="Google Play" src="https://img.shields.io/badge/Google%20Play-Em%20breve-666666?style=for-the-badge&logo=googleplay&logoColor=white">
|
|
16
|
+
<a href="https://discord.gg/R8ZgGSNHjw"><img height="40" alt="Discord" src="https://img.shields.io/badge/Discord-Entrar-5865F2?style=for-the-badge&logo=discord&logoColor=white"></a>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
13
19
|
<p align="center">
|
|
14
20
|
<a href="https://www.npmjs.com/package/clauderipple"><img alt="npm" src="https://img.shields.io/npm/v/clauderipple?label=npm"></a>
|
|
15
21
|
<img alt="Alpha" src="https://img.shields.io/badge/status-alpha-orange">
|
|
@@ -335,6 +341,42 @@ que você mapeia vão para o seu provedor, e todo o resto vai para a Anthropic b
|
|
|
335
341
|
<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">
|
|
336
342
|
</p>
|
|
337
343
|
|
|
344
|
+
## Ripple Remote: qualquer modelo, do celular, por horas
|
|
345
|
+
|
|
346
|
+
Comece um trabalho no app de desktop do Claude, feche o notebook e continue dando ordens
|
|
347
|
+
do sofá. O **Ripple Remote** é o app de celular do ClaudeRipple: as mesmas sessões, seja
|
|
348
|
+
qual for o modelo que as executa, no seu celular — e sem te derrubar depois de 30 minutos.
|
|
349
|
+
|
|
350
|
+
<p align="center">
|
|
351
|
+
<img src="docs/media/remote/store/en-1.png" width="260" alt="Um controle remoto que não cai: uma sessão de GPT acompanhada por 1 h 47 min">
|
|
352
|
+
<img src="docs/media/remote/store/en-2.png" width="260" alt="GPT, DeepSeek e Gemini em um único seletor de modelos no celular">
|
|
353
|
+
<img src="docs/media/remote/store/en-3.png" width="260" alt="Aprove no celular o pedido de uma sessão do DeepSeek">
|
|
354
|
+
</p>
|
|
355
|
+
|
|
356
|
+
- **Horas, não minutos.** A conexão se mantém enquanto o computador estiver ligado.
|
|
357
|
+
Acompanhe uma refatoração de duas horas até o fim e aprove quando ela pedir.
|
|
358
|
+
- **Qualquer modelo que você rotear.** GPT, DeepSeek, Gemini ou Claude: toda sessão
|
|
359
|
+
aparece e funciona igual. Troque o modelo e o esforço de raciocínio do próximo turno
|
|
360
|
+
pelo celular.
|
|
361
|
+
- **Suas sessões do app do Claude, como estão.** As sessões que você começou na aba Code
|
|
362
|
+
do seu Mac continuam no celular: a linha do tempo ao vivo, as chamadas de ferramenta,
|
|
363
|
+
os diffs, os subagentes e seus modelos, as aprovações de plano e os cartões de pergunta,
|
|
364
|
+
fotos e arquivos.
|
|
365
|
+
- **A barra de status do seu Mac no bolso.** O modelo que respondeu, o cache e os seus
|
|
366
|
+
limites de uso, como a faixa do ClaudeRipple mostra no Mac.
|
|
367
|
+
- **Combina com os recursos do notebook.** Com a [tampa fechada e o Acesso Pessoal do
|
|
368
|
+
celular](#tampa-fechada-e-o-acesso-pessoal-do-celular) ativados, o notebook continua
|
|
369
|
+
trabalhando dentro da mochila e fica online quando o Wi-Fi não tem internet.
|
|
370
|
+
- **Privado por princípio.** Mensagens, anexos e notificações são criptografados de ponta
|
|
371
|
+
a ponta; nem o relay nem o serviço de push conseguem lê-los. Sem conta, sem anúncios,
|
|
372
|
+
sem rastreamento, grátis.
|
|
373
|
+
|
|
374
|
+
Instale o ClaudeRipple no computador, abra a visão **Celular** do painel e escaneie o
|
|
375
|
+
código QR uma vez. iPhone: [App Store](https://apps.apple.com/br/app/id6823063731). Android:
|
|
376
|
+
em teste fechado no Google Play — peça acesso no
|
|
377
|
+
[Discord](https://discord.gg/R8ZgGSNHjw). As sessões do app do Claude funcionam no macOS;
|
|
378
|
+
o app tem uma demonstração para testar sem computador.
|
|
379
|
+
|
|
338
380
|
## Instalação
|
|
339
381
|
|
|
340
382
|
**macOS**
|
|
@@ -648,6 +690,10 @@ Em uso diário pelo autor, mas ainda jovem. Espere algumas arestas:
|
|
|
648
690
|
pode quebrar uma tradução até o ClaudeRipple se ajustar. Relatos de bugs e logs são
|
|
649
691
|
bem-vindos.
|
|
650
692
|
|
|
693
|
+
## Comunidade
|
|
694
|
+
|
|
695
|
+
Perguntas, relatos de bugs e o beta do Ripple Remote para Android (um teste fechado no Google Play) ficam no Discord: [https://discord.gg/R8ZgGSNHjw](https://discord.gg/R8ZgGSNHjw). Para entrar no beta do Android, deixe lá o endereço do Gmail que você usa no Google Play.
|
|
696
|
+
|
|
651
697
|
## Sem afiliação
|
|
652
698
|
|
|
653
699
|
O ClaudeRipple é um projeto open source independente. Não tem afiliação com a Anthropic nem
|
package/README.zh-CN.md
CHANGED
|
@@ -10,6 +10,12 @@
|
|
|
10
10
|
<b>Code 标签页</b>中作答。在 <b>Codex 应用</b>和 <b>Codex CLI</b> 中也能使用 Claude。
|
|
11
11
|
</p>
|
|
12
12
|
|
|
13
|
+
<p align="center">
|
|
14
|
+
<a href="https://apps.apple.com/us/app/id6823063731"><img height="40" alt="App Store" src="https://img.shields.io/badge/App%20Store-%E4%B8%8B%E8%BD%BD-0D96F6?style=for-the-badge&logo=apple&logoColor=white"></a>
|
|
15
|
+
<img height="40" alt="Google Play" src="https://img.shields.io/badge/Google%20Play-%E5%8D%B3%E5%B0%86%E6%8E%A8%E5%87%BA-666666?style=for-the-badge&logo=googleplay&logoColor=white">
|
|
16
|
+
<a href="https://discord.gg/R8ZgGSNHjw"><img height="40" alt="Discord" src="https://img.shields.io/badge/Discord-%E5%8A%A0%E5%85%A5-5865F2?style=for-the-badge&logo=discord&logoColor=white"></a>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
13
19
|
<p align="center">
|
|
14
20
|
<a href="https://www.npmjs.com/package/clauderipple"><img alt="npm" src="https://img.shields.io/npm/v/clauderipple?label=npm"></a>
|
|
15
21
|
<img alt="Alpha" src="https://img.shields.io/badge/status-alpha-orange">
|
|
@@ -182,6 +188,36 @@ Claude Code 的系统提示词和工具描述是为 Claude 编写的,所以其
|
|
|
182
188
|
<img src="docs/media/mapping.png" width="880" alt="模型映射:每个 Claude 模型名由哪个模型作答,以及各模型的推理强度">
|
|
183
189
|
</p>
|
|
184
190
|
|
|
191
|
+
## Ripple Remote:任何模型,手机在手,几小时不断
|
|
192
|
+
|
|
193
|
+
在 Claude 桌面应用里交办一件事,合上笔记本,然后在沙发上继续下指令。
|
|
194
|
+
**Ripple Remote** 是 ClaudeRipple 的手机应用:不管是哪个模型在跑的会话,都能在手机上原样接着用,
|
|
195
|
+
也不会在 30 分钟后把你断开。
|
|
196
|
+
|
|
197
|
+
<p align="center">
|
|
198
|
+
<img src="docs/media/remote/store/en-1.png" width="260" alt="不断线的远程:持续 1 小时 47 分钟的 GPT 会话">
|
|
199
|
+
<img src="docs/media/remote/store/en-2.png" width="260" alt="手机上的一个模型选择器里同时有 GPT、DeepSeek 和 Gemini">
|
|
200
|
+
<img src="docs/media/remote/store/en-3.png" width="260" alt="在手机上批准 DeepSeek 会话的请求">
|
|
201
|
+
</p>
|
|
202
|
+
|
|
203
|
+
- **按小时算,不是按分钟。** 只要电脑开着,连接就一直保持。两小时的代码重构也能盯到最后,
|
|
204
|
+
它请求批准时当场作答。
|
|
205
|
+
- **路由哪个模型都行。** GPT、DeepSeek、Gemini 还是 Claude:每个会话看起来、用起来都一样。
|
|
206
|
+
下一轮用哪个模型、推理强度多高,也在手机上切换。
|
|
207
|
+
- **Claude 应用里的会话原样搬来。** 你在 Mac 上 Code 标签页开始的会话,在手机上接着跑:
|
|
208
|
+
实时时间线、工具调用、diff、子代理及各自的模型、计划批准和提问卡片、照片和文件附件。
|
|
209
|
+
- **Mac 的状态栏装进口袋。** 哪个模型作答、缓存情况、用量上限,显示得和 Mac 上的
|
|
210
|
+
ClaudeRipple 横栏一模一样。
|
|
211
|
+
- **和笔记本功能配合。** 打开[合盖与手机热点](#合盖与手机热点),笔记本装进包里照样干活,
|
|
212
|
+
Wi-Fi 断网也能保持在线。
|
|
213
|
+
- **天生私密。** 消息、附件和通知端到端加密,中继服务器和推送服务都读不到。
|
|
214
|
+
无需注册、无广告、无跟踪,免费。
|
|
215
|
+
|
|
216
|
+
在电脑上安装 ClaudeRipple,打开控制面板的**手机**页面,扫一次二维码即可。
|
|
217
|
+
iPhone:[App Store](https://apps.apple.com/us/app/id6823063731)。Android:正在 Google Play
|
|
218
|
+
进行封闭测试,请到 [Discord](https://discord.gg/R8ZgGSNHjw) 申请。Claude 应用会话联动
|
|
219
|
+
支持 macOS;即使没有电脑,也能先用应用内的演示体验。
|
|
220
|
+
|
|
185
221
|
## 安装
|
|
186
222
|
|
|
187
223
|
**macOS**
|
|
@@ -381,6 +417,10 @@ Codex app / CLI ──/v1/responses──▶ ClaudeRipple ingress ──▶ Clau
|
|
|
381
417
|
- 添加到模型选择器的模型从下一个会话起可用。
|
|
382
418
|
- Claude Code 和 Codex 经常更改其通信协议;客户端更新后,某个格式转换可能会失效,直到 ClaudeRipple 跟进为止。欢迎提交 bug 和日志。
|
|
383
419
|
|
|
420
|
+
## 社区
|
|
421
|
+
|
|
422
|
+
提问、报告问题以及报名 Ripple Remote Android 测试版(Google Play 封闭测试)都在 Discord:[https://discord.gg/R8ZgGSNHjw](https://discord.gg/R8ZgGSNHjw)。想参加 Android 测试版,请在那里留下你在 Google Play 上使用的 Gmail 地址。
|
|
423
|
+
|
|
384
424
|
## 无关联声明
|
|
385
425
|
|
|
386
426
|
ClaudeRipple 是一个独立的开源项目。它与 Anthropic 或 OpenAI 均无关联,也未获得二者的认可或赞助。Claude 和 Claude Code 是 Anthropic, PBC 的商标。ChatGPT 和 Codex 是 OpenAI 的商标。
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// asks the user first: quitting ends whatever is open in the app.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.reopenClaude = reopenClaude;
|
|
6
|
+
exports.claudeStartedAt = claudeStartedAt;
|
|
6
7
|
const node_child_process_1 = require("node:child_process");
|
|
7
8
|
const MAC_BUNDLE_ID = "com.anthropic.claudefordesktop";
|
|
8
9
|
const QUIT_WAIT_MS = 20_000;
|
|
@@ -25,6 +26,36 @@ async function macRunning() {
|
|
|
25
26
|
const r = await run("osascript", ["-e", `application id "${MAC_BUNDLE_ID}" is running`], 10_000);
|
|
26
27
|
return r.ok && r.stdout.trim() === "true";
|
|
27
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* When the running Claude Desktop started (epoch ms), `null` when it is not running, `undefined`
|
|
31
|
+
* when that cannot be told here. Reopening it by hand applies a changed connection just as the
|
|
32
|
+
* window's button does, and this is how the window notices.
|
|
33
|
+
*/
|
|
34
|
+
async function claudeStartedAt() {
|
|
35
|
+
if (process.platform === "darwin") {
|
|
36
|
+
// `lstart` is the local start time ("Tue Oct 20 22:13:48 2026"), which Date.parse reads as local.
|
|
37
|
+
const r = await run("ps", ["-axo", "lstart=,comm="], 10_000);
|
|
38
|
+
if (!r.ok)
|
|
39
|
+
return undefined;
|
|
40
|
+
const line = r.stdout.split("\n").find((l) => l.trimEnd().endsWith(".app/Contents/MacOS/Claude"));
|
|
41
|
+
if (!line)
|
|
42
|
+
return null;
|
|
43
|
+
const at = Date.parse(line.trim().split(/\s+/).slice(0, 5).join(" "));
|
|
44
|
+
return Number.isFinite(at) ? at : undefined;
|
|
45
|
+
}
|
|
46
|
+
if (process.platform === "win32") {
|
|
47
|
+
const script = "$p = Get-Process -Name claude -ErrorAction SilentlyContinue | Where-Object { $_.MainWindowHandle -ne 0 } | Select-Object -First 1; if ($p) { $p.StartTime.ToUniversalTime().ToString('o') }";
|
|
48
|
+
const r = await run("powershell.exe", ["-NoProfile", "-NonInteractive", "-Command", script], 15_000);
|
|
49
|
+
if (!r.ok)
|
|
50
|
+
return undefined;
|
|
51
|
+
const text = r.stdout.trim();
|
|
52
|
+
if (!text)
|
|
53
|
+
return null;
|
|
54
|
+
const at = Date.parse(text);
|
|
55
|
+
return Number.isFinite(at) ? at : undefined;
|
|
56
|
+
}
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
28
59
|
async function reopenMac() {
|
|
29
60
|
if (await macRunning()) {
|
|
30
61
|
await run("osascript", ["-e", `tell application id "${MAC_BUNDLE_ID}" to quit`]);
|