04/Documentation
Collie en Windows
Windows 11 con Herdr: qué es compatible, instalación con install.ps1, el binario sin firmar, actualización, rutas largas y qué no está probado
Cómo instalar Collie en Windows 11, abrirlo en el teléfono y solucionar posibles fallos. Lea primero Seguridad: Collie proporciona acceso remoto a la shell del equipo por diseño.
En Linux y macOS, collie start puede publicar Collie en el teléfono mediante Tailscale Serve. Tailscale es un servicio que conecta sus propios dispositivos en una red privada, denominada tailnet.
En Windows, Collie no se publica de forma automática. Tailscale Serve asigna a Collie una dirección HTTPS en su tailnet, y en Windows este paso se realiza manualmente. Acceder desde el teléfono muestra el procedimiento.
Experimental. Experimental significa que el encargado del mantenimiento es responsable del código de Windows y lo prueba, pero los componentes indicados abajo aún no están totalmente verificados. Este es el estado completo: Probado - Un ensayo de 25 pasos de instalación, actualización y reversión en una máquina virtual con Windows 11, usando copias locales de los archivos de la versión. - Una instalación real desde la versión pública v1.16.0 en una máquina virtual con Windows 11:install.ps1encontró la versión, el sha256 coincidió ycollie.exese ejecutó. Posteriormente,collie start,collie status,collie doctorycollie stopfuncionaron. - Acceso móvil a través de Tailscale Serve sobre HTTP, en una tailnet de Headscale: la comprobación de Host,collie url, el emparejamiento y la compuerta de escritura. No probado aún - Una actualización entre dos versiones reales en Windows. - La modalidad HTTPS de Tailscale Serve en Windows y, con ella, la instalación en la pantalla de inicio, Web Push y el micrófono. - Windows 10, Windows Server, Windows en ARM y los demás elementos en Qué no está probado. De ahora en adelante, la comprobación de la versión exige el archivo zip para Windows. Solo el encargado del mantenimiento puede omitir esto, en el caso de una corrección urgente para Linux (detalles).
Qué se obtiene
Collie muestra los agentes de la terminal en el teléfono, lo que permite observar cuál requiere atención y responderle.
Los agentes se ejecutan en paneles de Herdr. Un panel es una ventana de terminal dentro de Herdr. Herdr es un multiplexor de terminales, un programa que mantiene a los agentes en ejecución en paneles. En Windows, Herdr es el único multiplexor compatible.
Collie interactúa con agentes como Claude Code, Codex, OpenCode, pi y omp. El agente en sí debe ejecutarse en Windows. La compatibilidad de cada uno con este sistema operativo depende del propio agente, no de Collie.
Antes de comenzar
Se necesita lo siguiente:
- Windows 11 en x64. WSL no se considera Windows en este contexto. Dentro de WSL, siga las instrucciones de instalación de Linux en Instalación.
- PowerShell. La versión de Windows PowerShell 5.1 incluida con Windows 11 es suficiente.
- Herdr 0.9.3 o posterior para Windows. El paso 1 que figura abajo lo instala. El proyecto Herdr genera la compilación para Windows, y Collie depende de ella.
- Un teléfono con un navegador, un iPhone o un teléfono Android.
- Una cuenta gratuita de Tailscale. Se crea al iniciar sesión por primera vez en la aplicación de Tailscale. La PC y el teléfono deben iniciar sesión en la misma cuenta. El teléfono se conecta a la PC a través de ella, y el paso 6 configura este enlace.
Compruebe si Smart App Control está activado, ya que puede bloquear collie.exe. Abra Seguridad de Windows, luego Control de aplicaciones y exploradores y después Configuración de Smart App Control. Presenta tres estados:
| Estado | Qué significa para esta instalación |
|---|---|
| Desactivado | No bloquea nada. |
| Evaluación | Windows aún está decidiendo si activarlo. No bloqueó Collie en la máquina virtual de prueba. |
| Activado | Puede bloquear collie.exe, ya que el archivo no está firmado y no tiene una autorización por archivo. |
Si está activado, lea Binario no firmado primero. Allí se detallan las opciones.
De cero al teléfono
Siga estos pasos en orden. Después de la lista, se describe lo que debe aparecer tras cada paso. Para leer el script del instalador antes de ejecutarlo, consulte Instalación.
- Instale Herdr con su propio instalador y luego verifique la versión:
irm https://herdr.dev/install.ps1 | iex herdr --version
- Instale Collie con su instalador:
irm https://colliepwa.dev/install.ps1 | iex
- Abra una terminal NUEVA, inicie Herdr allí y déjela abierta:
herdr
- Abra una segunda terminal, o un nuevo panel de Herdr, luego inicie Collie e imprima su dirección:
collie start collie url
- En un panel de Herdr, inicie su agente, por ejemplo Claude Code:
claude
- Permita el acceso desde el teléfono con Acceder desde el teléfono, que el proyecto ejecutó solo sobre HTTP en Windows. Antes del comando
tailscale serve, solo este PC puede conectarse a Collie; después de él, cualquier dispositivo de su tailnet puede hacerlo, hasta completar el emparejamiento.
- En el teléfono, escriba esa dirección en el navegador o envíesela a sí mismo, y luego añada Collie a la pantalla de inicio, como se muestra en Abrir en el teléfono.
- Empareje el teléfono ejecutando esto en el PC:
collie pair
Lo que debe aparecer después de cada paso:
- Herdr muestra la salida de su instalador.
herdr --versionmuestra 0.9.3 o superior. Esta página no tiene un comando de Herdr propio, ya que el proyecto Herdr mantiene el instalador. Si este falla, abra herdr.dev y siga los pasos para Windows. - El script imprime cada paso. Termina con una línea que comienza con
OK Colliey una lista de pasos siguientes, que empieza conNext steps. This script does not take them for you:, luego1. Open a NEW terminal window.y3. Start Collie, then print its address:. Para leer el script primero, consulte Instalación.No se inicia ningún servicio y nada queda en ejecución. El script ejecuta
collie.exe versionuna vez para comprobar que Windows permite su ejecución, y eso es todo. - Herdr se abre y toma el control de esa terminal. Se necesita una terminal nueva porque Windows solo asigna la nueva variable PATH a las ventanas abiertas después de la instalación.
- Se necesita una segunda terminal porque Herdr ocupa la primera.
collie startimprime el banner de Collie se está ejecutando y una nota indicando que Collie no publica una puerta de entrada aquí. La puerta de entrada es la dirección HTTPS frente a Collie que abre el teléfono. Esa nota es normal en Windows: el paso 6 realiza esa parte manualmente. Antes de instalar Tailscale, también imprime esta línea en stderr:error: 'tailscale status' named no host for this node. Esa línea es normal en este punto y desaparece tras el paso 6. - El agente se inicia en el panel. Collie lo muestra en su panel de control.
tailscale serve statusmuestra su dirección de tailnet ycollie urlla imprime. Antes de este paso,collie urlpuede imprimir una dirección de loopback (127.0.0.1), una dirección que solo este PC puede abrir. Puede abrirla en un navegador de este PC para ver el panel de control.- El teléfono muestra el panel de control de Collie. Los paneles que esperan intervención aparecen primero.
collie pairimprime un código de ocho caracteres, luego una línea similar asingle-use · expires <time> (10 minutes)y después un código QR. Escriba el código en Collie en el teléfono, dentro de la aplicación abierta desde la pantalla de inicio. El teléfono quedará emparejado.
Instalación
Qué hace install.ps1 y qué se puede modificar.
irm https://colliepwa.dev/install.ps1 | iexPara leer el script antes de ejecutarlo, guárdelo, ábralo y ejecútelo como un archivo:
Invoke-WebRequest -OutFile install.ps1 https://colliepwa.dev/install.ps1
notepad install.ps1
powershell -ExecutionPolicy Bypass -File .\install.ps1install.ps1 no necesita Bun, ni Git, ni bash. Examina las cinco versiones más recientes, toma la primera que contenga un archivo zip para Windows, comprueba su sha256 y se detiene si no coincide. Un sha256 es una huella digital del archivo. El script imprime cada paso y nunca solicita privilegios de administrador. Si ninguna versión contiene el zip, se detiene como descrito a continuación.
La directiva de ejecución predeterminada, Restricted, que es la regla de Windows que determina qué scripts pueden ejecutarse, rechaza un archivo de script descargado. La última línea de la variante "leer primero" establece Bypass para esa única ejecución. Unblock-File .\install.ps1 es la otra alternativa. La forma irm ... | iex ejecuta el texto del script directamente y no requiere esto.
El script coloca una versión en %LOCALAPPDATA%\collie\versions\<version>, apunta la unión current hacia ella y añade current\bin al PATH del usuario. Una unión es un enlace de carpeta de Windows, y current siempre apunta a la versión que se ejecuta. El script ejecuta collie.exe version una vez para comprobar que Windows permite su ejecución. No inicia nada más. Una segunda ejecución no modifica nada y apunta a collie update.
| Variable | Efecto |
|---|---|
COLLIE_DIR | Dónde instalar. Valor predeterminado: %LOCALAPPDATA%\collie. Manténgalo corto. |
COLLIE_TAG | Instalar una versión exacta, por ejemplo v1.16.0. |
COLLIE_UPDATE_REPO | El repositorio de GitHub desde el que descargar. Valor predeterminado: AltanS/collie. |
COLLIE_NO_PATH_EDIT=1 | No modificar el PATH. Ejecutar <COLLIE_DIR>\current\bin\collie.exe. |
El zip también se encuentra en la página de cada versión en GitHub, junto a su archivo .sha256. Utilice el script, no una instalación manual del zip.
collie start registra una tarea del Programador de tareas llamada herdr.collie. El Programador de tareas es el programa de Windows que ejecuta tareas en momentos o eventos determinados. La tarea inicia Collie al iniciar sesión con un token limitado, lo que significa sin privilegios de administrador.
La tarea ejecuta un iniciador, un pequeño programa que reinicia el puente si este se cierra con un error. El puente es el programa de Collie que se ejecuta en su PC y sirve la página web a su teléfono.
Acceder desde el teléfono
Paso 6 de Cero al teléfono, completo. Son los mismos pasos que en Linux y macOS, realizados manualmente. El proyecto los ejecutó una vez en Windows, a través de HTTP, en una tailnet de Headscale (Headscale es un servidor de Tailscale autoalojado), con un navegador de escritorio a tamaño de teléfono. La variante HTTPS que figura más abajo no se ejecutó, y no se utilizó ningún teléfono ni agente real. Si algún paso falla, repórtelo (donde).
Precaución. Desde el comandotailscale serve(paso 3 a continuación) hasta que empareje un dispositivo, Collie está accesible para todos los dispositivos de su tailnet, y estos pueden leer y escribir en sus paneles. Antes de ese comando, solo este PC puede acceder a Collie. Realice los pasos del teléfono ycollie pairinmediatamente después. Si otras personas comparten su tailnet, realice el emparejamiento de inmediato y lea Seguridad para limitar quién puede acceder a Collie.
- Instale Tailscale en el PC y en el teléfono, e inicie sesión con la misma cuenta en ambos: tailscale.com/download.
- En la consola de administración de Tailscale, abra DNS, active MagicDNS y luego seleccione Enable HTTPS.
- En una terminal nueva en el PC, publique el puerto local de Collie, 8787 por defecto, en su tailnet:
tailscale serve --bg --set-path=/ 8787
- Cree la carpeta de configuración de Collie si no existe y luego abra su archivo
.env:New-Item -ItemType Directory -Force "$env:APPDATA\herdr\plugins\config\herdr.collie" notepad "$env:APPDATA\herdr\plugins\config\herdr.collie\.env"
- Añada estas dos líneas al final del archivo, con su propio nombre del paso 3, y guarde:
COLLIE_PUBLIC_HOSTS=myhost.tail1234.ts.net COLLIE_PUBLIC_URL=https://myhost.tail1234.ts.net
- Reinicie el puente y luego imprima la dirección:
collie restart collie url
Collie escucha únicamente en este PC, en una dirección de bucle invertido a la que solo este PC puede acceder. En Linux y macOS, collie start ejecuta Tailscale Serve de forma automática. Eso es lo que significa "puerta de entrada administrada": Collie publica la dirección por sí mismo. En Windows, collie start no lo hace, por lo que debe ejecutar Tailscale Serve de forma manual.
En el paso 3, Tailscale imprime una línea con una dirección similar a https://myhost.tail1234.ts.net. El nombre es la parte posterior a https://. Cópielo. tailscale serve status muestra la misma dirección:
https://myhost.tail1234.ts.net (tailnet only)
|-- / proxy http://127.0.0.1:8787El comando es el mismo que collie start ejecuta automáticamente en Linux y macOS. --set-path=/ reemplaza cualquier contenido que este PC ya sirva en / en su tailnet.
Nota. En una tailnet de Headscale, el comando HTTPS del paso 3 falla conerror enabling https feature: error 501 Not Implemented, debido a que Headscale no emite certificados HTTPS. Hasta que se publique,collie doctormuestra una advertencia en su líneafront-door:this tailnet has no HTTPS certificates, so an https front door cannot be published. En ese caso, publique mediante HTTP, que es la forma que el proyecto ejecutó en Windows:tailscale serve --bg --http=80 --set-path=/ 8787. Se publica en el puerto 80 de la tailnet, por lo que la dirección eshttp://<name>sin puerto. Utilice esa direcciónhttp://enCOLLIE_PUBLIC_URL. Tras ese comando, la líneafront-doorse aprueba. En la versión 1.16.0 mantiene la advertencia. El uso de HTTP sin cifrar es aceptable en este caso porque Tailscale cifra el tráfico entre los dispositivos de la tailnet (WireGuard), y el salto HTTP permanece dentro de la tailnet. Nunca utilicetailscale funnel. Mediante HTTP, la instalación en la pantalla de inicio, Web Push y el micrófono permanecen desactivados. En Linux y macOS, el modo HTTP propio de Collie publica en el puerto del puente en su lugar (COLLIE_SERVE_MODE). Collie no ejecuta Serve en Windows, por lo que esa variable no altera la publicación en este entorno.
En una tailnet con HTTPS activado, Tailscale asigna a la dirección un certificado en el que el teléfono confía. En Headscale, consulte la Nota anterior. La instalación en la pantalla de inicio, Web Push (notificaciones al teléfono) y el micrófono requieren HTTPS. Mediante HTTP sin cifrar permanecen desactivados (Entrada de voz y Web Push).
En el paso 4, el Bloc de notas pregunta si se debe crear el archivo si no existe. Haga clic en Sí. La carpeta es la carpeta de configuración del plugin de Herdr para herdr.collie, por defecto %APPDATA%\herdr\plugins\config\herdr.collie. Collie la solicita a Herdr, por lo que herdr plugin config-dir herdr.collie la imprime.
COLLIE_PUBLIC_HOSTS es la comprobación de Host: Collie lee el nombre del sitio web en cada solicitud y rechaza cualquier nombre que no figure en esta lista, lo que impide que una página web acceda a él mediante reenlace de DNS (DNS rebinding). COLLIE_PUBLIC_URL es la dirección que imprimen collie url y el código QR de collie pair. Abra Collie mediante el nombre completo: la comprobación de Host rechaza la dirección IP de la tailnet y el nombre corto. Collie también intenta detectar el nombre de la tailnet por sí mismo al inicio. Las dos líneas garantizan su funcionamiento.
Collie no gestiona este mapeo en Windows. collie stop y collie uninstall lo mantienen activo. tailscale serve status lo muestra y tailscale serve reset elimina todos los mapeos de Serve en el PC. Nunca utilice tailscale funnel: Funnel expone Collie a la red pública de internet.
Si prefiere un proxy inverso, un programa que reenvía solicitudes web a Collie, u otro túnel, Despliegue describe las variantes. Eso corresponde a Variante C, con COLLIE_PUBLIC_HOSTS establecido con el nombre que abre el teléfono. El primer collie start no genera ninguna solicitud del cortafuegos, ya que Collie escucha únicamente en esta máquina.
Abrir en el teléfono
- Transfiera la dirección de
collie urlal teléfono: escríbala o envíesela a sí mismo. En un iPhone, ábrala en Safari. En un teléfono Android, ábrala en Chrome. El teléfono requiere la aplicación Tailscale, con la sesión iniciada en su tailnet. - Añada Collie a la pantalla de inicio para que se abra a pantalla completa como una aplicación: - iPhone: en Safari, pulse Compartir, pulse Añadir a la pantalla de inicio y luego pulse Añadir. - Android: en Chrome, abra Collie Settings y pulse Instalación en la tarjeta superior.
- Abra Collie desde el nuevo icono.
- En la aplicación, abra Settings, luego Sistema y luego Paired devices.
- Ejecute
collie pairen la PC, escriba el código y un nombre, y luego pulse Emparejar este dispositivo.
Escriba el código en la aplicación que abrió desde el icono. No escanee el código QR que imprime collie pair: la cámara lo abre en una pestaña del navegador y, en un iPhone, la aplicación de la pantalla de inicio mantiene su propio almacenamiento, independiente de Safari, por lo que una vinculación realizada en la pestaña no se transfiere.
El código es válido durante 10 minutos y funciona una sola vez. Ejecute collie pair de nuevo si expiró. La vinculación finaliza el acceso abierto indicado en la Advertencia anterior (Emparejar un dispositivo).
Comandos habituales
Ejecute estos comandos en cualquier terminal. Cada uno funciona igual que en Linux y macOS, con las notas de Windows a continuación.
| Comando | Qué hace en Windows |
|---|---|
collie start | Registra la tarea herdr.collie si es necesario e inicia el puente. |
collie stop | Deshabilita la tarea, finaliza un puente en ejecución junto con su iniciador e imprime bridge stopped. Collie permanece apagado, incluso en el siguiente inicio de sesión, hasta collie start. |
collie restart | Reinicia solo el puente. |
collie status | Indica el nombre de la tarea y su estado, y muestra el banner de Collie se está ejecutando. |
collie doctor | Comprueba la instalación, Herdr, las rutas largas y los archivos secretos, e imprime una solución para cada problema. |
collie url | Imprime la dirección que se debe abrir en el teléfono. |
collie logs | Imprime las últimas líneas del archivo de registro. |
collie update | Actualiza a la versión más reciente (Actualizar). |
collie update --rollback | Vuelve a la versión anterior (Actualizar). |
collie uninstall | Elimina la tarea (Desinstalar). |
Actualizar
Actualice desde el terminal o desde el teléfono, del mismo modo que en Linux y macOS:
collie updateLa actualización descarga la versión, reemplaza collie.exe, reinicia el puente y comprueba que responda. Si no responde, Collie revierte a la versión funcional en aproximadamente un minuto y cuarto. El botón Update del teléfono ejecuta la misma secuencia.
Para volver a la versión anterior manualmente, ejecute esto. No requiere red. Apunta current a la versión anterior más reciente que aún esté en el disco y reinicia el puente. Si esa versión no se inicia, Collie vuelve a avanzar y no cambia nada:
collie update --rollbackUna carpeta de una versión anterior puede permanecer en versions\ hasta que el lanzador se reinicie, ya que Windows no elimina una carpeta retenida por un programa en ejecución. La siguiente actualización la elimina.
Precaución. Una copia local desde el código fuente nunca se actualiza sola en Windows:collie updatey el botón del teléfono lo indican en una sola frase y no modifican nada. Cada instalación de Windows realizada antes del primer archivo zip es una copia local del código fuente. Migrar a la instalación por zip es un paso manual que se realiza una sola vez: ejecutecollie uninstallpara eliminar la tarea antigua y luego ejecuteinstall.ps1. A partir de ese momento,collie updatefunciona.
Collie permite una sola instalación por equipo con Windows, y collie start rechaza una tarea que ejecute otra, motivo por el cual la tarea antigua se elimina primero. También se puede conservar la copia local del código fuente y actualizarla manualmente: descargue la etiqueta más reciente, ejecute bun run build y luego collie restart. La compilación requiere bash de Git for Windows.
Las versiones hasta la v1.15.0 inclusive no pueden reemplazar un collie.exe en ejecución y fallan con EPERM. La corrección (PR 309) se incluyó por primera vez en la v1.15.1. El trabajo posterior en las actualizaciones de Windows, como el botón de actualización del teléfono en Windows, se incluye a partir de la v1.16.0.
Desinstalar
collie uninstallcollie uninstall detiene el puente y elimina la tarea del Programador de tareas. Conserva la carpeta de instalación, su .env y la entrada de PATH de usuario, del mismo modo que toda instalación conserva sus archivos. Luego imprime dos líneas adicionales para PowerShell. La primera elimina la carpeta de instalación. La segunda elimina únicamente current\bin de su PATH de usuario a través del registro. Collie imprime ambas líneas por separado, con la ruta real de su carpeta incluida. Se ven así, divididas aquí para ajustarse al texto:
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()Copie las líneas de la salida del propio Collie cuando sea posible. Collie no elimina una asignación de tailscale serve creada manualmente (Acceder desde el teléfono).
Cuándo algo falla
Ejecute collie doctor primero, y luego busque su problema a continuación.
collie doctor comprueba la instalación e imprime una solución para cada problema encontrado. Luego lea la sección inferior que coincida con lo observado. Si ninguna coincide, revise el registro, descrito en Registros.
Para reportar un problema, abra una incidencia en github.com/AltanS/collie/issues. Indique que utiliza Windows, especifique la versión de Collie obtenida de collie version y pegue la salida de collie doctor junto con las últimas líneas del registro. Elimine cualquier dato privado primero. El registro puede contener texto del panel.
Binario sin firmar: SmartScreen y Smart App Control
collie.exe no está firmado, por lo que Windows desconoce quién lo publicó. Lea esto antes de ejecutar el instalador.
Dos funciones de Windows pueden detener un programa sin firmar:
- SmartScreen pregunta antes de ejecutar un programa procedente de Internet. Para un archivo descargado en un navegador, haga clic en Más información y luego en Ejecutar de todas formas.
- Smart App Control no permite autorizaciones por archivo individual. Si está activado y bloquea Collie, no se puede autorizar ese archivo específico.
install.ps1muestra el bloqueo cuando ejecutacollie.exe versiony no imprime ninguna línea de éxito.
Si Smart App Control bloquea Collie, dispone de las siguientes opciones, en este orden:
- Compruebe si está activado: abra Seguridad de Windows, luego Control de aplicaciones y exploradores y luego Configuración de Smart App Control.
- Compile desde el origen (Compilación desde el código fuente), lo que genera
collie.exeen su propia máquina. Esto no se ha probado en una máquina donde Smart App Control esté activado. - Use un PC donde Smart App Control esté desactivado, o informe del bloqueo en una issue.
- Por último, desactive Smart App Control. Esto es difícil de revertir: la documentación de Microsoft ha indicado que volver a activarlo puede requerir restablecer Windows, por lo que conviene leer primero la página actual de Microsoft.
La comprobación sha256 en install.ps1 detecta una descarga dañada o alterada. No indica quién publicó el archivo, ya que el hash se encuentra junto al zip y quien pueda reemplazar uno puede reemplazar el otro. La firma del binario es un posible paso posterior, sin fecha fijada.
Rutas largas
Lo que se observa: un panel no se abre y Herdr muestra The directory name is invalid (os error 267). collie doctor advierte primero: LongPathsEnabled is 0 on this machine.
Herdr no puede iniciar un panel en una carpeta cuya ruta supere los 260 caracteres salvo que las rutas largas de Windows estén activadas. collie doctor también advierte cuando la propia carpeta de instalación es muy larga.
En una sesión de PowerShell ejecutada como administrador:
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' `
-Name LongPathsEnabled -Value 1Es posible que Windows requiera un reinicio antes de que los programas en ejecución reconozcan el cambio. Mantenga las carpetas de trabajo con nombres cortos en cualquier caso.
El Programador de tareas rechaza a un usuario estándar
Lo que se observa: collie start falla con error: schtasks /Create /TN herdr.collie failed, Windows notifica 0x80070569 y Collie indica que la cuenta carece del derecho "Iniciar sesión como trabajo por lotes".
Esto afecta a una cuenta de usuario estándar que nunca tuvo ese derecho. Una cuenta de administrador suele tenerlo.
Un administrador concede el derecho:
- Ejecute
secpol.msc. - Abra Directivas locales y luego Asignación de derechos de usuario.
- Abra Iniciar sesión como trabajo por lotes y añada la cuenta.
- Ejecute
collie startde nuevo.
Windows Home no incluye secpol.msc.
Archivos secretos
Lo que se observa: collie doctor muestra una línea secrets-private, por ejemplo can be read by other accounts, con una solución.
Collie limita quién puede leer sus archivos secretos: su cuenta, SYSTEM y Administrators. Windows no tiene un modo 0600, por lo que Collie define la lista de control de acceso (ACL) de sus carpetas de estado y configuración.
collie doctorLa línea secrets-private tiene tres respuestas:
| Respuesta | Significado |
|---|---|
| Privado | Las carpetas son privadas para su cuenta, SYSTEM y Administrators. |
| Permisivo | Otra cuenta puede leer una carpeta o un secreto. Esto es un error, y doctor muestra la solución. |
| No comprobado | Collie no puede leer la lista, por lo que indica cannot confirm. Esto es una advertencia. |
Una carpeta en un recurso compartido de red o en un volumen FAT o exFAT aparece como "no comprobada", ya que no hay ninguna lista para leer. Mantenga las carpetas de estado y configuración en una unidad NTFS de este equipo.
El bridge repara una carpeta permisiva al iniciar, pero solo si es una carpeta creada por Collie en ese momento, una carpeta predeterminada en su perfil de usuario, o una carpeta vacía o que contiene únicamente archivos propios de Collie. Cualquier otra carpeta se comprueba y genera una advertencia, junto con el comando icacls que la corrige. collie doctor y otros comandos no cambian nada.
Para deshacer una reparación: antes de realizarla, el bridge guarda la lista anterior en acl-backups dentro de la carpeta de estado y muestra la línea para deshacer. Ejecútela en un terminal iniciado como administrador:
icacls <folder> /restore <backup file>COLLIE_NO_ACL_REPAIR=1 desactiva todos los cambios. Collie sigue comprobando y emitiendo advertencias. La descripción completa de las reglas se encuentra en Archivos secretos en Windows.
Registros
El registro del bridge es collie.log en la carpeta de configuración del plugin (%APPDATA%\herdr\plugins\config\herdr.collie\collie.log por defecto). collie logs muestra sus últimas líneas. Collie solo añade contenido y nunca lo rota, por lo que el archivo crece mientras el bridge se ejecuta. Para vaciarlo, ejecute collie stop, elimine el archivo y luego ejecute collie start.
Compilación desde el código fuente
El archivo zip de la versión no necesita una cadena de herramientas. La compilación desde el código fuente todavía requiere Bun, Git y el bash de Git for Windows en el PATH, ya que bun run build invoca a bash. Está prevista una compilación sin bash, pero aún no se ha implementado.
Qué es compatible
Un host: Windows 11 en x64, con Herdr como multiplexor.
Un crew son varias máquinas que ejecutan cada una un Collie, visibles tras una única URL (Crews).
| Compatible | No admitido, puede funcionar, no probado | |
|---|---|---|
| Windows | Windows 11, x64 | Windows 10, Windows Server y Windows en ARM |
| Multiplexor | Herdr 0.9.3 o posterior para Windows | tmux, zellij y tuios: ninguno cuenta con una compilación nativa para Windows |
| Servicio | Programador de tareas, un Collie por equipo | Un servicio de Windows, winget y MSI |
| Crew | Collie en una sola máquina | Una máquina Windows que se une a un equipo |
| Puerta de entrada | Lo publica uno mismo, de forma manual | Un punto de acceso gestionado por Collie |
| Binario | collie.exe, sin firmar, con un sha256 | Un binario firmado |
También aplican estos límites:
- Collie permite una instalación por máquina con Windows. El nombre de la tarea siempre es
herdr.collie. herdr plugin installno es una ruta de instalación de Windows. Utiliceinstall.ps1, luegocollie start.- Los botones de acción de Herdr no existen en Windows, ya que requieren
bash. - La compilación de Herdr para Windows la realiza el proyecto Herdr. Collie depende de ella y no la controla.
Crews
Una máquina con Windows no puede unirse a un crew en esta versión. collie crew invite, crew join, crew add, crew deputy, crew approve-promote y collie promote lo rechazan en Windows, lo indican en una sola frase y no modifican nada. Collie en una sola máquina con Windows funciona de forma autónoma.
Migración desde el script de la comunidad
Qué cambia si se ejecutó el script de la comunidad y qué no se transfiere.
Antes de esta versión, Windows se ejecutaba bajo contrib/windows/collie-ctl.ps1, un script creado por la comunidad. Collie ahora ejecuta la tarea por sí mismo, y cada verbo del script es un verbo de collie con el mismo nombre. Tras actualizar, ejecute collie restart una vez. Si el script ejecutaba la tarea llamada herdr.collie, Collie toma el control bajo el mismo nombre. Hasta que reinicie, collie status y collie doctor indicarán que la tarea todavía ejecuta el script antiguo.
Dos cosas no se conservan:
- Un nombre de tarea personalizado. El script permitía definir
COLLIE_TASK_NAME. Collie no lo lee, y la tarea siempre esherdr.collie. Una tarea registrada con otro nombre permanece donde está, y Collie no la detiene ni la elimina. Elimínela antes de ejecutarcollie start, o dos supervisores iniciarán el bridge. En PowerShell:schtasks /Delete /TN "<your task name>" /F. - Copias del registro de fallos. El script guardaba una copia del registro cuando el bridge fallaba. Collie no lo hace. Las copias antiguas permanecen en el disco hasta que se eliminen.
Cómo se prueba esto y cuándo finaliza la fase experimental
Por qué Collie indica experimental, para lectores que deseen ver las evidencias. No se necesita para usar Collie.
Dos palabras en esta página tienen un significado específico:
- Compatible significa que el mantenedor asume el código de Windows y lo prueba: una ejecución de CI en cada push y un ensayo en una máquina virtual con Windows 11 antes de cada tag de lanzamiento (ADR 0075). CI es la ejecución automática de pruebas en GitHub. Un ADR es un registro breve de decisiones conservado en el repositorio.
- Experimental significa que una actualización entre dos versiones reales y la ruta HTTPS para teléfonos aún no se han validado.
En qué se basa la compatibilidad:
- El flujo de trabajo
windows.yml, un flujo de trabajo de CI, ejecuta las pruebas de bridge, cli y scripts enwindows-latestpara cada pull request y cada push amain. Todavía no es una comprobación obligatoria. El mantenedor planea hacerla obligatoria tras unas diez ejecuciones consecutivas correctas. - Cada lanzamiento compila
collie-<version>-windows-x64.zipcon un archivo.sha256. - Antes de cada tag de lanzamiento, el mantenedor ejecuta un ensayo,
make win-rehearse. Instala una versión en una VM limpia con Windows 11, la actualiza desde el terminal y desde el endpoint del teléfono, fuerza un error en la comprobación de estado y verifica la reversión. La actualización utiliza una copia local de los archivos de la versión. Si la VM no está disponible, el tag espera. - Windows 11 constituye la segunda referencia junto con CI, ya que el runner de CI es Windows Server.
- La instalación real a partir de la versión pública v1.16.0 se ejecutó en una VM con Windows 11.
install.ps1encontró la versión, descargó el zip, el sha256 coincidió ycollie.exese ejecutó como 1.16.0.collie startregistró la tarea e inició el bridge.collie statusindicó en ejecución,collie doctorfinalizó con código 0 ycollie stoplo detuvo. El script enhttps://colliepwa.dev/install.ps1está activo y es idéntico a nivel de bytes al script de la versión v1.16.0. - El acceso móvil se ejecutó en una VM con Windows 11 dentro de una tailnet de Headscale, a través de HTTP.
tailscale serve --bg --http=80 --set-path=/ <port>publicó Collie. Las dos líneas.envycollie restarthicieron quecollie urly el banner decollie startmostraran el nombre de la tailnet. Desde otra máquina de la tailnet, la página,/api/healthy/api/snapshotrespondieron con el nombre completo, y se rechazó una solicitud por dirección IP de la tailnet o por nombre corto. La vinculación en la interfaz móvil funcionó, y tras ella una escritura sin las credenciales devolvió 403 "device not paired". Un navegador de escritorio con tamaño de pantalla móvil sirvió de sustituto para el teléfono. - Smart App Control en la VM de prueba está en modo de evaluación, y ni Smart App Control ni SmartScreen han bloqueado Collie allí. Esta página describe lo que documenta Windows, no un bloqueo que se haya observado.
El término experimental solo se retira cuando se cumplen todos estos puntos simultáneamente:
- Un lanzamiento incluye el zip de Windows,
install.ps1está en colliepwa.dev y se han ejecutado una instalación y una actualización contra una versión real. Los tres primeros se cumplen: v1.16.0 incluye el zip, la dirección está activa y la instalación se ha ejecutado. Una actualización entre dos versiones reales aún no, ya que requiere una segunda versión con el zip. - La comprobación de Windows es una comprobación obligatoria en la protección de ramas. La protección de ramas es la configuración de GitHub que bloquea una fusión hasta que se superan las comprobaciones indicadas.
- La barrera de publicación lee el flujo de trabajo de Windows. La barrera es el primer paso del flujo de trabajo de publicación, que espera a las pruebas antes de publicar.
- La tolerancia para un archivo zip de Windows ausente está desactivada. Ya está desactivada, como indica la siguiente sección.
Una versión sin un archivo zip de Windows
La comprobación de publicación exige el archivo zip de Windows a partir de ahora. Solo el mantenedor puede anular esto, para una corrección urgente en Linux. El trabajo de publicación comprueba esto en scripts/windows-asset.ts. Busca una versión estable anterior (que no sea un borrador ni una versión preliminar) que incluya el archivo zip, y v1.16.0 es una de ellas. A partir del 15 de noviembre de 2026, el archivo zip es obligatorio en cualquier caso, y también es obligatorio si la lista de versiones de GitHub no responde. La única excepción es un interruptor que el mantenedor puede definir para una corrección urgente en Linux mientras la compilación de Windows falle: la variable de repositorio COLLIE_WINDOWS_ASSET_OVERRIDE. Una versión creada con ese interruptor no incluye el archivo zip de Windows.
Las versiones anteriores a v1.16.0 no tienen un archivo zip de Windows. Lo que se muestra cuando la versión más reciente no tiene ninguno:
install.ps1examina las cinco versiones más recientes. Para cada una imprime<tag> has no Windows build. Trying the next older release.. Luego imprimecollie install: none of the newest 5 releases of AltanS/collie carries a Windows build yet. Nothing was installed.y finaliza conInstall failed.y una línea que indica fijar una versión que sí lo incluya. No modifica nada en el equipo. Para fijar una versión, definaCOLLIE_TAG.collie updateen una instalación de Windows muestraerror: release <version> has no Windows build; try again after the next release. Nothing was changed.
Para verificar, abra la página de la versión en GitHub y busque un archivo llamado collie-<version>-windows-x64.zip.
Qué no está probado
Lista simple, para evitar que esto se interprete como un compromiso:
- Una actualización entre dos versiones reales en Windows. El ensayo utilizó una copia local de los archivos de la versión.
- La modalidad HTTPS de Tailscale Serve en Windows (Headscale respondió
501 Not Implemented), y con ella la instalación en la pantalla de inicio, Web Push y el micrófono. También un teléfono real, un agente en ejecución en un panel de Herdr y un proxy inverso, en lugar de Tailscale Serve. - Un
collie update --rollbackmanual en Windows. Se ensayó la reversión automática tras una actualización fallida. - Migrar de una copia local del código fuente a la instalación por zip, y actualizar una copia local del código fuente a mano.
- Instalar el archivo zip a mano, sin
install.ps1. - Windows 10, Windows Server, Windows en ARM, tmux, zellij y tuios en Windows.
- Un bloqueo real de Smart App Control y PowerShell 7 para
install.ps1. - La compilación desde el código fuente en una máquina donde Smart App Control está activado.
- La corrección del Programador de tareas en Windows Home. Se comprobó la ruta con un usuario estándar cuyo nombre contenía un espacio y una letra que no pertenece a ASCII.
- Un volumen FAT en hardware real. La respuesta de "no verificado" está cubierta por pruebas unitarias.
- El rechazo de la tarea de un segundo Collie, cubierto solo mediante pruebas unitarias.
- Si el Explorador detecta el nuevo PATH sin cerrar sesión y la modificación del PATH por parte de un usuario estándar.
- El proveedor de voz
local-clicon un motor real. La limpieza se verificó con un comando de prueba: Collie termina el árbol de procesos del comando, pero un proceso iniciado por un asistente que ya ha salido puede sobrevivir (Entrada de voz y Web Push).