Aller au contenu
Logo τ-mux — un tau cyan lumineux sur fond sombre

τ-mux

Un terminal hybride où xterm.js cohabite avec des canvas flottants, un observateur de processus à 1 Hz et une CLI scriptable.
une lettre d’amour, pas un produit

J’aimais bien cmux. J’adore le vibe coding.

Alors j’ai essayé d’en faire un clone vibe-codé —
aussi pro qu’un projet vibe-codé peut l’être.

« Juste un projet perso. »

τ-mux est un émulateur de terminal de bureau qui laisse la couche texte du PTY intacte tout en superposant par-dessus des canvas flottants, de la télémétrie de processus en direct et des canaux structurés pour les scripts. Il est piloté au clavier, agréable à la souris, et entièrement scriptable depuis le shell via la CLI ht.

τ-mux en cours d'utilisation avec un panneau Pi Agent, un split Claude Code, un panneau de plan d'agent dans la barre latérale, une arborescence de fichiers et des touches de statut en bas.

Multiplexeur de terminal

Espaces de travail, splits en mosaïque, séparateurs glissables, glisser-déposer de panneaux, couleurs d’espace. xterm.js avec PTYs Bun.spawn — sans node-pty.

Panneaux canvas

Superpositions flottantes SVG, HTML, image et canvas2d pilotées par des descripteurs de fichier supplémentaires (fd 3/4/5). Éléments DOM indépendants — déplaçables, redimensionnables, interactifs.

Métadonnées de processus en direct

Un observateur 1 Hz bâti sur libSystem (sysctl + proc_pidinfo, ~2 ms/tick) expose le cwd, les ports, le %CPU, la RSS et l’argv complet de chaque descendant de chaque shell — avec repli sur ps/lsof si l’ABI noyau change. Les puces, la barre latérale et la CLI s’alimentent au même pipeline.

CLI `ht`

Crée des panneaux, envoie des touches, manipule les layouts, ouvre des ports dans un navigateur, envoie des signaux, inspecte des arbres. Livré en binaire autonome dans le .app.

Navigateur intégré

Des panneaux WebKit aux côtés des terminaux avec ⌘⇧L. Barre d’adresse, détection d’URL intelligente et plus de 40 commandes scriptables via ht browser.

Miroir web

Toute l’interface native diffusée sur WebSocket vers n’importe quoi sur le LAN. Auth par jeton, contrôles d’origine, reprise à la reconnexion.

Claude Code, intégré en profondeur

Phase de session, coût, contexte et rate limits en direct dans la barre latérale ; invites de permission répondues depuis une modale, depuis Telegram, ou automatiquement ; liste de tâches native reflétée dans le panneau de plan ; et un panneau Claude Code de premier rang.

Panneaux d'agents

L’agent pi et Claude Code tournent comme de vrais panneaux — identité ambre, transcripts streamés, cartes d’outils, approbations — à côté de vos shells.

Applications d'extension

Un backend Bun plus un frontend Vite en iframe, pilotant toute la surface de contrôle de τ-mux via un SDK typé. Code totalement de confiance — n’installez que ce que vous enverriez dans un shell.

Pont Telegram

Un panneau de chat, le relais de notifications et des invites ask-user répondables depuis votre téléphone, avec journal SQLite et allowlist fail-closed.

Éditeur & explorateur

Panneaux éditeur CodeMirror et arborescence de fichiers intégrée à la carte d’espace.

  • Runtime — Bun 1.3+
  • Framework — Electrobun 1.16+
  • Terminal — xterm.js 5.3
  • PTY — Bun.spawn avec l’option terminal (sans node-pty)
  • Métadonnées de processus — libSystem FFI, repli ps + lsof (sans tmux, sans intégration shell)
  • Thème par défaut — Obsidian (10 préréglages intégrés)

Licence : MIT.