04/Documentation
Collie sur Windows
Windows 11 avec Herdr : ce qui est pris en charge, installer avec install.ps1, le binaire non signé, la mise à jour, les chemins longs, et ce qui n'est pas testé
Comment installer Collie sur Windows 11, l'ouvrir sur votre téléphone et corriger les erreurs éventuelles. Lisez d'abord Sécurité : de par sa conception, Collie donne un accès shell distant à votre machine.
Sur Linux et macOS, collie start peut publier Collie sur votre téléphone pour vous, avec Tailscale Serve. Tailscale est un service qui connecte vos propres appareils dans un réseau privé, appelé tailnet.
Sur Windows, Collie ne se publie pas tout seul. Tailscale Serve attribue à Collie une adresse HTTPS sur votre tailnet, et sur Windows vous effectuez cette étape à la main. Y accéder depuis votre téléphone montre comment faire.
Expérimental. Expérimental signifie que le mainteneur gère et teste le code Windows, et que les éléments ci-dessous ne sont pas tous validés. Voici l'état complet : Testé - Une répétition d'installation, de mise à jour et de retour arrière en 25 étapes sur une machine virtuelle Windows 11, avec des copies locales des fichiers de version. - Une installation réelle à partir de la version publique v1.16.0 sur une machine virtuelle Windows 11 :install.ps1a trouvé la version, le sha256 correspondait etcollie.exea tourné. Ensuitecollie start,collie status,collie doctoretcollie stopont fonctionné. - L'accès depuis un téléphone via Tailscale Serve en HTTP, sur un tailnet Headscale : vérification de l'hôte,collie url, appairage et barrière d'écriture. Pas encore testé - Une mise à jour entre deux versions réelles sur Windows. - La variante HTTPS de Tailscale Serve sur Windows, et avec elle l'installation sur l'écran d'accueil, le Web Push et le microphone. - Windows 10, Windows Server, Windows sur ARM, et les autres éléments dans Ce qui n'est pas testé. La vérification de version exige désormais le zip Windows. Seul le mainteneur peut passer outre, pour un correctif Linux (détails).
Ce que vous obtenez
Collie affiche les agents de votre terminal sur votre téléphone, afin que vous puissiez voir lequel requiert votre attention et lui répondre.
Les agents tournent dans des volets Herdr. Un volet est une fenêtre de terminal dans Herdr. Herdr est un multiplexeur de terminaux, un programme qui maintient vos agents en cours d'exécution dans des volets. Sur Windows, Herdr est le seul multiplexeur pris en charge.
Collie lit les agents tels que Claude Code, Codex, OpenCode, pi et omp. L'agent lui-même doit tourner sur Windows. La prise en charge dépend de l'agent, pas de Collie.
Avant de commencer
Prérequis :
- Windows 11 sur x64. WSL n'est pas considéré comme Windows ici. Dans WSL, suivez l'installation Linux dans Installer.
- PowerShell. Le Windows PowerShell 5.1 fourni avec Windows 11 suffit.
- Herdr 0.9.3 ou plus récent pour Windows. L'étape 1 ci-dessous l'installe. Le projet Herdr produit son binaire Windows, et Collie en dépend.
- Un téléphone avec un navigateur, un iPhone ou un téléphone Android.
- Un compte Tailscale gratuit. Vous le créez lors de votre première connexion à l'application Tailscale. Le PC et le téléphone doivent se connecter au même compte. Le téléphone joint le PC par ce biais, et l'étape 6 le configure.
Vérifiez si le Contrôle d'application intelligent est activé, car il peut bloquer collie.exe. Ouvrez Sécurité Windows, puis Contrôle des applications et du navigateur, puis Paramètres du Contrôle d'application intelligent. Il a trois états :
| État | Ce que cela implique pour cette installation |
|---|---|
| Désactivé | Il ne bloque rien. |
| Évaluation | Windows détermine encore s'il doit l'activer. Il n'a pas bloqué Collie sur la machine virtuelle de test. |
| Activé | Il peut bloquer collie.exe, car le fichier n'est pas signé et ne dispose pas d'autorisation par fichier. |
S'il est activé, lisez d'abord Binaire non signé. La page détaille vos options.
De zéro au téléphone
Suivez ces étapes dans l'ordre. La suite du document décrit ce qui doit s'afficher après chaque étape. Pour lire le script d'installation avant de l'exécuter, consultez Installer.
- Installez Herdr avec son propre installateur, puis vérifiez la version :
irm https://herdr.dev/install.ps1 | iex herdr --version
- Installez Collie avec son installateur :
irm https://colliepwa.dev/install.ps1 | iex
- Ouvrez un NOUVEAU terminal, lancez Herdr dedans et laissez-le ouvert :
herdr
- Ouvrez un second terminal, ou un nouveau volet Herdr, puis lancez Collie et affichez son adresse :
collie start collie url
- Dans un volet Herdr, lancez votre agent, par exemple Claude Code :
claude
- Donnez un accès au téléphone avec Y accéder depuis votre téléphone, que le projet exécute uniquement en HTTP sous Windows. Avant sa commande
tailscale serve, seul ce PC peut joindre Collie ; après, tous les appareils de votre tailnet le peuvent, jusqu'à l'association.
- Sur le téléphone, saisissez cette adresse dans le navigateur, ou envoyez-la-vous, puis ajoutez Collie à l'écran d'accueil, comme indiqué dans Ouvrez-le sur votre téléphone.
- Associez le téléphone en exécutant ceci sur le PC :
collie pair
Ce que vous devez voir après chaque étape :
- Herdr affiche la sortie de son installateur.
herdr --versionaffiche 0.9.3 ou une version plus récente. Cette page ne propose aucune commande Herdr spécifique, car le projet Herdr gère son propre installateur. Si celui-ci échoue, ouvrez herdr.dev et suivez les étapes pour Windows. - Le script affiche chaque étape. Il se termine par une ligne commençant par
OK Collieet une liste d'étapes suivantes, qui débute parNext steps. This script does not take them for you:, puis1. Open a NEW terminal window.et3. Start Collie, then print its address:. Pour lire le script au préalable, consultez Installer.Aucun service ne démarre et rien ne reste en cours d'exécution. Le script exécute
collie.exe versionune fois pour vérifier que Windows l'autorise à tourner, et c'est tout. - Herdr s'ouvre et prend le contrôle de ce terminal. Un nouveau terminal est nécessaire car Windows n'applique le nouveau PATH qu'aux fenêtres ouvertes après l'installation.
- Un second terminal est nécessaire car Herdr occupe le premier.
collie startaffiche la bannière Collie est en cours d'exécution et indique que Collie ne publie aucun point d'accès ici. Ce point d'accès est l'adresse HTTPS devant Collie que votre téléphone ouvre. Cette remarque est normale sous Windows : l'étape 6 configure cette partie manuellement. Avant l'installation de Tailscale, cette ligne s'affiche aussi sur stderr :error: 'tailscale status' named no host for this node. Cette ligne est normale à ce stade, et disparaît après l'étape 6. - Votre agent démarre dans le volet. Collie l'affiche sur son tableau de bord.
tailscale serve statusindique l'adresse de votre tailnet, etcollie urll'affiche. Avant cette étape,collie urlpeut afficher une adresse de boucle locale (127.0.0.1), que seul ce PC peut ouvrir. Vous pouvez l'ouvrir dans un navigateur sur ce PC pour voir le tableau de bord.- Le téléphone affiche le tableau de bord de Collie. Les volets en attente d'action apparaissent en premier.
collie pairaffiche un code de huit caractères, puis une ligne commesingle-use · expires <time> (10 minutes), puis un QR code. Saisissez le code dans Collie sur le téléphone, dans l'application ouverte depuis l'écran d'accueil. Le téléphone est alors associé.
Installer
Ce que fait install.ps1, et ce que vous pouvez modifier.
irm https://colliepwa.dev/install.ps1 | iexPour lire le script avant de l'exécuter, enregistrez-le, ouvrez-le et exécutez-le en tant que fichier :
Invoke-WebRequest -OutFile install.ps1 https://colliepwa.dev/install.ps1
notepad install.ps1
powershell -ExecutionPolicy Bypass -File .\install.ps1install.ps1 ne nécessite ni Bun, ni Git, ni bash. Il examine les cinq versions les plus récentes, sélectionne la première contenant un fichier zip pour Windows, vérifie son sha256 et s'arrête en cas d'incohérence. Un sha256 est l'empreinte numérique du fichier. Le script affiche chaque étape et ne demande jamais de droits administrateur. Si aucune version ne contient le fichier zip, il s'arrête en tant que décrit ci-dessous.
La stratégie d'exécution par défaut, Restricted, qui est la règle Windows déterminant quels scripts peuvent s'exécuter, refuse les fichiers de script téléchargés. La dernière ligne de la variante « lire d'abord » définit Bypass pour cette seule exécution. Unblock-File .\install.ps1 est l'autre solution. La forme irm ... | iex exécute directement le texte du script et ne nécessite pas cette étape.
Le script place la version dans %LOCALAPPDATA%\collie\versions\<version>, fait pointer la jonction current vers celle-ci et ajoute current\bin au PATH de votre utilisateur. Une jonction est un lien de dossier sous Windows, et current pointe toujours vers la version en cours d'exécution. Le script exécute collie.exe version une fois pour vérifier que Windows autorise son exécution. Il ne lance rien d'autre. Une seconde exécution ne modifie rien et pointe vers collie update.
| Variable | Effet |
|---|---|
COLLIE_DIR | Emplacement d'installation. Par défaut %LOCALAPPDATA%\collie. Choisissez un chemin court. |
COLLIE_TAG | Installer une release précise, par exemple v1.16.0. |
COLLIE_UPDATE_REPO | Le dépôt GitHub depuis lequel télécharger. Par défaut AltanS/collie. |
COLLIE_NO_PATH_EDIT=1 | Ne pas modifier votre PATH. Exécutez <COLLIE_DIR>\current\bin\collie.exe. |
Le fichier zip se trouve également sur chaque page de version sur GitHub, à côté de son fichier .sha256. Utilisez le script, et non une installation manuelle du fichier zip.
collie start enregistre une tâche du Planificateur de tâches nommée herdr.collie. Le Planificateur de tâches est le programme Windows qui exécute des tâches selon des horaires ou des événements définis. La tâche lance Collie lors de votre ouverture de session avec un jeton limité, c'est-à-dire sans droits administrateur.
La tâche exécute un lanceur, un petit programme qui redémarre le bridge si celui-ci s'arrête avec une erreur. Le bridge est le programme Collie qui s'exécute sur votre PC et dessert la page web à destination de votre téléphone.
Y accéder depuis votre téléphone
Étape 6 de « De zéro au téléphone », en détail. Ce sont les mêmes étapes que sous Linux et macOS, effectuées manuellement. Le projet les a exécutées une fois sous Windows, en HTTP, sur un tailnet Headscale (Headscale est un serveur Tailscale auto-hébergé), avec un navigateur de bureau dimensionné pour téléphone. La forme HTTPS ci-dessous n'a pas été exécutée, et aucun téléphone ni agent réel n'a été utilisé. Si une étape échoue, signalez-la (où).
Attention. À partir de la commandetailscale serve(étape 3 ci-dessous) et jusqu'à ce que vous appairiez un appareil, Collie est accessible à tous les appareils de votre tailnet, qui peuvent alors lire et taper dans vos volets. Avant cette commande, seul ce PC peut joindre Collie. Effectuez les étapes sur le téléphone etcollie pairimmédiatement après. Si d'autres personnes partagent votre tailnet, effectuez l'appairage immédiatement et lisez Sécurité pour savoir comment restreindre l'accès à Collie.
- Installez Tailscale sur le PC et sur le téléphone, puis connectez-vous au même compte sur les deux : tailscale.com/download.
- Dans la console d'administration Tailscale, ouvrez DNS, activez MagicDNS, puis sélectionnez Activer HTTPS.
- Dans un nouveau terminal sur le PC, publiez le port local de Collie, 8787 par défaut, sur votre tailnet :
tailscale serve --bg --set-path=/ 8787
- Créez le dossier de configuration de Collie s'il est manquant, puis ouvrez son fichier
.env:New-Item -ItemType Directory -Force "$env:APPDATA\herdr\plugins\config\herdr.collie" notepad "$env:APPDATA\herdr\plugins\config\herdr.collie\.env"
- Ajoutez ces deux lignes à la fin du fichier, en indiquant le nom obtenu à l'étape 3, puis enregistrez :
COLLIE_PUBLIC_HOSTS=myhost.tail1234.ts.net COLLIE_PUBLIC_URL=https://myhost.tail1234.ts.net
- Redémarrez le bridge, puis affichez l'adresse :
collie restart collie url
Collie écoute sur ce PC uniquement, sur une adresse de bouclage accessible exclusivement depuis cette machine. Sous Linux et macOS, collie start exécute Tailscale Serve pour vous. C'est ce que signifie « point d'accès managé » : Collie publie lui-même l'adresse. Sous Windows, collie start ne le fait pas ; vous devez donc exécuter vous-même Tailscale Serve.
À l'étape 3, Tailscale affiche une ligne contenant une adresse telle que https://myhost.tail1234.ts.net. Le nom correspond à la partie située après https://. Copiez-le. tailscale serve status affiche la même adresse :
https://myhost.tail1234.ts.net (tailnet only)
|-- / proxy http://127.0.0.1:8787La commande est identique à celle exécutée pour vous par collie start sous Linux et macOS. --set-path=/ remplace tout ce que ce PC dessert déjà sous / sur votre tailnet.
Remarque. Sur un tailnet Headscale, la commande HTTPS de l'étape 3 échoue avecerror enabling https feature: error 501 Not Implemented, car Headscale ne délivre aucun certificat HTTPS. Tant que vous n'avez pas publié,collie doctoraffiche un avertissement sur sa lignefront-door:this tailnet has no HTTPS certificates, so an https front door cannot be published. Publiez alors en HTTP, forme sous laquelle le projet a été exécuté sous Windows :tailscale serve --bg --http=80 --set-path=/ 8787. La publication se fait sur le port 80 du tailnet, l'adresse est donchttp://<name>sans port. Utilisez cette adressehttp://dansCOLLIE_PUBLIC_URL. Après cette commande, la lignefront-doorest validée. En 1.16.0, l'avertissement persiste. Le HTTP simple est acceptable ici car Tailscale chiffre le trafic entre les appareils du tailnet (WireGuard), et le saut HTTP reste confiné au tailnet. N'utilisez jamaistailscale funnel. En HTTP, l'installation sur l'écran d'accueil, le Web Push et le microphone restent inactifs. Sous Linux et macOS, le mode HTTP propre à Collie publie plutôt sur le port du bridge (COLLIE_SERVE_MODE). Collie n'exécute pas Serve sous Windows, cette variable n'y modifie donc aucune publication.
Sur un tailnet où HTTPS est activé, Tailscale attribue à l'adresse un certificat reconnu par le téléphone. Sur Headscale, reportez-vous à la remarque ci-dessus. L'installation sur l'écran d'accueil, le Web Push (notifications sur votre téléphone) et le microphone nécessitent HTTPS. En HTTP simple, ils restent inactifs (Saisie vocale et Web Push).
À l'étape 4, le Bloc-notes demande s'il faut créer le fichier s'il n'existe pas. Cliquez sur Oui. Le dossier correspond au dossier de configuration du plugin Herdr pour herdr.collie, par défaut %APPDATA%\herdr\plugins\config\herdr.collie. Collie le réclame à Herdr, et herdr plugin config-dir herdr.collie l'affiche donc.
COLLIE_PUBLIC_HOSTS correspond à la vérification de l'en-tête Host : Collie lit le nom de domaine dans chaque requête et rejette tout nom ne figurant pas sur cette liste, ce qui empêche une page web de l'atteindre via une attaque par rebond DNS. COLLIE_PUBLIC_URL est l'adresse affichée par collie url et le QR code de collie pair. Ouvrez Collie avec le nom complet : la vérification de l'Host rejette l'adresse IP du tailnet et le nom court. Collie tente également de trouver lui-même le nom sur le tailnet au démarrage. Les deux lignes permettent de s'en assurer.
Collie ne gère pas cette redirection sous Windows. collie stop et collie uninstall la laissent intacte. tailscale serve status l'affiche, et tailscale serve reset supprime toutes les redirections de Serve sur le PC. N'utilisez jamais tailscale funnel : Funnel expose Collie sur l'internet public.
Si vous préférez utiliser un reverse proxy, c'est-à-dire un programme qui transmet les requêtes web à Collie, ou un autre tunnel, Déploiement en détaille les variantes. Il s'agit de Variante C, avec COLLIE_PUBLIC_HOSTS défini sur le nom que votre téléphone ouvre. La première commande collie start ne déclenche aucune alerte de pare-feu, car Collie écoute exclusivement sur cette machine.
Ouvrez-le sur votre téléphone
- Transmettez l'adresse de
collie urlau téléphone : tapez-la manuellement ou envoyez-la-vous. Sur un iPhone, ouvrez-la dans Safari. Sur un téléphone Android, ouvrez-la dans Chrome. L'application Tailscale doit être installée sur le téléphone et connectée à votre tailnet. - Ajoutez Collie à l'écran d'accueil pour l'ouvrir en plein écran comme une application : - iPhone : dans Safari, appuyez sur Partager, sur Sur l'écran d'accueil, puis sur Ajouter. - Android : dans Chrome, ouvrez Paramètres de Collie et appuyez sur Installer sur la carte supérieure.
- Ouvrez Collie depuis la nouvelle icône.
- Dans l'application, ouvrez Paramètres, puis Système, puis Appareils associés.
- Exécutez
collie pairsur le PC, saisissez le code et un nom, puis appuyez sur Associer cet appareil.
Saisissez le code dans l'application ouverte depuis l'icône. Ne scannez pas le QR code affiché par collie pair : l'appareil photo l'ouvre dans un onglet du navigateur, et sur un iPhone, l'application de l'écran d'accueil dispose de son propre stockage, séparé de Safari, de sorte qu'un appairage effectué dans l'onglet n'est pas conservé.
Le code est valide pendant 10 minutes et ne fonctionne qu'une fois. Exécutez à nouveau collie pair s'il a expiré. L'appairage met fin à l'accès ouvert mentionné dans l'avertissement ci-dessus (Associer un appareil).
Commandes courantes
Exécutez ces commandes dans n'importe quel terminal. Chacune fonctionne comme sous Linux et macOS, avec les spécificités pour Windows indiquées ci-dessous.
| Commande | Action sous Windows |
|---|---|
collie start | Enregistre la tâche herdr.collie si nécessaire et démarre le bridge. |
collie stop | Désactive la tâche, arrête le bridge en cours d'exécution et son lanceur, puis affiche bridge stopped. Collie reste désactivé, y compris lors de votre prochaine connexion, jusqu'à collie start. |
collie restart | Redémarre le bridge seul. |
collie status | Indique le nom de la tâche et son état, et affiche la bannière Collie est en cours d'exécution. |
collie doctor | Vérifie l'installation, Herdr, les chemins longs et les fichiers secrets, puis affiche une solution pour chaque problème. |
collie url | Affiche l'adresse à ouvrir sur le téléphone. |
collie logs | Affiche les dernières lignes du fichier journal. |
collie update | Met à jour vers la version la plus récente (Update). |
collie update --rollback | Revient à la version précédente (Update). |
collie uninstall | Supprime la tâche (Uninstall). |
Update
Mettez à jour depuis le terminal ou depuis le téléphone, comme sur Linux et macOS :
collie updateLa mise à jour télécharge la release, remplace collie.exe, redémarre le bridge et vérifie qu'il répond. S'il ne répond pas, Collie revient à la version fonctionnelle en environ une minute et quart. Le bouton Update du téléphone exécute la même séquence.
Pour revenir en arrière manuellement, exécutez cette commande. Elle ne nécessite aucun réseau. Elle fait pointer current vers la version antérieure la plus récente encore présente sur le disque et redémarre le bridge. Si cette version ne démarre pas, Collie revient en avant et ne modifie rien :
collie update --rollbackUn dossier d'ancienne version peut rester dans versions\ jusqu'au redémarrage du lanceur, car Windows ne supprime pas un dossier ouvert par un programme en cours d'exécution. La mise à jour suivante le supprime.
Attention. Un clone du code source ne se met jamais à jour automatiquement sous Windows :collie updateet le bouton du téléphone l'indiquent en une phrase et ne modifient rien. Toute installation sous Windows effectuée avant le premier fichier zip est un clone du code source. Le passage à l'installation par zip est une étape manuelle unique : exécutezcollie uninstallpour supprimer l'ancienne tâche, puis exécutezinstall.ps1. Ensuite,collie updatefonctionne.
Collie n'autorise qu'une seule installation par machine Windows, et collie start refuse une tâche qui en exécute une autre, c'est pourquoi l'ancienne tâche doit être supprimée en premier. Vous pouvez également conserver un clone du code source et le mettre à jour manuellement : récupérez le tag le plus récent, exécutez bun run build, puis collie restart. La compilation nécessite le bash de Git pour Windows.
Les versions jusqu'à la v1.15.0 incluse ne peuvent pas remplacer un collie.exe en cours d'exécution et échouent avec EPERM. Le correctif (PR 309) a été intégré dans la v1.15.1. Les travaux ultérieurs sur les mises à jour sous Windows, comme le bouton Update du téléphone sous Windows, arrivent avec la v1.16.0.
Uninstall
collie uninstallcollie uninstall arrête le bridge et supprime la tâche du Planificateur de tâches. Il conserve le dossier d'installation, votre .env et l'entrée dans le PATH utilisateur, comme chaque installation conserve ses fichiers. Il affiche ensuite deux lignes supplémentaires pour PowerShell. La première supprime le dossier d'installation. La seconde supprime uniquement current\bin de votre PATH utilisateur, via le registre. Collie affiche ces deux lignes individuellement, avec votre vrai dossier. Elles se présentent ainsi, tronquées ici pour l'affichage :
cmd /c rmdir /s /q "<install folder>"
$k = [Microsoft.Win32.Registry]::CurrentUser.OpenSubKey('Environment', $true)
$k.SetValue('Path', (($k.GetValue('Path', '', 'DoNotExpandEnvironmentNames') -split ';' |
Where-Object { $_.TrimEnd('\') -ne '<install folder>\current\bin' }) -join ';'),
$k.GetValueKind('Path'))
$k.Close()Copiez les lignes depuis la sortie de Collie directement lorsque vous le pouvez. Collie ne supprime pas une redirection tailscale serve que vous avez configurée manuellement (Y accéder depuis votre téléphone).
En cas de problème
Exécutez d'abord collie doctor, puis identifiez votre problème ci-dessous.
collie doctor vérifie l'installation et affiche une solution pour chaque problème détecté. Lisez ensuite la section ci-dessous correspondant à votre situation. Si aucune ne correspond, consultez le journal, décrit dans Logs.
Pour signaler un problème, ouvrez un ticket sur github.com/AltanS/collie/issues. Précisez que vous utilisez Windows, indiquez la version de Collie obtenue via collie version, et collez la sortie de collie doctor ainsi que les dernières lignes du journal. Supprimez au préalable toute information privée. Le journal peut contenir le texte des panneaux.
Binaire non signé : SmartScreen et Smart App Control
collie.exe n'est pas signé, Windows ne sait donc pas qui l'a publié. Lisez ceci avant d'exécuter l'installateur.
Deux fonctionnalités de Windows peuvent bloquer un programme non signé :
- SmartScreen demande confirmation avant d'exécuter un programme provenant d'Internet. Pour un fichier téléchargé dans un navigateur, cliquez sur Informations complémentaires, puis sur Exécuter quand même.
- Smart App Control ne propose pas d'autorisation par fichier. S'il est activé et bloque Collie, vous ne pouvez pas autoriser ce fichier spécifique.
install.ps1signale le blocage lorsqu'il exécutecollie.exe version, et n'affiche aucune ligne de confirmation.
Si Smart App Control bloque Collie, vous disposez des options suivantes, dans cet ordre :
- Vérifiez s'il est activé : ouvrez Sécurité Windows, puis Contrôle des applications et du navigateur, puis Paramètres du Contrôle d'application intelligent.
- Compilez depuis les sources (Compiler depuis les sources), ce qui génère
collie.exesur votre propre machine. Cela n'a pas été testé sur une machine où Smart App Control est activé. - Utilisez un PC où Smart App Control est désactivé, ou signalez le blocage dans une issue.
- Enfin, désactivez Smart App Control. Cette action est difficile à annuler : la documentation de Microsoft indique que sa réactivation peut nécessiter une réinitialisation de Windows, lisez donc d'abord la page actuelle de Microsoft.
La vérification sha256 dans install.ps1 détecte un téléchargement endommagé ou substitué. Elle n'indique pas qui a publié le fichier, car le hash se trouve à côté du zip, et quiconque peut remplacer l'un peut remplacer l'autre. La signature du binaire est une étape ultérieure envisageable, sans date fixée.
Chemins longs
Ce qui apparaît : un panneau ne s'ouvre pas, et Herdr indique The directory name is invalid (os error 267). collie doctor émet d'abord un avertissement : LongPathsEnabled is 0 on this machine.
Herdr ne peut pas ouvrir de panneau dans un dossier dont le chemin dépasse 260 caractères, sauf si les chemins longs de Windows sont activés. collie doctor prévient aussi lorsque le dossier d'installation lui-même est très long.
Dans une session PowerShell lancée en tant qu'administrateur :
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' `
-Name LongPathsEnabled -Value 1Windows peut nécessiter un redémarrage avant que les programmes déjà en cours d'exécution ne prennent le changement en compte. Dans tous les cas, utilisez des chemins courts pour vos dossiers de travail.
Le Planificateur de tâches refuse un utilisateur standard
Ce qui apparaît : collie start échoue avec error: schtasks /Create /TN herdr.collie failed, Windows renvoie 0x80070569, et Collie indique que le compte n'a pas le droit "Ouvrir une session en tant que tâche de traitement par lots".
Cela concerne un compte utilisateur standard qui n'a jamais eu ce droit. Un compte administrateur l'a généralement.
Un administrateur accorde le droit :
- Exécutez
secpol.msc. - Ouvrez Stratégies locales, puis Attribution des droits utilisateur.
- Ouvrez Ouvrir une session en tant que tâche de traitement par lots et ajoutez le compte.
- Exécutez à nouveau
collie start.
Windows Home n'inclut pas secpol.msc.
Fichiers secrets
Ce qui apparaît : collie doctor affiche une ligne secrets-private, par exemple can be read by other accounts, avec un correctif.
Collie restreint l'accès en lecture à ses fichiers secrets : votre compte, SYSTEM et les administrateurs. Windows ne possède pas de mode 0600, Collie applique donc une liste de contrôle d'accès (ACL) à ses dossiers d'état et de configuration.
collie doctorLa ligne secrets-private accepte trois valeurs :
| Valeur | Signification |
|---|---|
| Privé | L'accès aux dossiers est strictement réservé à votre compte, SYSTEM et aux administrateurs. |
| Trop ouvert | Un autre compte peut lire un dossier ou un secret. Il s'agit d'une erreur, et doctor affiche la solution. |
| Non vérifié | Collie ne peut pas lire la liste, et affiche donc cannot confirm. C'est un avertissement. |
Un dossier sur un partage réseau ou sur un volume FAT ou exFAT apparaît comme « non vérifié », car il n'y a pas de liste à lire. Conservez les dossiers d'état et de configuration sur un lecteur NTFS de ce PC.
Le bridge corrige au démarrage les dossiers trop ouverts, mais uniquement pour les dossiers que Collie vient de créer, les dossiers par défaut de votre profil utilisateur, ou les dossiers vides ou ne contenant que les fichiers propres à Collie. Tout autre dossier est vérifié et fait l'objet d'un avertissement, accompagné de la commande icacls pour le corriger. collie doctor et les autres commandes ne modifient rien.
Pour annuler une réparation : avant de l'appliquer, le bridge enregistre l'ancienne liste dans acl-backups au sein du dossier d'état et affiche la ligne d'annulation. Exécutez-la dans un terminal lancé en tant qu'administrateur :
icacls <folder> /restore <backup file>COLLIE_NO_ACL_REPAIR=1 désactive toutes les modifications. Collie continue les vérifications et les avertissements. Le détail complet des règles figure dans Fichiers secrets sous Windows.
Logs
Le journal du bridge est collie.log dans le dossier de configuration du plugin (%APPDATA%\herdr\plugins\config\herdr.collie\collie.log par défaut). collie logs affiche ses dernières lignes. Collie écrit uniquement à la suite et n'effectue aucune rotation, le fichier grossit donc tant que le bridge tourne. Pour le vider, exécutez collie stop, supprimez le fichier, puis exécutez collie start.
Compiler depuis les sources
Le zip de publication ne nécessite aucune chaîne d'outils. Une compilation depuis les sources nécessite encore Bun, Git et le bash de Git for Windows dans votre PATH, car bun run build appelle bash. Une compilation sans bash est prévue mais pas encore réalisée.
Prise en charge
Un seul hôte : Windows 11 sur x64, avec Herdr comme multiplexeur.
Un crew correspond à plusieurs machines exécutant chacune un Collie, présentées derrière une seule URL (Crews).
| Pris en charge | Non pris en charge, peut fonctionner, non testé | |
|---|---|---|
| Windows | Windows 11, x64 | Windows 10, Windows Server et Windows sur ARM |
| Multiplexeur | Herdr 0.9.3 ou plus récent pour Windows | tmux, zellij et tuios : aucun ne dispose d'un binaire natif pour Windows |
| Service | Planificateur de tâches, un Collie par machine | Un service Windows, winget et MSI |
| Crew | Collie sur une seule machine | Une machine Windows rejoignant un crew |
| Porte d'entrée | Vous le publiez vous-même, manuellement | Une porte d'entrée gérée par Collie |
| Binaire | collie.exe, non signé, avec un sha256 | Un binaire signé |
Ces limites s'appliquent également :
- Collie autorise une seule installation par machine Windows. Le nom de la tâche est toujours
herdr.collie. herdr plugin installn'est pas un chemin d'installation Windows. Utilisezinstall.ps1, puiscollie start.- Les boutons d'action de Herdr n'existent pas sur Windows, car ils nécessitent
bash. - Le build Windows de Herdr est réalisé par le projet Herdr. Collie en dépend et ne le contrôle pas.
Crews
Une machine Windows ne peut pas rejoindre une crew dans cette version. collie crew invite, crew join, crew add, crew deputy, crew approve-promote et collie promote refusent l'opération sur Windows, l'indiquent en une phrase et ne modifient rien. Collie sur une machine Windows fonctionne de manière autonome.
Migration depuis le script communautaire
Ce qui change si vous avez exécuté le script communautaire, et ce qui n'est pas conservé.
Avant cette version, Windows fonctionnait sous contrib/windows/collie-ctl.ps1, un script développé par la communauté. Collie gère désormais la tâche lui-même, et chaque verbe du script correspond à un verbe collie du même nom. Après la mise à jour, exécutez collie restart une fois. Si le script exécutait la tâche nommée herdr.collie, Collie la prend en charge sous le même nom. Tant que vous ne redémarrez pas, collie status et collie doctor indiquent que la tâche exécute toujours l'ancien script.
Deux éléments ne sont pas repris :
- Un nom de tâche personnalisé. Le script vous permettait de définir
COLLIE_TASK_NAME. Collie ne le lit pas, et la tâche s'appelle toujoursherdr.collie. Une tâche enregistrée sous un autre nom reste en place, et Collie ne l'arrête ni ne la supprime. Supprimez-la avant d'exécutercollie start, sans quoi deux superviseurs lanceront le bridge. Dans PowerShell :schtasks /Delete /TN "<your task name>" /F. - Copies du journal de crash. Le script conservait une copie du journal en cas d'échec du bridge. Collie ne le fait pas. Les anciennes copies restent sur le disque jusqu'à leur suppression manuelle.
Comment cela est testé, et quand la phase expérimentale prend fin
Pourquoi Collie indique expérimental, pour les lecteurs qui souhaitent des preuves. Vous n'en avez pas besoin pour utiliser Collie.
Deux termes de cette page ont un sens précis :
- Pris en charge signifie que le mainteneur prend en charge le code Windows et le teste : une exécution CI à chaque push, et une répétition sur une machine virtuelle Windows 11 avant chaque tag de version (ADR 0075). La CI est l'exécution automatique des tests sur GitHub. Un ADR est un court enregistrement de décision conservé dans le dépôt.
- Expérimental signifie qu'une mise à jour entre deux versions réelles et le chemin d'accès HTTPS pour téléphone ne sont pas encore validés.
Sur quoi repose la prise en charge :
- Le workflow
windows.yml, un workflow CI, exécute les tests du bridge, du cli et des scripts surwindows-latestpour chaque pull request et chaque push surmain. Il ne s'agit pas encore d'une vérification obligatoire. Le mainteneur prévoit de la rendre obligatoire après environ dix exécutions consécutives réussies. - Chaque version compile
collie-<version>-windows-x64.zipavec un fichier.sha256. - Avant chaque tag de version, le mainteneur exécute une répétition,
make win-rehearse. Elle installe une version sur une VM Windows 11 vierge, la met à jour depuis le terminal et depuis l'endpoint du téléphone, force un échec du contrôle d'état et vérifie le rollback. La mise à jour utilise une copie locale des fichiers de version. Si la VM n'est pas disponible, le tag attend. - Windows 11 constitue la seconde référence aux côtés de la CI, car l'exécuteur CI est Windows Server.
- L'installation réelle depuis la version publique v1.16.0 a tourné sur une VM Windows 11.
install.ps1a trouvé la version, téléchargé le zip, le sha256 correspondait, etcollie.exes'est exécuté en version 1.16.0.collie starta enregistré la tâche et démarré le bridge.collie statusa indiqué running,collie doctora renvoyé 0, etcollie stopl'a arrêté. Le script situé surhttps://colliepwa.dev/install.ps1est actif, et il est identique octet par octet au script de la version v1.16.0. - L'accès par téléphone a tourné sur une VM Windows 11 sur un tailnet Headscale, via HTTP.
tailscale serve --bg --http=80 --set-path=/ <port>a publié Collie. Les deux lignes.envetcollie restartont permis àcollie urlet à la bannièrecollie startd'afficher le nom du tailnet. Depuis une autre machine du tailnet, la page,/api/healthet/api/snapshotont répondu avec le nom complet, et une requête via l'adresse IP du tailnet ou le nom court a été refusée. L'appairage dans l'interface du téléphone a fonctionné, et une écriture sans identifiant effectuée ensuite a retourné une erreur 403 "device not paired". Un navigateur pour ordinateur dimensionné au format téléphone a servi d'émulateur. - Smart App Control sur la VM de test est en mode évaluation, et ni Smart App Control ni SmartScreen n'y ont bloqué Collie. Cette page décrit ce que Windows documente, et non un blocage réellement constaté.
La mention expérimental ne disparaîtra que lorsque toutes ces conditions seront réunies :
- Une version inclut le zip Windows,
install.ps1est disponible sur colliepwa.dev, et une installation ainsi qu'une mise à jour ont tourné sur une version réelle. Les trois premières étapes sont terminées : la v1.16.0 inclut le zip, l'adresse est active et l'installation a tourné. La mise à jour entre deux versions réelles n'a pas encore été effectuée, car elle nécessite une seconde version contenant le zip. - La vérification Windows est obligatoire dans la protection de branche. La protection de branche est le paramètre GitHub qui bloque la fusion tant que les vérifications indiquées ne réussissent pas.
- La porte de version lit le workflow Windows. Cette porte est la première étape du workflow de publication, qui attend les tests avant de publier.
- La tolérance pour un fichier zip Windows manquant est désactivée. Elle l'est dès maintenant, comme l'indique la section suivante.
Une version sans fichier zip Windows
La vérification de publication exige désormais le fichier zip Windows. Seul le mainteneur peut passer outre, pour un correctif urgent Linux. Le job de publication vérifie ce point dans scripts/windows-asset.ts. Il recherche une version stable antérieure (ni brouillon, ni préversion) qui contient le zip, et la v1.16.0 en fait partie. À compter du 2026-11-15, le zip est obligatoire dans tous les cas, y compris si la liste des versions de GitHub ne répond pas. La seule exception est une option que le mainteneur peut activer pour un correctif urgent Linux pendant que le build Windows échoue : la variable de dépôt COLLIE_WINDOWS_ASSET_OVERRIDE. Une version publiée avec cette option ne contient aucun fichier zip Windows.
Les versions antérieures à la v1.16.0 n'ont pas de fichier zip Windows. Voici ce qui s'affiche lorsque la version la plus récente n'en a pas :
install.ps1examine les cinq versions les plus récentes. Pour chacune d'elles, il affiche<tag> has no Windows build. Trying the next older release.Puis il affichecollie install: none of the newest 5 releases of AltanS/collie carries a Windows build yet. Nothing was installed.et se termine parInstall failed.ainsi qu'une ligne vous invitant à verrouiller une version qui en contient un. Rien n'est modifié sur votre machine. Pour en verrouiller une, définissezCOLLIE_TAG.collie updatesur une installation Windows indiqueerror: release <version> has no Windows build; try again after the next release. Nothing was changed.
Pour vérifier, ouvrez la page des versions sur GitHub et cherchez un fichier nommé collie-<version>-windows-x64.zip.
Ce qui n'est pas testé
Liste brute, afin que rien ici ne ressemble à une promesse :
- Une mise à jour entre deux versions réelles sous Windows. La répétition a utilisé une copie locale des fichiers de version.
- La forme HTTPS de Tailscale Serve sous Windows (Headscale a répondu
501 Not Implemented), et avec elle l'installation sur l'écran d'accueil, Web Push et le microphone. Également un vrai téléphone, un agent s'exécutant dans un volet Herdr, et un reverse proxy à la place de Tailscale Serve. - Un
collie update --rollbackmanuel sous Windows. Le retour arrière automatique après un échec de mise à jour a été répété. - Passer d'un clone des sources à l'installation par zip, et mettre à jour un clone des sources manuellement.
- Installer le zip manuellement, sans
install.ps1. - Windows 10, Windows Server, Windows on ARM, tmux, zellij et tuios sur Windows.
- Un véritable blocage Smart App Control, et PowerShell 7 pour
install.ps1. - Une compilation depuis les sources sur une machine où Smart App Control est activé.
- Le correctif du Planificateur de tâches sous Windows Home. Le chemin a été testé avec un utilisateur standard dont le nom comportait un espace et une lettre non-ASCII.
- Un volume FAT avec du vrai matériel. La réponse « not checked » est couverte par des tests unitaires.
- Le refus d'une tâche pour un second Collie, couvert uniquement par des tests unitaires.
- Le fait que l'Explorateur voie le nouveau PATH sans déconnexion, et une modification du PATH par un utilisateur standard.
- Le fournisseur vocal
local-cliavec un vrai moteur. Son nettoyage a été testé avec une commande de test : Collie met fin à l'arborescence des processus de la commande, mais un processus démarré par un helper déjà arrêté peut lui survivre (Saisie vocale et Web Push).
Modifier cette page sur GitHub