Intermédiaire·2 min·12 juillet 2026

Shirei : enfin une GUI en Go sans HTML ni dépendances

🎧 Résumé audio0:00 / 0:00
Un framework Go pour faire des interfaces graphiques natives, sans HTML, sans dépendances système, avec le même code sur Mac, Windows et Linux.
Shirei : enfin une GUI en Go sans HTML ni dépendances

Pourquoi ça compte pour toi

Si tu codes en Go et que tu veux distribuer un petit outil avec GUI sans galère, Shirei résout le problème : binaire autonome (~10MB), pas de dépendances système à installer, API en "immediate mode" (tu décris ce que tu veux à chaque rendu, pas besoin de gérer les états des widgets). C'est aussi étonnamment facile pour les IA : Claude ou GPT la génère correctement du premier coup.

Ce qu'il faut retenir

  • 1.API immédiate (style React) : tu décris l'UI à chaque frame, zéro gestion d'état widget
  • 2.Vrai multiplateforme : même code, rendu identique sur macOS, Windows, Linux
  • 3.Prise en charge complète des langues complexes : shaping, bidirectional text, IME pour l'asiatique
  • 4.Binaire autonome : pas de dépendance système à installer (idéal Linux)
  • 5.Assez simple pour que l'IA génère du code correctement

Tu galères avec le jargon ?

Lis la version réécrite en mode débutant — toutes les idées, sans le jargon.

Pourquoi Shirei change la donne pour Go

Le problème classique : tu veux faire un petit outil avec GUI en Go. Soit tu utilises une lib web (Electron-like, lourd, lent). Soit tu touches à des frameworks desktop natifs (Gtk, Qt) qui te demandent des dépendances système partout, des liaisons bancales, et tu dois bidouiller l'état des widgets à la main. C'est l'enfer.

Shirei casse ce dilemme. Tu écris 100% en Go, tu décris ton UI comme tu décrirais une page React, et tu obtiens un vrai binaire autonome qui tient dans 10MB.

L'API : immediate mode, vraiment

Ce qui surprend, c'est que "immediate mode" ne veut pas dire "redessiner chaque pixel chaque frame" (c'est inefficace). Ça veut dire : tu décris l'état de l'UI entière à chaque frame, basée uniquement sur tes données, et le framework gère le reste.

Au lieu de :

button := NewButton()
button.SetLabel("Increment")
button.OnClick(func() { count++ })
window.Add(button)

Tu fais :

if Button(SymIPlus, "Increment") {
  count++
}

Le bouton n'existe que si tu le décris. Pas besoin de suivre s'il a changé, pas besoin de synchroniser son état avec ta variable. Zéro boilerplate.

Ça marche pour les langues complexes

Alors que la plupart des frameworks GUI ignorent les textes non-latins, Shirei intègre un vrai support : shaping (réarrangement des glyphes), mise en page bidirectionnelle, et IME (l'éditeur de méthode de saisie pour le chinois, le japonais, le coréen). C'est un détail, mais ça veut dire que ton appli n'a pas l'air d'une curiosité occidentale quand quelqu'un l'utilise en Asie.

Le coup d'œil IA

Le créateur note que les modèles IA génèrent du code Shirei correctement du premier coup. C'est vrai : l'API est si déclarative et lisible que Claude ne hallucine pas. C'est un signe de bon design.

Pour qui ?

  • Développeur Go qui veut distribuer un outil sans dépendances système
  • Qui a besoin de multiplateforme sans galère
  • Qui veut une alternative légère aux applis Electron
  • Qui laisse l'IA générer du code (ça marche bien ici)

Regarde l'exemple haystack dans le repo pour voir quel est le vrai niveau de complexité.

Et concrètement pour toi ?

Choisis ton profil — la lecture de l'article change selon qui tu es.

🔭 Curieux

Pour toi, c'est un signal : les outils qu'on va vraiment utiliser ne seront pas dans le navigateur mais sur le disque, simples et rapides. Shirei montre comment l'IA et les langages modernes suppriment enfin la friction entre une idée et un vrai produit.

Newsletters Noésis

3 minutes d'IA dans ta boîte mail, chaque matin.

Rejoins les francophones qui comprennent, essaient et progressent avec l'IA. Choisis ce que tu veux recevoir. Désabonnement en 1 clic.

Explorer les thèmes de cet article :