deepseek-builder 0.1.0__tar.gz

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.
Files changed (38) hide show
  1. deepseek_builder-0.1.0/LICENSE +21 -0
  2. deepseek_builder-0.1.0/PKG-INFO +631 -0
  3. deepseek_builder-0.1.0/README.md +598 -0
  4. deepseek_builder-0.1.0/cli/__init__.py +0 -0
  5. deepseek_builder-0.1.0/cli/commands.py +724 -0
  6. deepseek_builder-0.1.0/cli/display.py +139 -0
  7. deepseek_builder-0.1.0/cli/repl.py +354 -0
  8. deepseek_builder-0.1.0/cli/spinner.py +76 -0
  9. deepseek_builder-0.1.0/core/__init__.py +0 -0
  10. deepseek_builder-0.1.0/core/agent.py +69 -0
  11. deepseek_builder-0.1.0/core/balance.py +46 -0
  12. deepseek_builder-0.1.0/core/client.py +162 -0
  13. deepseek_builder-0.1.0/core/config.py +131 -0
  14. deepseek_builder-0.1.0/core/debug.py +85 -0
  15. deepseek_builder-0.1.0/core/memory.py +112 -0
  16. deepseek_builder-0.1.0/core/rules.py +14 -0
  17. deepseek_builder-0.1.0/core/skills.py +80 -0
  18. deepseek_builder-0.1.0/core/system.py +447 -0
  19. deepseek_builder-0.1.0/core/writer.py +130 -0
  20. deepseek_builder-0.1.0/deep.py +196 -0
  21. deepseek_builder-0.1.0/deepseek_builder.egg-info/PKG-INFO +631 -0
  22. deepseek_builder-0.1.0/deepseek_builder.egg-info/SOURCES.txt +36 -0
  23. deepseek_builder-0.1.0/deepseek_builder.egg-info/dependency_links.txt +1 -0
  24. deepseek_builder-0.1.0/deepseek_builder.egg-info/entry_points.txt +2 -0
  25. deepseek_builder-0.1.0/deepseek_builder.egg-info/requires.txt +8 -0
  26. deepseek_builder-0.1.0/deepseek_builder.egg-info/top_level.txt +4 -0
  27. deepseek_builder-0.1.0/pwa/__init__.py +0 -0
  28. deepseek_builder-0.1.0/pwa/generate_icons.py +56 -0
  29. deepseek_builder-0.1.0/pwa/main.py +434 -0
  30. deepseek_builder-0.1.0/pwa/static/app.js +501 -0
  31. deepseek_builder-0.1.0/pwa/static/icon-192.png +0 -0
  32. deepseek_builder-0.1.0/pwa/static/icon-512.png +0 -0
  33. deepseek_builder-0.1.0/pwa/static/index.html +115 -0
  34. deepseek_builder-0.1.0/pwa/static/manifest.json +24 -0
  35. deepseek_builder-0.1.0/pwa/static/style.css +618 -0
  36. deepseek_builder-0.1.0/pwa/static/sw.js +9 -0
  37. deepseek_builder-0.1.0/pyproject.toml +55 -0
  38. deepseek_builder-0.1.0/setup.cfg +4 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Cynchro Labs
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,631 @@
1
+ Metadata-Version: 2.2
2
+ Name: deepseek-builder
3
+ Version: 0.1.0
4
+ Summary: CLI/REPL to generate complete projects using the DeepSeek API
5
+ Author-email: Cynchro Labs <alexissaucedo@gmail.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/cynchro/deepseekCLI
8
+ Project-URL: Repository, https://github.com/cynchro/deepseekCLI
9
+ Project-URL: Bug Tracker, https://github.com/cynchro/deepseekCLI/issues
10
+ Project-URL: Documentation, https://github.com/cynchro/deepseekCLI#readme
11
+ Keywords: deepseek,ai,cli,code-generation,llm,rag
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Topic :: Software Development :: Code Generators
22
+ Classifier: Topic :: Utilities
23
+ Requires-Python: >=3.9
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ Requires-Dist: requests>=2.28
27
+ Requires-Dist: fastapi
28
+ Requires-Dist: uvicorn[standard]
29
+ Requires-Dist: python-multipart
30
+ Provides-Extra: https
31
+ Requires-Dist: trustme; extra == "https"
32
+ Requires-Dist: qrcode; extra == "https"
33
+
34
+ # deep
35
+
36
+ <a href="https://github.com/cynchro/deepseekCLI"><img src="https://img.shields.io/github/stars/cynchro/deepseekCLI?style=social" alt="GitHub stars"/></a>
37
+
38
+ CLI/REPL para generar proyectos completos usando la API de DeepSeek. Le das una descripción en lenguaje natural y genera los archivos, los evalúa, y aprende de cada ejecución para mejorar las siguientes.
39
+
40
+ Hecho con ❤️ por [Cynchro Labs](https://www.cynchrolabs.com.ar)
41
+
42
+ ## Instalación
43
+
44
+ ### Linux / macOS
45
+
46
+ ```bash
47
+ bash <(curl -fsSL https://raw.githubusercontent.com/cynchro/deepseekCLI/main/install.sh)
48
+ ```
49
+
50
+ O desde el repositorio clonado:
51
+
52
+ ```bash
53
+ git clone https://github.com/cynchro/deepseekCLI.git
54
+ cd deepseekCLI
55
+ bash install.sh
56
+ ```
57
+
58
+ ### Windows
59
+
60
+ Desde PowerShell (requiere Python 3.9+ instalado):
61
+
62
+ ```powershell
63
+ git clone https://github.com/cynchro/deepseekCLI.git
64
+ cd deepseekCLI
65
+ .\install.ps1
66
+ ```
67
+
68
+ O de forma remota:
69
+
70
+ ```powershell
71
+ irm https://raw.githubusercontent.com/cynchro/deepseekCLI/main/install.ps1 | iex
72
+ ```
73
+
74
+ > El instalador crea un entorno virtual en `~\.local\share\deepseekcli`, agrega el comando `deep` al PATH de usuario, y guarda la API key como variable de entorno de Windows. Abrí una nueva terminal después de instalar.
75
+
76
+ ### Configuración de la API key
77
+
78
+ La primera vez que ejecutes `deep` te pedirá la API key y la guardará automáticamente. Obtené la tuya en [platform.deepseek.com](https://platform.deepseek.com/api_keys).
79
+
80
+ Para cambiarla más adelante:
81
+
82
+ ```bash
83
+ deep config set-key
84
+ ```
85
+
86
+ O con una variable de entorno (tiene prioridad sobre el archivo de config):
87
+
88
+ ```bash
89
+ # Linux/macOS
90
+ export DEEPSEEK_API_KEY=tu_key_aqui
91
+
92
+ # Windows PowerShell
93
+ $env:DEEPSEEK_API_KEY = "tu_key_aqui"
94
+
95
+ # Windows (permanente)
96
+ setx DEEPSEEK_API_KEY "tu_key_aqui"
97
+ ```
98
+
99
+ ---
100
+
101
+ ## Uso
102
+
103
+ ### REPL interactivo
104
+
105
+ ```bash
106
+ deep
107
+ ```
108
+
109
+ Abre un REPL con autocompletado e historial. Desde ahí podés usar todos los comandos.
110
+
111
+ ### Modo directo (scripting)
112
+
113
+ Todos los comandos también funcionan directamente desde la terminal:
114
+
115
+ ```bash
116
+ deep build "API REST en FastAPI con autenticación JWT"
117
+ deep ask "cómo funciona Redis?"
118
+ deep doctor
119
+ ```
120
+
121
+ ---
122
+
123
+ ## Comandos
124
+
125
+ ### `build` — Genera un proyecto
126
+
127
+ ```bash
128
+ deep build "descripción del proyecto"
129
+ deep build -t tarea.txt # carga la descripción desde un archivo
130
+ deep build "app Flask con SQLite" -f # corrige automáticamente si falla
131
+ deep build "landing page en HTML/CSS" -o ~/dir # especifica directorio de salida
132
+ deep build "compilador de expresiones" --model deepseek-reasoner
133
+ ```
134
+
135
+ También podés combinar `-t` con otras opciones:
136
+
137
+ ```bash
138
+ deep build -t tarea.txt -f --model deepseek-reasoner -o ~/proyectos
139
+ ```
140
+
141
+ El archivo puede ser cualquier `.txt` con la descripción en lenguaje natural. En el REPL:
142
+
143
+ ```
144
+ deep ❯ build -t /ruta/mi_tarea.txt
145
+ deep ❯ build -t tarea.txt -f
146
+ ```
147
+
148
+ Cada `build` ejecuta 5 fases:
149
+
150
+ 1. **Planificación** — diseña la arquitectura usando experiencias previas similares
151
+ 2. **Generación** — escribe el código completo
152
+ 3. **Escritura** — guarda los archivos en disco
153
+ 4. **Evaluación** — revisa si el resultado cumple con la tarea
154
+ 5. **Aprendizaje** — guarda la experiencia para informar builds futuros
155
+
156
+ Si la evaluación falla, `deep` te pregunta si querés corregirlo (o usá `-f` para que lo haga sin preguntar).
157
+
158
+ ---
159
+
160
+ ### `ask` — Conversación con el modelo
161
+
162
+ ```bash
163
+ deep ask "cómo funciona Redis?"
164
+ ```
165
+
166
+ Dentro del REPL, `ask` inicia una conversación. El prompt cambia a `chat ❯` y podés seguir preguntando sin repetir el comando:
167
+
168
+ ```
169
+ deep ❯ ask qué es Redis?
170
+ ...respuesta...
171
+
172
+ chat ❯ es necesario dockerizarlo? ← continúa el hilo automáticamente
173
+ ...respuesta contextual...
174
+
175
+ chat ❯ ask qué es Kafka? ← ask resetea e inicia nueva conversación
176
+ ```
177
+
178
+ Cuando la conversación se acerca al límite de contexto del modelo, `deep` la compacta automáticamente:
179
+
180
+ ```
181
+ ⚡ Compactando conversación…
182
+ ```
183
+
184
+ Esto resume los mensajes anteriores para que la conversación pueda continuar indefinidamente sin perder el hilo.
185
+
186
+ Para reiniciar la conversación manualmente:
187
+
188
+ ```
189
+ chat ❯ reset
190
+ ```
191
+
192
+ ---
193
+
194
+ ### `update` — Modifica un proyecto existente
195
+
196
+ ```bash
197
+ deep update "agregá autenticación JWT"
198
+ deep update "agregá tests unitarios" --model deepseek-reasoner
199
+ ```
200
+
201
+ Modifica los archivos del proyecto en el directorio actual sin tener que regenerarlo desde cero.
202
+
203
+ ---
204
+
205
+ ### `fix` — Corrige errores del proyecto actual
206
+
207
+ ```bash
208
+ deep fix
209
+ ```
210
+
211
+ Usa el contexto guardado en `.deep/` para corregir el proyecto sin necesidad de volver a describir la tarea.
212
+
213
+ ---
214
+
215
+ ### `show` — Muestra el contexto del proyecto actual
216
+
217
+ ```bash
218
+ deep show
219
+ ```
220
+
221
+ Muestra la tarea original, el modelo usado, el plan, los archivos generados y el resultado de la evaluación.
222
+
223
+ ---
224
+
225
+ ### `serve` — Servidor web para usar deep desde el celular
226
+
227
+ ```bash
228
+ deep serve # HTTP básico
229
+ deep serve --https # HTTPS + instalable como app
230
+ deep serve --port 9000 --https # puerto personalizado con HTTPS
231
+ ```
232
+
233
+ Levanta una interfaz web accesible desde cualquier dispositivo en la red.
234
+
235
+ ---
236
+
237
+ #### Recomendación: usá Tailscale para conectar el celular
238
+
239
+ [Tailscale](https://tailscale.com) es la forma más cómoda y segura de acceder a `deep serve` desde el celular, incluso si estás en redes distintas (datos móviles, otra WiFi, etc.).
240
+
241
+ **Por qué Tailscale:**
242
+ - Te asigna una IP fija (`100.x.x.x`) que no cambia aunque cambies de red
243
+ - Funciona sin abrir puertos en el router
244
+ - La URL es siempre la misma, sin tener que buscar la IP local cada vez
245
+ - Sin Tailscale, el celular y la computadora tienen que estar en la misma WiFi
246
+
247
+ **Setup (una sola vez):**
248
+
249
+ 1. Instalá Tailscale en la compu: [tailscale.com/download](https://tailscale.com/download)
250
+ 2. Instalá Tailscale en el celular (App Store / Play Store)
251
+ 3. Logueate con la misma cuenta en ambos
252
+ 4. Listo — la compu aparece en la red Tailscale con una IP `100.x.x.x`
253
+
254
+ Con Tailscale activo, `deep serve --https` muestra directamente la URL `100.x.x.x` para usar desde el celular.
255
+
256
+ ---
257
+
258
+ #### Instalar como app en el celular (PWA)
259
+
260
+ Para que el celular pueda instalar `deep` como app nativa, la conexión tiene que ser HTTPS. `deep serve --https` genera el certificado automáticamente.
261
+
262
+ > **Requiere `trustme`:** `pip install trustme` o `pip install "deepseekcli[https]"`
263
+
264
+ **Primera vez — instalación del certificado (una sola vez por dispositivo):**
265
+
266
+ ```
267
+ $ deep serve --https
268
+
269
+ 🔐 HTTPS activado
270
+
271
+ Paso 1 — Instalá el certificado CA en tu celular (una sola vez):
272
+ http://100.x.x.x:8001 ← abrí esta URL en el celular
273
+
274
+ Android : Ajustes → Seguridad → Instalar certificado → CA certificate
275
+ iOS : Abrir archivo descargado → Ajustes → General →
276
+ VPN y administración del dispositivo → Instalar → Confiar
277
+
278
+ Paso 2 — Abrí la app e instalala:
279
+ https://100.x.x.x:8000 ← abrí esta URL en el celular
280
+ ```
281
+
282
+ **Pasos:**
283
+
284
+ 1. Abrí la URL del **Paso 1** en el navegador del celular
285
+ 2. Descargá el archivo `.pem` y seguí las instrucciones según tu sistema:
286
+ - **Android:** Ajustes → Seguridad → Cifrado y credenciales → Instalar un certificado → Certificado de CA
287
+ - **iOS:** Al abrir el archivo, aparece "Perfil descargado" → Ajustes → General → VPN y administración → Instalar → Confiar en el certificado raíz
288
+ 3. Abrí la URL del **Paso 2** en el navegador — aparece el botón **⬇** en la cabecera
289
+ 4. Tap en **⬇** → la app se instala como si fuera nativa
290
+
291
+ A partir de ese momento no necesitás repetir el proceso. Solo `deep serve --https` y abrís la app instalada directamente desde el home del celular.
292
+
293
+ > **Nota:** El certificado autofirmado es local y temporal — es solo para que el navegador acepte HTTPS en tu red privada. No sale a internet.
294
+
295
+ ---
296
+
297
+ ### `doctor` — Diagnóstico del entorno
298
+
299
+ ```bash
300
+ deep doctor
301
+ ```
302
+
303
+ Verifica Python, API key, conexión con DeepSeek, dependencias y configuración del PATH. Funciona correctamente en Linux, macOS y Windows.
304
+
305
+ ---
306
+
307
+ ### `upgrade` — Actualiza el CLI
308
+
309
+ ```bash
310
+ deep upgrade
311
+ ```
312
+
313
+ Descarga e instala la última versión desde GitHub sin necesidad de reinstalar manualmente.
314
+
315
+ ---
316
+
317
+ ### `balance` / `history` / `config`
318
+
319
+ ```bash
320
+ deep balance # muestra el crédito disponible en DeepSeek
321
+ deep history # muestra las experiencias acumuladas de builds anteriores
322
+ deep config # muestra la API key guardada
323
+ deep config set-key # guarda una nueva API key
324
+ ```
325
+
326
+ ---
327
+
328
+ ## Debug
329
+
330
+ El flag `--debug` activa un log detallado de todo lo que hace `deep` durante una ejecución: prompts enviados, respuestas del modelo, tokens usados, latencias, archivos escritos y cada fase del pipeline. Se guarda en `debug.log` en el directorio donde corras el comando.
331
+
332
+ ### Activación
333
+
334
+ `--debug` va siempre **antes** del subcomando:
335
+
336
+ ```bash
337
+ deep --debug build "mi tarea"
338
+ deep --debug build -t tarea.txt
339
+ deep --debug build -t tarea.txt -f --model deepseek-reasoner
340
+ deep --debug ask "cómo funciona Redis?"
341
+ deep --debug update "agregá tests"
342
+ deep --debug fix
343
+ ```
344
+
345
+ También podés activarlo con una variable de entorno (útil para scripts):
346
+
347
+ ```bash
348
+ DEEP_DEBUG=1 deep build -t tarea.txt
349
+ ```
350
+
351
+ ### Debug con archivo de tarea
352
+
353
+ La combinación más común para analizar un build completo:
354
+
355
+ ```bash
356
+ # 1. Escribís la tarea en un .txt (sin límite de largo)
357
+ cat tarea.txt
358
+
359
+ # 2. Corrés con debug
360
+ deep --debug build -t tarea.txt
361
+
362
+ # 3. Analizás el log mientras corre o al terminar
363
+ tail -f debug.log # seguir en tiempo real
364
+ cat debug.log # ver todo al terminar
365
+ grep '\[API_OK\]' debug.log # solo latencias y tokens
366
+ grep '\[PHASE\]' debug.log # solo transiciones de fase
367
+ grep '\[WRITER\]' debug.log # solo archivos escritos
368
+ grep '\[EVAL\]' debug.log # solo el resultado de evaluación
369
+ ```
370
+
371
+ Podés combinar todos los flags normales con `--debug`:
372
+
373
+ ```bash
374
+ deep --debug build -t tarea.txt -f -o ~/proyectos --model deepseek-reasoner
375
+ ```
376
+
377
+ ### Estructura del log
378
+
379
+ Cada línea tiene el formato:
380
+
381
+ ```
382
+ [HH:MM:SS.mmm + elapsed] [TAG ] mensaje
383
+ ```
384
+
385
+ - `HH:MM:SS.mmm` — hora del evento con milisegundos
386
+ - `+elapsed` — segundos desde que arrancó la sesión (para medir duración de cada paso)
387
+ - `TAG` — identificador de la sección (ver tabla abajo)
388
+
389
+ Los bloques de texto largo (prompts, respuestas) se muestran indentados:
390
+
391
+ ```
392
+ [07:32:11.450 + 0.00s] [API_CALL ] model=deepseek-chat temp=0.5 max_tokens=1000
393
+ [07:32:11.451 + 0.01s] [API_SYS ] ── system_prompt ──────────────────────────────
394
+ Eres un arquitecto de software senior. Creas planes claros y accionables.
395
+ ────────────────────────────────────────────────────────────
396
+ [07:32:11.452 + 0.02s] [API_USER ] ── user_prompt ──────────────────────────────
397
+ Crea un plan detallado para:
398
+ API REST en FastAPI con JWT y PostgreSQL
399
+ ...
400
+ ────────────────────────────────────────────────────────────
401
+ [07:32:13.210 + 1.76s] [API_OK ] attempt=1 latency=1.76s tokens_in=320 tokens_out=580 total=900
402
+ [07:32:13.211 + 1.77s] [API_RESP ] ── response_content ──────────────────────────────
403
+ ## Plan
404
+ 1. Estructura de carpetas: app/, tests/, ...
405
+ ...
406
+ ────────────────────────────────────────────────────────────
407
+ ```
408
+
409
+ ### Tags del log
410
+
411
+ | Tag | Qué registra |
412
+ |-----|-------------|
413
+ | `INIT` | Comando completo con el que arrancó `deep` |
414
+ | `PHASE` | Transición de fase (1 planificación → 5 aprendizaje) |
415
+ | `API_CALL` | Antes de cada llamada: modelo, temperatura, max_tokens |
416
+ | `API_SYS` | System prompt completo enviado al modelo |
417
+ | `API_USER` | User prompt completo enviado al modelo |
418
+ | `API_OK` | Resultado: intento, latencia, tokens in/out/total |
419
+ | `API_RESP` | Respuesta completa del modelo |
420
+ | `API_ERR` | Error en un intento (incluye reintentos automáticos) |
421
+ | `PLAN` | Experiencias similares encontradas antes de planificar |
422
+ | `PHASE_1` | Plan generado por el modelo |
423
+ | `PHASE_2` | Tokens usados en la generación de código |
424
+ | `PHASE_3` | Archivos escritos en disco |
425
+ | `PHASE_4` | Resultado de la evaluación |
426
+ | `PHASE_5` | Análisis de experiencia guardado en memoria |
427
+ | `PHASE_6` | Reflexión profunda (si `reflect=True`) |
428
+ | `EVAL` | JSON de evaluación parseado (score, issues, positives) |
429
+ | `WRITER` | Directorio del proyecto, bloques detectados, cada archivo |
430
+ | `EXEC` | Tokens usados en la fase de ejecución |
431
+ | `FIX` | Flujo de corrección automática (`fix`, `build -f`) |
432
+ | `UPDATE` | Flujo de modificación de proyecto existente |
433
+ | `SYSTEM` | Resumen final del ciclo completo |
434
+
435
+ ### Queries útiles para analizar el log
436
+
437
+ ```bash
438
+ # Cuántas llamadas a la API y tokens totales
439
+ grep 'API_OK' debug.log
440
+
441
+ # Ver solo los archivos que se escribieron
442
+ grep '→' debug.log
443
+
444
+ # Ver si hubo errores o reintentos
445
+ grep 'API_ERR' debug.log
446
+
447
+ # Ver el resultado de la evaluación
448
+ grep -A 20 '\[EVAL\]' debug.log
449
+
450
+ # Medir cuánto tardó cada fase
451
+ grep -E '\[PHASE\]|\[PHASE_[1-8]\]' debug.log
452
+
453
+ # Ver si el modelo encontró experiencias previas similares
454
+ grep '\[PLAN\]' debug.log
455
+
456
+ # Seguir el log en tiempo real mientras corre el build
457
+ tail -f debug.log
458
+ ```
459
+
460
+ ### Notas
461
+
462
+ - El log se **agrega** al final del archivo (no sobreescribe). Cada sesión empieza con una línea `SESSION ...` para distinguirlas.
463
+ - Para empezar limpio antes de un debug: `rm debug.log`
464
+ - El archivo puede crecer rápido si los prompts/respuestas son largos. Un `build` típico genera entre 200 y 500 líneas.
465
+ - Para compartir el log o analizarlo después: el archivo es texto plano, se puede abrir con cualquier editor.
466
+
467
+ ---
468
+
469
+ ## Reglas personalizadas (.deeprules)
470
+
471
+ Podés definir restricciones que DeepSeek debe respetar en cada `build`, `update` y `fix`. Creá un archivo `.deeprules` en la raíz de tu proyecto:
472
+
473
+ ```
474
+ # .deeprules
475
+ Usar PostgreSQL, nunca SQLite
476
+ Todo el código fuente en inglés
477
+ Sin dependencias externas que no sean del stdlib
478
+ Separar rutas, modelos y servicios en archivos distintos
479
+ ```
480
+
481
+ Las líneas que empiezan con `#` son comentarios y se ignoran. Las reglas se cargan automáticamente si el archivo existe en el directorio actual.
482
+
483
+ Hay un ejemplo completo en [`examples/deeprules.example`](examples/deeprules.example).
484
+
485
+ ---
486
+
487
+ ## Skills
488
+
489
+ Los skills son **roles especializados** para el comando `ask`. A diferencia de las `.deeprules` (que restringen el *output* del código), un skill cambia *cómo responde* el modelo durante una conversación.
490
+
491
+ ### Usar un skill
492
+
493
+ ```
494
+ deep ❯ skill list
495
+ 📦 Skills disponibles:
496
+ reviewer Code review estricto como senior developer
497
+ security Análisis de seguridad — OWASP, vulnerabilidades, hardening
498
+ docs Genera documentación técnica clara y concisa
499
+ explainer Explica código o conceptos técnicos de forma simple
500
+ refactor Refactoriza código manteniendo el comportamiento
501
+
502
+ deep ❯ reviewer esta función tiene race conditions?
503
+ → abre conversación con el rol de reviewer
504
+
505
+ chat ❯ y si agregara un lock aquí... ← continúa con el mismo rol
506
+
507
+ deep ❯ reset ← nueva conversación
508
+ ```
509
+
510
+ El nombre del skill se usa directamente como comando. Cambiar de skill reinicia la conversación automáticamente.
511
+
512
+ ### Crear un skill
513
+
514
+ Interactivo:
515
+
516
+ ```
517
+ deep ❯ skill new
518
+ Nombre del skill: traductor
519
+ Descripción breve: Traduce documentación técnica al español
520
+ System prompt (terminá con una línea que solo diga FIN):
521
+ Sos un traductor técnico experto...
522
+ FIN
523
+ ¿Local al proyecto? [s/N]: n
524
+ ✅ Skill 'traductor' guardado en ~/.config/deep/skills/traductor.skill
525
+ ```
526
+
527
+ O creando el archivo directamente en `~/.config/deep/skills/`:
528
+
529
+ ```
530
+ # ~/.config/deep/skills/reviewer.skill
531
+ description: Code review estricto como senior developer
532
+ temperature: 0.2
533
+ max_tokens: 3000
534
+ ---
535
+ Sos un senior developer con 15 años de experiencia revisando código de otros.
536
+ Tu trabajo es encontrar problemas reales, no halagos.
537
+ ...
538
+ ```
539
+
540
+ ### Skills globales vs. de proyecto
541
+
542
+ | Ubicación | Alcance |
543
+ |-----------|---------|
544
+ | `~/.config/deep/skills/` | Disponibles desde cualquier directorio |
545
+ | `.deep/skills/` | Solo en el proyecto actual |
546
+
547
+ Los skills de proyecto se cargan además de los globales y tienen prioridad si hay un nombre repetido.
548
+
549
+ Hay ejemplos listos para usar en [`examples/skills/`](examples/skills/).
550
+
551
+ ---
552
+
553
+ ## Estructura del proyecto generado
554
+
555
+ Cada proyecto generado incluye una carpeta `.deep/` con metadatos:
556
+
557
+ ```
558
+ mi-proyecto/
559
+ ├── .deep/
560
+ │ ├── context.json # tarea, modelo y plan usado
561
+ │ ├── evaluation.json # resultado de la evaluación
562
+ │ └── RESPONSE.md # respuesta completa del modelo
563
+ └── ... archivos del proyecto
564
+ ```
565
+
566
+ Los comandos `fix`, `update` y `show` usan ese contexto automáticamente.
567
+
568
+ ---
569
+
570
+ ## Requisitos
571
+
572
+ - Python 3.9+
573
+ - API key de DeepSeek
574
+
575
+ ### Dependencias opcionales
576
+
577
+ ```bash
578
+ pip install prompt_toolkit # autocompletado e historial en el REPL
579
+ pip install trustme # HTTPS para instalar la app en el celular
580
+ pip install "deepseekcli[https]" # instala trustme junto con el paquete
581
+ ```
582
+
583
+ Sin `prompt_toolkit` el REPL funciona igual pero en modo básico (sin autocompletado). Sin `trustme`, `deep serve --https` muestra un error con las instrucciones de instalación.
584
+
585
+ ---
586
+
587
+ ## Compatibilidad
588
+
589
+ | Sistema | Estado |
590
+ |---------|--------|
591
+ | Linux | ✅ Completo |
592
+ | macOS | ✅ Completo |
593
+ | Windows 10+ (Windows Terminal) | ✅ Completo |
594
+ | Windows (cmd.exe) | ⚠️ Funcional, sin colores |
595
+ | WSL | ✅ Completo |
596
+
597
+ ---
598
+
599
+ ## Philosophy
600
+
601
+ See [PHILOSOPHY.md](PHILOSOPHY.md).
602
+
603
+ ## Contributing
604
+
605
+ See [CONTRIBUTING.md](CONTRIBUTING.md).
606
+
607
+ ## Code of Conduct
608
+
609
+ See [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).
610
+
611
+ ---
612
+
613
+ ## Contact
614
+
615
+ **alexissaucedo@gmail.com** · [cynchrolabs.com.ar](https://www.cynchrolabs.com.ar)
616
+
617
+ ## Buy me a coffee?
618
+
619
+ If `deep` saved you time, consider a donation — it helps keep the project going.
620
+
621
+ <a href="https://www.paypal.com/donate/?hosted_button_id=YX332RT7KSJ4Q">
622
+ <img src="https://img.shields.io/badge/PayPal-Donate-blue?logo=paypal" alt="Donate with PayPal"/>
623
+ </a>
624
+
625
+ ---
626
+
627
+ ⭐ If you like this project, give it a star!
628
+
629
+ <a href="https://github.com/cynchro/deepseekCLI">
630
+ <img src="https://img.shields.io/github/stars/cynchro/deepseekCLI?style=social" alt="GitHub stars"/>
631
+ </a>