claude-connect 0.1.0 → 0.1.3
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/README.md +114 -87
- package/package.json +1 -1
- package/src/data/catalog-store.js +495 -3
- package/src/gateway/messages.js +152 -7
- package/src/gateway/server.js +206 -63
- package/src/gateway/state.js +52 -0
- package/src/lib/app-paths.js +2 -0
- package/src/lib/claude-settings.js +39 -24
- package/src/lib/profile.js +11 -2
- package/src/lib/secrets.js +48 -0
- package/src/wizard.js +130 -47
package/README.md
CHANGED
|
@@ -1,73 +1,113 @@
|
|
|
1
1
|
# Claude Connect
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> Conecta `Claude Code` con `OpenCode Go`, `Zen`, `Kimi`, `DeepSeek`, `OpenRouter` y `Qwen` desde una interfaz de consola clara, rápida y reversible.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[](https://www.npmjs.com/package/claude-connect)
|
|
6
|
+
[](https://nodejs.org/)
|
|
7
|
+
[](./LICENSE)
|
|
8
|
+
[](https://www.npmjs.com/package/claude-connect)
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
## Why Claude Connect
|
|
8
11
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
-
|
|
12
|
+
`Claude Connect` te permite cambiar `Claude Code` hacia otros proveedores sin editar archivos a mano, sin perder tu configuración original y sin convertir tu terminal en un caos de variables de entorno.
|
|
13
|
+
|
|
14
|
+
### Highlights
|
|
15
|
+
|
|
16
|
+
- `OpenCode Go`, `Zen`, `Kimi`, `DeepSeek`, `OpenRouter` y `Qwen` listos desde el primer arranque
|
|
17
|
+
- soporte para `Token` y `OAuth` cuando el proveedor lo permite
|
|
18
|
+
- API keys compartidas por proveedor para no repetir el mismo token en cada modelo
|
|
14
19
|
- activación reversible sobre la instalación real de `Claude Code`
|
|
15
|
-
-
|
|
20
|
+
- limpieza automática del conflicto entre `claude.ai` y `ANTHROPIC_API_KEY`
|
|
16
21
|
- gateway local Anthropic-compatible para `Qwen`
|
|
17
|
-
-
|
|
18
|
-
-
|
|
22
|
+
- detección automática de rutas en Linux y Windows
|
|
23
|
+
- catálogo local en SQLite generado automáticamente
|
|
24
|
+
- interfaz de consola con navegación simple y profesional
|
|
19
25
|
|
|
20
|
-
##
|
|
26
|
+
## Package
|
|
21
27
|
|
|
22
|
-
|
|
28
|
+
- npm: https://www.npmjs.com/package/claude-connect
|
|
29
|
+
- repo: https://github.com/wmcarlosv/claude-connect
|
|
23
30
|
|
|
24
|
-
|
|
25
|
-
npm start
|
|
26
|
-
```
|
|
31
|
+
## Install
|
|
27
32
|
|
|
28
|
-
|
|
33
|
+
Instalación global:
|
|
29
34
|
|
|
30
35
|
```bash
|
|
31
|
-
npm
|
|
36
|
+
npm install -g claude-connect
|
|
32
37
|
claude-connect
|
|
33
38
|
```
|
|
34
39
|
|
|
35
|
-
Instalación
|
|
40
|
+
Instalación simple en proyecto:
|
|
36
41
|
|
|
37
42
|
```bash
|
|
38
|
-
npm
|
|
39
|
-
claude-connect
|
|
43
|
+
npm i claude-connect
|
|
40
44
|
```
|
|
41
45
|
|
|
42
|
-
Ejecución
|
|
46
|
+
Ejecución con `npx`:
|
|
43
47
|
|
|
44
48
|
```bash
|
|
45
49
|
npx claude-connect
|
|
46
50
|
```
|
|
47
51
|
|
|
52
|
+
Desarrollo local:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npm start
|
|
56
|
+
```
|
|
57
|
+
|
|
48
58
|
Requisito:
|
|
49
59
|
|
|
50
|
-
- Node.js 22 o superior
|
|
60
|
+
- `Node.js 22` o superior
|
|
51
61
|
|
|
52
|
-
##
|
|
62
|
+
## Quick Flow
|
|
53
63
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
64
|
+
```text
|
|
65
|
+
Nueva conexion
|
|
66
|
+
-> proveedor
|
|
67
|
+
-> modelo
|
|
68
|
+
-> OAuth o Token
|
|
69
|
+
-> guardar API key una vez por proveedor si aplica
|
|
70
|
+
-> guardar perfil
|
|
71
|
+
-> Activar en Claude
|
|
72
|
+
-> usar claude
|
|
73
|
+
```
|
|
61
74
|
|
|
62
75
|
Al activar:
|
|
63
76
|
|
|
64
|
-
- `
|
|
65
|
-
- `
|
|
66
|
-
- `
|
|
77
|
+
- `OpenCode Go` usa conexión directa o gateway según el modelo elegido
|
|
78
|
+
- `Zen` usa conexión directa o gateway según el modelo elegido
|
|
79
|
+
- `Kimi` usa gateway local y reenvia al endpoint Anthropic de `https://api.kimi.com/coding/`
|
|
80
|
+
- `DeepSeek` apunta a `https://api.deepseek.com/anthropic`
|
|
81
|
+
- `OpenRouter` usa `openrouter/free` por gateway sobre `https://openrouter.ai/api/v1`
|
|
82
|
+
- `Qwen` apunta al gateway local `http://127.0.0.1:4310/anthropic`
|
|
83
|
+
|
|
84
|
+
## Providers
|
|
85
|
+
|
|
86
|
+
| Proveedor | Modelos | Auth | Integración |
|
|
87
|
+
| --- | --- | --- | --- |
|
|
88
|
+
| `OpenCode Go` | `glm-5`, `kimi-k2.5`, `minimax-m2.7`, `minimax-m2.5` | `Token` | Mixta |
|
|
89
|
+
| `Zen` | `Claude*` de Zen + modelos `chat/completions` de Zen | `Token` | Mixta |
|
|
90
|
+
| `Kimi` | `kimi-for-coding` | `Token` | Gateway local |
|
|
91
|
+
| `DeepSeek` | `deepseek-chat`, `deepseek-reasoner` | `Token` | Directa |
|
|
92
|
+
| `OpenRouter` | `openrouter/free` | `Token` | Gateway local |
|
|
93
|
+
| `Qwen` | `qwen3-coder-plus` | `OAuth`, `Token` | Gateway local |
|
|
67
94
|
|
|
68
|
-
|
|
95
|
+
Nota sobre `OpenCode Go`:
|
|
69
96
|
|
|
70
|
-
|
|
97
|
+
- `minimax-m2.7` y `minimax-m2.5` van directos por endpoint `messages`
|
|
98
|
+
- `glm-5` y `kimi-k2.5` van por gateway usando `chat/completions`
|
|
99
|
+
|
|
100
|
+
Nota sobre `Zen`:
|
|
101
|
+
|
|
102
|
+
- los modelos Anthropic de Zen van por conexión directa
|
|
103
|
+
- los modelos de Zen servidos por `chat/completions` van por gateway local
|
|
104
|
+
- esta primera integración no incluye todavía los modelos de Zen expuestos por `responses` ni los de endpoint tipo Google
|
|
105
|
+
|
|
106
|
+
## What It Stores
|
|
107
|
+
|
|
108
|
+
Claude Connect guarda el estado sensible fuera del repo.
|
|
109
|
+
|
|
110
|
+
Rutas por defecto:
|
|
71
111
|
|
|
72
112
|
```text
|
|
73
113
|
Linux: ~/.claude-connect
|
|
@@ -78,9 +118,9 @@ Ahí viven:
|
|
|
78
118
|
|
|
79
119
|
- perfiles
|
|
80
120
|
- tokens OAuth
|
|
81
|
-
- API keys
|
|
121
|
+
- API keys compartidas por proveedor
|
|
82
122
|
- estado del switch de Claude
|
|
83
|
-
-
|
|
123
|
+
- logs y estado del gateway
|
|
84
124
|
|
|
85
125
|
El catálogo SQLite local se genera automáticamente en:
|
|
86
126
|
|
|
@@ -91,62 +131,50 @@ storage/claude-connect.sqlite
|
|
|
91
131
|
Importante:
|
|
92
132
|
|
|
93
133
|
- esa base ya no se versiona en git
|
|
94
|
-
- el catálogo se
|
|
95
|
-
-
|
|
134
|
+
- el catálogo se siembra desde `src/data/catalog-store.js`
|
|
135
|
+
- esto evita conflictos molestos al hacer `git pull`
|
|
96
136
|
|
|
97
|
-
##
|
|
137
|
+
## Claude Code Switching
|
|
98
138
|
|
|
99
|
-
|
|
139
|
+
Cuando activas un perfil, la app modifica la configuración real detectada de `Claude Code` y guarda un snapshot reversible.
|
|
100
140
|
|
|
101
141
|
Archivos implicados:
|
|
102
142
|
|
|
103
|
-
- `settings.json`
|
|
143
|
+
- `settings.json`
|
|
104
144
|
- `~/.claude.json`
|
|
105
|
-
- `.credentials.json`
|
|
106
|
-
|
|
107
|
-
Esto permite:
|
|
108
|
-
|
|
109
|
-
- activar `Kimi`, `DeepSeek` o `Qwen`
|
|
110
|
-
- evitar conflicto entre `claude.ai` y `ANTHROPIC_API_KEY`
|
|
111
|
-
- restaurar la sesión original con `Revertir Claude`
|
|
112
|
-
|
|
113
|
-
## Proveedores
|
|
114
|
-
|
|
115
|
-
### Kimi
|
|
145
|
+
- `.credentials.json`
|
|
116
146
|
|
|
117
|
-
|
|
118
|
-
- auth: `Token`
|
|
119
|
-
- base URL: `https://api.kimi.com/coding/`
|
|
120
|
-
- activación directa en Claude Code
|
|
147
|
+
Eso permite:
|
|
121
148
|
|
|
122
|
-
|
|
149
|
+
- activar otro proveedor sin tocar archivos manualmente
|
|
150
|
+
- evitar el `Auth conflict` entre sesión `claude.ai` y `API key`
|
|
151
|
+
- volver a tu estado original con `Revertir Claude`
|
|
123
152
|
|
|
124
|
-
|
|
125
|
-
- auth: `Token`
|
|
126
|
-
- base URL de activación: `https://api.deepseek.com/anthropic`
|
|
127
|
-
- activación directa en Claude Code
|
|
153
|
+
## Qwen OAuth
|
|
128
154
|
|
|
129
|
-
|
|
155
|
+
`Qwen` usa el device flow oficial de `Qwen Code`.
|
|
130
156
|
|
|
131
|
-
|
|
132
|
-
- auth: `OAuth`, `Token`
|
|
133
|
-
- OAuth con device flow oficial de `Qwen Code`
|
|
134
|
-
- gateway local requerido para integrarlo con Claude Code
|
|
135
|
-
|
|
136
|
-
URL de autorización típica:
|
|
157
|
+
URL típica de autorización:
|
|
137
158
|
|
|
138
159
|
```text
|
|
139
160
|
https://chat.qwen.ai/auth?user_code=XXXXX&client=qwen-code
|
|
140
161
|
```
|
|
141
162
|
|
|
142
|
-
|
|
163
|
+
Comportamiento actual:
|
|
164
|
+
|
|
165
|
+
- intenta abrir el navegador por defecto
|
|
166
|
+
- también deja la URL visible para copiar y pegar manualmente
|
|
167
|
+
- en Windows ya se corrigió la apertura del navegador
|
|
168
|
+
|
|
169
|
+
## Console UX
|
|
143
170
|
|
|
144
|
-
- `Tab` vuelve a la pantalla anterior cuando aplica
|
|
145
171
|
- `Volver` aparece como opción visible en listas
|
|
172
|
+
- `Tab` vuelve a la pantalla anterior cuando aplica
|
|
146
173
|
- `Esc` una vez avisa
|
|
147
174
|
- `Esc` dos veces sale
|
|
175
|
+
- después de crear o editar una conexión, regresas al menú principal
|
|
148
176
|
|
|
149
|
-
##
|
|
177
|
+
## Development
|
|
150
178
|
|
|
151
179
|
Pruebas:
|
|
152
180
|
|
|
@@ -154,22 +182,21 @@ Pruebas:
|
|
|
154
182
|
npm test
|
|
155
183
|
```
|
|
156
184
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
- `src/wizard.js`
|
|
160
|
-
|
|
161
|
-
Catálogo:
|
|
162
|
-
|
|
163
|
-
- `src/data/catalog-store.js`
|
|
164
|
-
|
|
165
|
-
Switch de Claude:
|
|
185
|
+
Puntos principales del código:
|
|
166
186
|
|
|
167
|
-
- `src/
|
|
187
|
+
- entrada principal: `src/wizard.js`
|
|
188
|
+
- catálogo: `src/data/catalog-store.js`
|
|
189
|
+
- switch de Claude: `src/lib/claude-settings.js`
|
|
190
|
+
- OAuth de Qwen: `src/lib/oauth.js`
|
|
191
|
+
- gateway local: `src/gateway/server.js`
|
|
168
192
|
|
|
169
|
-
|
|
193
|
+
## Publish Notes
|
|
170
194
|
|
|
171
|
-
|
|
195
|
+
El paquete npm publica solo lo necesario:
|
|
172
196
|
|
|
173
|
-
|
|
197
|
+
- `bin/claude-connect.js`
|
|
198
|
+
- `src/`
|
|
199
|
+
- `README.md`
|
|
200
|
+
- `LICENSE`
|
|
174
201
|
|
|
175
|
-
|
|
202
|
+
El tarball ya está preparado para distribución limpia.
|