Aller au contenu
ColliePWA

Une interface mobile pour vos agents de terminal.

ColliePWA s'intègre là où vous travaillez déjà, dans le multiplexeur de terminal de votre machine. Les agents de code s'exécutent dans des panneaux séparés et demandent des saisies. ColliePWA liste les instances en cours d'exécution, signale les sessions bloquées et vous permet de répondre depuis un téléphone.

  • Backend de multiplexeur :
  • Herdr
  • tmux
  • Zellij

Herdr est le backend principal pris en charge dans la version 1.0. Le support de tmux et de zellij est expérimental. Détails dans Multiplexeurs

Capture d'interface statique avec des sessions fictives. L'interface de démo n'est pas interactive.

01/Démo

Démo interactive.

Il s'agit du client ColliePWA de production. Les agents, les terminaux et les réponses utilisent des données fictives rejouées localement dans votre navigateur. Rien ne s'exécute sur un serveur et aucun trafic réseau n'est envoyé.

  1. 01Sélectionnez l'agent bloqué en haut de la liste.
  2. 02Inspectez l'invite. Elle reproduit directement la sortie brute du terminal.
  3. 03Appuyez sur une réponse pour reprendre l'exécution.
  4. 04Sélectionnez Touches pour accéder aux modificateurs et à la navigation : Échap, Tab, flèches et Ctrl.
Ouvrir la démo en plein écran

02/Architecture centrale

Primitives fondamentales et ajouts de la 1.0.

pendant l'exécution

Mise en miroir directe du terminal

ColliePWA diffuse la sortie brute du terminal de l'agent avec la prise en charge complète des couleurs ANSI, évitant ainsi les résumés ou les transcriptions avec perte. L'affichage mobile correspond à l'octet près à votre terminal de bureau.

Volet de terminal dupliqué pendant l'exécution de l'agent avec les couleurs ANSI. ColliePWA fonctionne en mode déconnecté. Les interactions tactiles sont désactivées sans backend actif.

en cas de saisie requise

Réponses aux saisies en un clic

Les invites d'autorisation interactives s'affichent sous forme de boutons d'action distincts. La saisie est validée par rapport à l'état actuel du terminal avant l'envoi afin d'éviter les soumissions désynchronisées.

Volet bloqué en attente de la confirmation de l'utilisateur sur une invite d'autorisation. ColliePWA fonctionne en mode déconnecté. Les interactions tactiles sont désactivées sans backend actif.

Nouveautés de la version 1.0

03Prise en charge de la localisation

Traductions de l'interface pour l'anglais, l'allemand, l'espagnol, le coréen, le japonais et le chinois, configurables dans Settings. Seuls les éléments de l'interface sont traduits ; les flux de terminal de l'agent restent identiques à l'octet près.

Détails dans Configurer

Interface de sélection de la langue dans Settings. ColliePWA fonctionne en mode déconnecté. Les interactions tactiles sont désactivées sans backend actif.

04Autorisation explicite des appareils

collie pair génère un jeton de huit caractères avec une durée de vie (TTL) de dix minutes et une limite de cinq tentatives. Le client l'échange contre un jeton d'authentification dont le hash est stocké par le bridge. La révocation d'un appareil interrompt sa requête suivante.

Détails dans Sécurité

Écran d'association initial sur un bridge non lié. ColliePWA fonctionne en mode déconnecté. Les interactions tactiles sont désactivées sans backend actif.

05Transcription des entrées vocales

Le push-to-talk effectue la transcription directement dans le compositeur de saisie. Prise en charge des API compatibles OpenAI, des instances locales de whisper.cpp ou parakeet.cpp, ou des identifiants existants de Codex CLI sans clés distinctes. Nécessite HTTPS via tailscale serve ou un reverse proxy.

Détails dans Saisie vocale et Web Push

Configuration vocale routant les cibles de sortie de transcription. ColliePWA fonctionne en mode déconnecté. Les interactions tactiles sont désactivées sans backend actif.

06Web Push lors d'un changement d'état

Le Web Push optionnel envoie des notifications lorsqu'un agent attend une saisie ou se termine. La sélection d'une notification ouvre cet agent. Les filtres de transition et les périodes de ne pas déranger sont appliqués à l'ensemble du bridge sur tous les appareils. Nécessite HTTPS et collie push-keys.

Détails dans Saisie vocale et Web Push

07Espaces de travail Git worktree

Herdr imbrique les worktrees git directement sous l'extraction de leur dépôt parent au lieu de créer des entrées au niveau racine. Les worktrees sont suivis comme des espaces de travail natifs.

Deux worktrees imbriqués sous le dépôt `collie` ; l'espace de travail externe `blog` s'affiche à plat. ColliePWA fonctionne en mode déconnecté. Les interactions tactiles sont désactivées sans backend actif.

08Mode Zen

Un paramètre optionnel qui ajoute une bascule au menu du volet pour masquer toute la navigation et afficher uniquement le terminal. Laisse un seul bouton flottant pour quitter.

Détails dans Configurer

Configuration de la bascule du mode Zen dans les paramètres du volet. ColliePWA fonctionne en mode déconnecté. Les interactions tactiles sont désactivées sans backend actif.

Topologie réseau

09Passerelle de transport configurable

ColliePWA se lie strictement à localhost sans accès public entrant. Le transport vers les appareils mobiles peut utiliser la configuration automatisée de Tailscale dans collie start, des maillages WireGuard, des tunnels ou des reverse proxies standards.

Détails dans Sécurité

10Coordination multi-hôtes crew

Une crew correspond à ColliePWA sur chaque machine. Votre téléphone les joint toutes par l'intermédiaire du lead. Les téléversements, les journaux, les journaux d'audit, les mises à jour et le basculement sont gérés par machine, également sous tmux et zellij. Les machines enregistrées de Herdr restent dans la propre fenêtre de Herdr. La crew est ce que votre téléphone voit.

Détails dans Crews

Vue de la topologie des hôtes montrant les nœuds lead, deputy et homologues. ColliePWA fonctionne en mode déconnecté. Les interactions tactiles sont désactivées sans backend actif.

Fonctionnalités supplémentaires

11Supervision de processus unifiée
Regroupe les agents en cours d'exécution selon leur état d'exécution, en plaçant les processus bloqués en haut de l'interface.
12Rétention complète du défilement
ColliePWA diffuse les journaux complets des sessions d'agents, conservant l'historique du défilement au-delà de la zone d'affichage actuelle du terminal.
13Multiplexage multi-sessions
Expose toutes les sessions Herdr configurées depuis une passerelle unique, sélectionnables depuis la barre de navigation supérieure.

Liste complète issue du README de ColliePWA

03/À qui cela s'adresse

Pour les développeurs qui exécutent des agents dans un multiplexeur et s'éloignent de leur bureau.

ColliePWA est conçu pour un opérateur ayant plusieurs agents de code s'exécutant dans des volets de terminal sur un seul hôte. Il ne remplace pas le terminal. Il vous permet de répondre à un agent en attente depuis un téléphone, puis de reprendre ce que vous faisiez.

S'intègre là où vous travaillez déjà
Il se connecte au multiplexeur que vous utilisez déjà, Herdr, tmux ou zellij. Aucun nouveau modèle de session et aucune encapsulation de l'agent. Herdr est le backend pris en charge dans la version 1.0. tmux et zellij sont expérimentaux.
Pas de boutique d'applications, pas de cloud, pas de compte
Une PWA servie depuis votre propre machine sur votre tailnet. Pas d'inscription sur un store, pas de compte fournisseur et pas d'offre cloud. Les seuls services externes sont ceux que vous activez : le service de push du navigateur, et un point de terminaison de transcription cloud si vous en choisissez un plutôt qu'un moteur local. Ajoutez-la à l'écran d'accueil et elle fonctionne comme une application.
Conçu pour le clavier que vous n'avez pas
Les touches spéciales, les flèches et les modificateurs se trouvent sur un pavé numérique. Vos propres réponses rapides et commandes slash s'activent d'un simple toucher. Le champ de saisie est une simple zone de texte, la dictée du téléphone fonctionne donc directement. La saisie vocale intégrée est disponible après avoir exécuté collie stt setup sur une origine HTTPS.
Notifications lorsqu'un agent requiert une saisie
Le Web Push optionnel vous alerte lorsqu'un agent attend une saisie ou se termine. Toucher la notification ouvre le volet correspondant. Nécessite HTTPS et collie push-keys.
Plusieurs machines, une seule URL
Une crew rassemble chaque hôte derrière une seule adresse, avec un basculement que vous autorisez à l'avance et déclenchez depuis le navigateur. Une seule confirmation met à jour l'ensemble de la crew depuis le même écran.
Sous licence MIT. Venez contribuer.
Le code source est sur GitHub sous licence MIT. Les rapports de bogues issus de configurations avec tmux et zellij sont les bienvenus, y compris les rapports de configurations fonctionnelles.

04/Architecture

Modèle d'exécution local et limites de sécurité.

ColliePWA écrit dans vos sessions interactives de terminal avec les permissions de votre utilisateur actuel. Tout client ayant un accès réseau au port peut lire la sortie du terminal et exécuter des commandes arbitraires.

S'exécute sur l'hôte local de l'agent
Reproduit directement les sessions locales du multiplexeur. Herdr est entièrement pris en charge dans la version 1.0 ; les backends tmux et zellij sont expérimentaux. Fonctionne sans backend cloud, serveurs distants ou comptes externes.
Liaison loopback uniquement
Il se lie à l'interface de loopback et jamais à 0.0.0.0. Exactement un point d'entrée sécurisé est publié : tailscale serve, ou un reverse proxy que vous configurez. Jamais de funnel.
Authentification au niveau de l'hôte
Le contrôle d'accès est géré au niveau de la couche réseau plutôt que par des identifiants applicatifs. Tout utilisateur sur un appareil autorisé dispose d'un accès shell complet.
Frontière d'accès au système local
Les sockets de domaine unix du multiplexeur appliquent les permissions du système de fichiers local. Le port TCP de ColliePWA est accessible aux autres utilisateurs locaux. Appliquez l'isolation à l'aide de filtres ingress et de COLLIE_TRUSTED_USER.

Code source sous licence MIT. Consultez la security note pour le détail des contrôles d'accès et des frontières de confiance.

05/Installation

Installez via le script shell ou compilez depuis les sources.

ColliePWA s'exécute à côté de vos agents, sur la machine qui les héberge déjà. Le script télécharge une release pour votre plateforme et la vérifie. La compilation depuis les sources nécessite git et Bun, et constitue la solution pour une machine non couverte par les releases. Les deux méthodes placent collie dans votre PATH, et aucune ne démarre quoi que ce soit.

$ curl -fsSL https://colliepwa.dev/install.sh | sh

Un script d'installation POSIX sh court. Il évite sudo, ne démarre aucun service système et isole les fichiers dans ~/.local/share/collie et ~/.local/bin. Il récupère la dernière release, valide le hash sha256 publié, écrit le binaire et met à jour le PATH. Nécessite curl, tar et les outils sha256.

Servi localement depuis cette origine. Le code source de référence se trouve dans scripts/install.sh sur le dépôt. Inspectez le script avant de l'exécuter :

$ curl -fsSL https://raw.githubusercontent.com/AltanS/collie/main/scripts/install.sh | less
$ curl -fsSL https://raw.githubusercontent.com/AltanS/collie/main/scripts/install.sh | sh

Exécutez collie update pour télécharger, vérifier et basculer vers des releases plus récentes. Les versions précédentes restent en cache pour collie update --rollback. Les compilations depuis les sources mettent directement à jour les révisions git, sans cibles de rollback de release.

Issu de scripts/install.sh à 2ded11d, le 2026-08-31.

Une seule étape restante : démarrez-le.

# one step left. It asks which multiplexer to mirror — herdr, tmux or
# zellij — and writes your answer to ~/.config/collie/.env, creating it.
$ collie start

La configuration est facultative et réside dans ~/.config/collie/.env, le fichier créé par start. Définissez-y COLLIE_TRUSTED_USER, ainsi que le port ou le point d'entrée si les valeurs par défaut ne conviennent pas.

Accédez à l'URL générée depuis votre appareil mobile sur votre réseau local. Ajoutez-la à l'écran d'accueil pour le mode plein écran.

Nécessite un ingress privé. ColliePWA se lie strictement aux interfaces de loopback. Tailscale est configuré par défaut : collie start exécute tailscale serve sur votre nom d'hôte MagicDNS. Les reverse proxies personnalisés, les réseaux maillés et les tunnels SSH sont documentés dans DEPLOYMENT.md. Architecture mono-utilisateur uniquement.

Prérequis, guides de compilation et sortie initiale