DS·IDE
Un IDE de escritorio con capacidades de agente, desarrollado con Tauri v2 — sin Electron.
Impulsado por el modelo DeepSeek, cuenta con un asistente que tiene nombre propio.

¿Qué es DS·IDE?
DS·IDE es un IDE de escritorio nativo y ligero, diseñado para la programación mediante agentes con DeepSeek. En lugar de utilizar la pesada arquitectura de Electron, funciona sobre Tauri v2: un núcleo en Rust, una interfaz web optimizada y una profunda integración con el sistema.
El asistente de programación integrado en la aplicación se llama Ziggy. Él mismo eligió ese nombre; anteriormente, se le conocía por el nombre provisional Seeky. No es un agente anónimo ni una simple opción en un menú desplegable: es un colaborador con nombre propio.
Funcionalidades actuales
Una aplicación funcional que va mucho más allá de un simple prototipo:
Chat y Agente
- Chat con capacidades de agente y transmisión en tiempo real (streaming): ejecución real de herramientas —lectura, escritura, edición, uso de la terminal (shell), búsqueda, memoria y subagentes—, no solo texto.
- Una única respuesta, una línea temporal: el proceso de razonamiento, el texto generado y las llamadas a herramientas aparecen en el orden en que ocurrieron. Las secciones de herramientas pueden expandirse para mostrar el comando ejecutado, su resultado y si se ejecutó automáticamente sin necesidad de confirmación.
- Memoria a largo plazo: puedes consultar, corregir o descartar elementos (nada se elimina permanentemente), con indicadores visuales que señalan qué contenido has escrito o modificado tú.
- Gestión y compresión del contexto: visualiza el nivel de ocupación de la ventana de contexto del modelo. Los intercambios más antiguos se condensan en un resumen generado automáticamente por el propio modelo (al alcanzar el 75 % de capacidad o al hacer clic).
- Adjuntos de imágenes: mediante la función de pegar o a través del selector de archivos; las imágenes permanecen vinculadas al mensaje y se envían junto con él.
Archivos y formatos
- Árbol de archivos y visualización de código fuente (basado en Monaco, en modo de solo lectura).
- Previsualización sin necesidad de herramientas externas: Markdown, PDF, imágenes, documentos de Word (docx, doc, odt), hojas de cálculo de Excel (todas las hojas, valores o fórmulas), presentaciones (pptx, ppt, odp) y archivos RTF. - Navegador integrado: contenido web directamente dentro del IDE.
- Skills (habilidades): se almacenan en
~/.ds-ide/skillsy pueden redactarse desde la propia aplicación.
La aplicación
- Persistencia tras el reinicio: se conservan las sesiones, las pestañas abiertas, el último archivo utilizado y la geometría de la ventana.
- Configuración: incluye un apartado —denominado según tu «compañero» (partner)— que contiene la memoria, el nombre y tus propias instrucciones personalizadas.
- Modo «uso diario» (Everyday mode): sin terminal (shell), sin paneles de código ni editor de código. Diseñado para trabajar con documentos y la web.
- Seis idiomas disponibles: (alemán, inglés, español, francés, ruso, chino simplificado), temas claro y oscuro, y tamaño de lectura ajustable.
- Seguridad ante todo: la clave API se almacena en el llavero (keychain) del sistema operativo, nunca en el frontend. Todos los datos residen localmente en una base de datos SQLite.
El estado actual del proyecto, todas las decisiones de diseño y la lista de tareas pendientes se encuentran en PROGRESS.md, no en este archivo.
Primeros pasos
Requisitos previos
- Node + pnpm (pnpm 10; el uso de una versión mayor provocará el error
ERR_PNPM_UNEXPECTED_STORE, ya que las estructuras de almacenamiento son incompatibles). - Rust (versión estable).
- Linux: WebKitGTK 4.1, libsoup3, GTK3.
Ejecución
pnpm install
pnpm tauri dev
Al iniciar por primera vez, introduce tu clave API en Settings → Usage & Model → API Key. Esta se guardará en el llavero del sistema operativo. Si no están habilitados los «Permisos completos» (Full permissions), las funciones write (escribir), edit (editar) y bash no se ejecutarán; la barra de herramientas indicará esta restricción.
Creación de un instalador
pnpm tauri build
Genera los archivos en src-tauri/target/release/bundle/: .deb, .rpm y .AppImage en Linux (además de .dmg en macOS y .nsis en Windows). GitHub Actions compila la aplicación para las tres plataformas al crear una etiqueta (tag); consulta el archivo .github/workflows/release.yml. ### Pruebas
pnpm build # vue-tsc + vite
cd src-tauri && cargo test # pruebas unitarias
DS_IDE_API_KEY=... cargo test --lib live_deepseek -- --ignored --nocapture
Las pruebas en vivo interactúan con el proveedor real y consumen tokens; por defecto, se encuentran ignoradas (omitidas).
Estructura
src/ Frontend en Vue (componentes, stores, i18n)
src/engine/ Persona, conjunto de nombres, políticas de modo
src/lib/ Vistas previas, lectores de documentos de oficina, estado de la interfaz persistido
src-tauri/src/ Rust: engine/ (bucle LLM + herramientas), db.rs (SQLite), secret.rs (gestión de claves)
scripts/ Pequeñas herramientas (p. ej., el importador de tablas de nombres)
Orígenes y agradecimientos
Los formatos de protocolo y los nombres de las herramientas se han tomado de MiniMax Code (licencia MIT): packages/protocol/src/runtime.ts, agent-tools/src/desktop/builtin-defs.ts.
La «persona» (perfil del agente) se redactó de forma independiente; no se ha copiado ningún texto que defina su identidad. Tipo de letra: Ubuntu Font Licence 1.0 (public/fonts/UFL.txt). Ambos elementos aparecen acreditados en la aplicación, en la sección Configuración → Acerca de.
Los proyectos de referencia sobre los que se ha desarrollado este trabajo (minimax-code-main, minimax-jarvis, kilocode-main) no forman parte de este repositorio; la información sobre dónde encontrarlos se detalla en PROGRESS.md (secciones 30–31).