shareBin
shareBin/ est un dossier de petits exécutables livrés avec τ-mux. Son chemin absolu est ajouté en tête du $PATH de chaque shell que τ-mux ouvre, donc les scripts fournis (show_md, show_img, show_chart, …) sont accessibles comme commandes nues depuis n’importe quel volet — sans étape d’installation, sans modification de shell-rc, sans wrapper bun run.
Chaque script utilise le protocole sideband (fd 3/4/5) pour afficher un panneau HTML/SVG plein-volet épinglé au volet hôte. Quand l’utilisateur ferme le panneau — ou envoie SIGINT / SIGTERM — le script se termine.
Commandes fournies
Section intitulée « Commandes fournies »| Commande | Ce qu’elle fait |
|---|---|
show_md <file.md> | Aperçu markdown en direct. Re-rend à chaque changement de mtime sauf --no-watch. |
show_img <path> | Panneau image centré. Conserve le ratio ; plafond 50 Mo. |
show_html <file> | Habille un fragment HTML quelconque dans la chrome de panneau standard. |
show_table <csv|tsv> | Table HTML triable. Cliquer un en-tête trie asc / desc / restaure. |
show_chart <csv> | Graphique ligne / barre / nuage de points. Re-rendu à chaque redimensionnement. |
show_json <file> | Arbre JSON pliable. --depth N règle la profondeur ouverte par défaut. |
show_yaml <file> | YAML → arbre (parseur partiel ; pour du YAML complexe, passez par yq -o json). |
show_diff <patch> | Diff unifié côte-à-côte avec compte des hunks et des +/-. |
show_gitdiff | git diff du dépôt courant, côte-à-côte. |
show_gitlog [path] | Log git en graphe de branches. --max N et --branches. |
show_qr <text> | SVG de QR code. --ec, --scale, --margin, --dark/--light. |
show_sysmon | Moniteur système plein-volet — arc CPU, barres par cœur, RAM, top procs, sparkline. |
show_webcam | Flux MJPEG webcam via ffmpeg + AVFoundation (macOS) / V4L2 (Linux). |
show_logs [file] | Visionneuse de logs en direct — couleurs par niveau, compteurs, recherche, tampon borné. Lit un fichier en une passe ou streame stdin en direct. (0.3.186) |
show_csv_profile <csv|tsv> | Profilage de données — types de colonnes inférés, nulls, comptes de valeurs distinctes, valeurs les plus fréquentes, résumés numériques, histogrammes, lignes d’échantillon. (0.3.186) |
show_http | Inspecteur de réponses HTTP — depuis une sortie curl -i, un fichier sauvegardé, stdin, ou un fetch direct via --url. Statut, en-têtes, redirections, corps JSON/HTML/texte. (0.3.186) |
show_mermaid [file.mmd] | Rendu de diagrammes Mermaid (fichier ou stdin). La première version charge Mermaid depuis un CDN — nécessite un accès réseau. (0.3.186) |
show_env | Tableau de bord de diagnostics environnement + projet, avec caviardage prudent des secrets. (0.3.186) |
show_sqlite <db> | Navigateur SQLite en lecture seule — tables, schémas, comptes de lignes, aperçus, requête optionnelle en lecture seule. (0.3.186) |
show_ports | Tableau de bord en direct des ports TCP en écoute et de leurs processus propriétaires. (0.3.186) |
show_proc | Arbre de processus / inspecteur de ressources en direct (basé sur ps). (0.3.186) |
show_image_diff <a> <b> | Comparaison d’images pour captures d’écran/artefacts de design — modes côte-à-côte, pelure d’oignon et heatmap de diff. (0.3.186) |
show_openapi <spec> | Explorateur OpenAPI/Swagger interactif en lecture seule (JSON ou YAML). (0.3.186) |
demo_status_keys | Exerce tous les rendus du DSL de status-keys via ht set-status. |
La plupart acceptent <path> ou stdin (- est implicite quand argv est vide), donc ils se composent avec les pipes shell :
ps aux | show_table --tsvgit diff | show_diffcurl -s api.example.com/data.json | show_json --depth 3echo "https://example.com" | show_qr --ec HComment ça marche
Section intitulée « Comment ça marche »src/bun/pty-manager.tsrésout le chemin absolu deshareBin/(que l’on tourne depuis un checkout dev ou depuis le.apppackagé) et le préfixe auPATHde chaqueBun.spawn. Le dossier est aussi listé sousbuild.copydanselectrobun.config.tspour qu’il soit inclus dans le bundle.- Chaque script est un exécutable
#!/usr/bin/env bun(oupython3) sans extension —show_md, passhow_md.ts. Le shebang permet au kernel de les lancer directement via le lookupPATH. - Les scripts importent depuis
shareBin/lib/(helpers de rendu —full-screen,chart,csv,markdown,json-tree,qr,git-log,diff-render,table,yaml) et depuis les clients fournishyperterm.ts/hyperterm.py. Ces clients deviennent des no-ops hors de τ-mux, donc le même script tourne aussi depuis un terminal classique. - Le rendu passe par
lib/full-screen.ts, qui produit une page HTML stylée Catppuccin et l’épingle au volet hôte. La page se re-rend au redimensionnement, sort proprement à la fermeture, et n’affecte jamais le PTY sous-jacent.
Ajouter votre propre commande
Section intitulée « Ajouter votre propre commande »Déposez un exécutable dans shareBin/, marquez-le +x, et il devient une commande de première classe dans chaque shell τ-mux. Le guide d’authoring orienté agents — boilerplate, helpers de rendu, positionnement des panneaux, gestion des événements — vit dans doc/system-sharebin.md. Version courte :
#!/usr/bin/env bun// shareBin/show_widgetimport { fullScreenHtml, fullScreenPage, CATPPUCCIN } from "./lib/full-screen";
fullScreenHtml({ render: () => fullScreenPage({ tag: { label: "WIDGET", color: CATPPUCCIN.blue }, title: "hello", body: `<p style="padding:24px">…</p>`, }),});chmod +x shareBin/show_widget# rebuild / relance τ-mux — `show_widget` est maintenant sur le $PATH de chaque voletFichiers source
Section intitulée « Fichiers source »shareBin/— les scripts eux-mêmes et leurs helperslib/.shareBin/hyperterm.ts/shareBin/hyperterm.py— bibliothèques client sideband.src/bun/pty-manager.ts— préfixePATHau moment du spawn de shell.electrobun.config.ts—build.copy.shareBinembarque le dossier dans l’app packagée.doc/system-sharebin.md— guide d’authoring pour de nouvelles commandes.