OpenCode Desktop abandonne Tauri pour Electron : un choix pragmatique pour un agent de coding IA en TypeScript

OpenCode Desktop abandonne Tauri pour Electron : un choix pragmatique pour un agent de coding IA en TypeScript

lschvn

TypeScript du sol au plafond

OpenCode est un agent de coding IA open source construit intégralement en TypeScript. Son architecture repose sur un modèle client-serveur : le TUI, l'interface web et les clients desktop communiquent tous avec un serveur central qui gère les interactions LLM, les boucles d'agent et une base SQLite. Cela signifie qu'un processus serveur en fonctionnement est toujours nécessaire — c'est autour de ce serveur que l'application Desktop a toujours été construite.

La première version Desktop utilisait Tauri, choisi pour son profil léger comme simple conteneur de webview. Au démarrage, le CLI bundlé lançait opencode serve, donnant à l'interface web un serveur local auquel se connecter. Ça fonctionnait, mais deux problèmes se sont accumulés avec le temps.

Le problème WebKit

Tauri utilise la WebView système sur macOS et Linux — WebKit sur ces plateformes, WebView2 sur Windows. L'équipe d'OpenCode a constaté que WebKit ne se contentait pas de rendre leur UI avec de moins bonnes performances que Chromium : il produisait aussi des incohérences visuelles mineures entre plateformes. Pour une application utilisée quotidiennement par des développeurs qui changent de système d'exploitation, la cohérence compte.

Tauri a un effort en cours pour supporter Chromium via CEF plutôt que la webview système, mais aucune date ferme de stabilisation n'existe. OpenCode ne pouvait pas attendre.

La Taxe du CLI Bundlé

Le second problème était le CLI lui-même. Le code serveur d'OpenCode utilisait à l'origine des API spécifiques à Bun, ce qui nécessitait de bundler le CLI Bun dans Tauri. Cela avait deux conséquences : des temps de démarrage plus lents, et des plantages occasionnels sur Windows que l'équipe a consacrés beaucoup d'efforts à contourner.

Quand OpenCode a décidé de toute façon de s'éloigner des API Bun (en faveur de la compatibilité Node), l'attrait de bundler un CLI entier a disparu. Le processus Node intégré à Electron pouvait simplement exécuter le serveur directement — pas de sous-processus, pas de binaire externe, pas de taxe au démarrage.

Ce qui change et ce qui ne change pas

OpenCode Desktop va bientôt diffuser la build Electron par défaut pour les téléchargements directs et les mises à jour du canal bêta, avant de migrer progressivement les versions générales. Le serveur sous-jacent tourne toujours en TypeScript — il s'exécute juste maintenant dans le processus Node d'Electron plutôt que dans un binaire externe bundlé.

L'équipe est directe sur le compromis : les plugins qui dépendent d'API spécifiques à Bun ne fonctionneront plus dans les builds Electron. Une explication complète est promise avec OpenCode 2.0.

Pas un jugement sur Rust ou Tauri

L'équipe d'OpenCode a pris soin de présenter cela comme une décision guidée par le cas d'usage, pas un jugement de valeur sur Tauri ou Rust. Tauri excelle quand la logique centrale d'une application réside en Rust et que la webview est réellement légère. L'architecture d'OpenCode, tout en TypeScript, annulait les avantages du Rust sur la partie calcul intensive.

Si vous construisez une app avec une UI plus simple qui demande des performances natives ou un accès facile aux API système, Tauri reste un excellent choix.

La bêta Electron est disponible sur le dépôt GitHub opencode-beta.

Questions fréquentes

Articles connexes

Plus de couverture avec des sujets et tags en commun.

Bun rejoint Anthropic : ce que l'acquisition signifie pour l'écosystème JavaScript
TypeScript

Bun rejoint Anthropic : ce que l'acquisition signifie pour l'écosystème JavaScript

Le runtime, bundler et toolkit JavaScript construit par une équipe de 14 personnes et utilisé par des millions de développeurs a été acquis par Anthropic. Bun reste open source et sous licence MIT, mais la roadmap s'oriente désormais vers l'infrastructure de coding IA.
Astro 6.1.8 corrige un bug critique de nom de fichier sur Netlify et une faille de sécurité sur /_image
TypeScript

Astro 6.1.8 corrige un bug critique de nom de fichier sur Netlify et une faille de sécurité sur /_image

Astro 6.1.8 corrige une régression où les noms de fichiers de build contenant des caractères spéciaux cassaient les déploiements Netlify et Vercel, et colmate une faille de confusion content-type dans l'endpoint image intégré qui pouvait servir du non-SVG comme SVG.
Nitro v3 Beta : Tracing intégré, détection inteligente des dépendances et support Vercel Queues
TypeScript

Nitro v3 Beta : Tracing intégré, détection inteligente des dépendances et support Vercel Queues

La mise à jour beta Nitro v3 d'avril 2026 apporte des canaux de tracing intégrés, une détection des dépendances en mode full-trace avec reconnaissance des packages natifs, le support des queues Vercel, et le déploiement sur Tencent EdgeOne Pages.

Commentaires

Connexion Connectez-vous pour participer à la conversation.

Pas encore de commentaires. Soyez le premier à partager vos pensées.