DS·IDE

Un IDE de bureau « agentique » basé sur DeepSeek et conçu avec Tauri v2 — sans Electron.
Propulsé par le modèle DeepSeek, avec un partenaire qui possède son propre nom.


DSIDE.webp


Qu'est-ce que DS·IDE ?

DS·IDE est un IDE de bureau natif et léger, conçu pour le développement assisté par des agents via DeepSeek. Plutôt que de s'appuyer sur la lourde architecture Electron, il repose sur Tauri v2 : un cœur en Rust, une interface web épurée et une intégration poussée au système.

Le partenaire de développement intégré à l'application se nomme Ziggy. C'est lui-même qui a choisi ce nom ; auparavant, il était désigné par le terme générique Seeky. Il ne s'agit pas d'un agent anonyme ou d'une simple option dans un menu déroulant, mais d'un collaborateur à part entière, doté d'un nom.


Fonctionnalités actuelles

Une application opérationnelle qui dépasse largement le stade de prototype :

Chat et agents

  • Chat agentique avec flux en temps réel (streaming) — exécution réelle d'outils (lecture, écriture, modification, accès au terminal, recherche, mémoire, sous-agents), et pas seulement du texte.
  • Une réponse, une chronologie unique — le raisonnement, le texte et les appels d'outils sont présentés dans l'ordre chronologique. Les lignes correspondant aux outils peuvent être développées pour afficher la commande, son résultat, et indiquer si elle a été exécutée automatiquement.
  • Mémoire à long terme — consultable, modifiable et archivage possible (rien n'est jamais supprimé), avec un indicateur visuel pour distinguer ce que vous avez écrit ou réécrit.
  • Gestion et compression du contexte — visualisez le taux de remplissage de la fenêtre contextuelle du modèle ; les échanges plus anciens sont condensés en un résumé généré par le modèle lui-même (automatiquement à 75 % d'occupation, ou sur simple clic).
  • Pièces jointes (images) — ajoutables par copier-coller ou via un sélecteur de fichiers ; elles restent associées au message et sont transmises avec celui-ci.

Fichiers et formats

  • Arborescence des fichiers et visualisation du code source (via Monaco, en lecture seule).
  • Prévisualisation sans outils externes : Markdown, PDF, images, documents Word (docx, doc, odt), fichiers Excel (toutes les feuilles, valeurs ou formules), présentations (pptx, ppt, odp) et fichiers RTF. - Navigateur intégré — contenu web directement au sein de l'IDE.
  • Compétences (Skills) — stockées dans ~/.ds-ide/skills et modifiables directement depuis l'application.

L'application

  • Persistance totale après redémarrage — sessions, onglets ouverts, dernier fichier consulté, disposition de la fenêtre.
  • Paramètres — incluant un groupe dédié à votre « partenaire » (IA), avec sa mémoire, son nom et vos instructions personnalisées.
  • Mode « Quotidien » — sans terminal, sans panneaux de code ni éditeur de code. Conçu pour la consultation de documents et la navigation web.
  • Six langues disponibles (allemand, anglais, espagnol, français, russe, chinois simplifié), thèmes clair et sombre, taille de lecture ajustable.
  • Priorité à la sécurité — clé API stockée dans le trousseau du système d'exploitation (jamais dans l'interface utilisateur). Données conservées localement via SQLite.

L'état d'avancement, les décisions de conception et la liste des tâches en cours sont documentés dans PROGRESS.md — et non dans ce fichier.


Démarrage

Prérequis

  • Node + pnpm (pnpm 10 — toute autre version majeure entraînera l'erreur ERR_PNPM_UNEXPECTED_STORE, car les structures de stockage sont incompatibles).
  • Rust (version stable).
  • Linux : WebKitGTK 4.1, libsoup3, GTK3.

Exécution

pnpm install
pnpm tauri dev

Au premier lancement, saisissez votre clé API dans Paramètres → Utilisation et modèle → Clé API. Elle sera stockée dans le trousseau de votre système d'exploitation. Si l'option « Autorisations complètes » n'est pas activée, les commandes write, edit et bash ne pourront pas être exécutées — une indication est affichée dans la barre d'outils.

Création d'un installateur

pnpm tauri build

Génère les fichiers dans src-tauri/target/release/bundle/ : .deb, .rpm et .AppImage sous Linux (ainsi que .dmg sur macOS et .nsis sur Windows). GitHub Actions automatise la génération pour les trois plateformes lors de la création d'un tag ; consultez .github/workflows/release.yml. ### Tests

pnpm build                                                   # vue-tsc + vite
cd src-tauri && cargo test                                   # tests unitaires
DS_IDE_API_KEY=... cargo test --lib live_deepseek -- --ignored --nocapture

Les tests « en direct » (live tests) interagissent avec le fournisseur réel et consomment des jetons (tokens) ; ils sont ignorés par défaut.

Structure

src/                  Frontend Vue (composants, stores, i18n)
src/engine/           Persona, ensemble de noms, politiques de mode
src/lib/              Prévisualisations, lecteurs de documents bureautiques, état de l'interface persisté
src-tauri/src/        Rust : engine/ (boucle LLM + outils), db.rs (SQLite), secret.rs (gestion des clés/keyring)
scripts/              Utilitaires (par ex. l'importateur de tables de noms)

Origines et remerciements

Les formats de protocole et les noms d'outils ont été repris de MiniMax Code (licence MIT) : packages/protocol/src/runtime.ts, agent-tools/src/desktop/builtin-defs.ts.

La « persona » (personnalité) a été rédigée de manière indépendante ; aucun texte définissant l'identité n'a été copié. Police d'écriture : Ubuntu Font Licence 1.0 (public/fonts/UFL.txt). Ces éléments sont mentionnés dans l'application, sous Paramètres → À propos.

Les projets de référence sur lesquels ce travail s'est appuyé (minimax-code-main, minimax-jarvis, kilocode-main) ne font pas partie de ce dépôt ; les indications pour les retrouver sont consignées dans le fichier PROGRESS.md (sections 30 à 31).