Pular para o conteúdo
ColliePWA

01/Documentation

Instale o Collie

A porta de entrada necessária e a instalação para o seu sistema: Linux, Arch e Omarchy, Nix, macOS, Windows ou como um plugin do Herdr. Cobre a primeira execução, configuração em um iPhone ou celular Android, atualizações e desinstalação

Instale o Collie no seu sistema, inicie-o e coloque-o no seu celular. Leia Segurança primeiro: o Collie expõe acesso remoto ao shell da sua máquina por padrão.

Antes de começar

O Collie precisa de uma porta de entrada: algo que o sirva via HTTPS e restrinja o acesso a você.

A porta de entrada padrão é o Tailscale. O collie start executa o tailscale serve para você, e seu celular acessa o Collie pela sua tailnet, sua rede privada Tailscale. O restante desta página assume o Tailscale. Para usar um proxy com reconhecimento de identidade, um proxy reverso, Cloudflare Tunnel ou NetBird em vez disso, veja Portas de entrada, um produto por vez.

Com o Tailscale, prepare três coisas:

  1. Coloque o host na sua tailnet instalando o Tailscale nele e executando tailscale up.
  2. Ative certificados HTTPS para a tailnet abrindo o console de administração e selecionando Enable HTTPS.
  3. Coloque o celular na mesma tailnet instalando o aplicativo Tailscale e entrando na mesma conta.

O collie start encerra com um erro se o HTTPS estiver desativado. O celular também exige HTTPS para instalar o Collie na tela inicial e receber Web Push.

Duas formas de executar

Todo Collie é de um de dois tipos, e cada comando nesta página é descrito uma vez para cada um. Escolha sua coluna e mantenha-a pelo restante da documentação.

Plugin do HerdrStandalone
Você instalou comherdr plugin install AltanS/collie ou herdr plugin linkO script de instalação, uma compilação a partir do código-fonte ou um pacote
Como identificarherdr plugin list mostra herdr.colliecollie está no seu PATH, ou fica em ~/.local/share/collie/current/bin/collie
Os verbos são escritos comoherdr plugin action invoke <verb> --plugin herdr.colliecollie <verb>
Quem atualizaA ação updatecollie update, ou o seu gerenciador de pacotes
.env de configuração~/.config/herdr/plugins/config/herdr.collie/.env (herdr plugin config-dir herdr.collie exibe o caminho)~/.config/collie/.env, ou o caminho do Herdr em um host que executa o Herdr
Estado~/.local/state/collie/~/.local/state/collie/

collie doctor lista os arquivos de configuração que esta instalação realmente lê, sob a linha config-file.

Um plugin do Herdr ainda é o mesmo binário collie; as ações encaminham para ele (Ações do Herdr). Uma instalação como plugin não tem o collie no seu PATH, portanto os verbos que não possuem ação (pair, qr, logs, link, devices, stt, config) são executados a partir do diretório do plugin como bin/collie <verb>.

O Herdr também é um dos cinco multiplexadores que o Collie pode espelhar (Herdr, tmux, zellij, tuios e tern). Qual deles você espelha é uma escolha separada (Indique o seu multiplexador): um Collie standalone pode espelhar o Herdr, e um plugin do Herdr pode espelhar o tmux.

Requisitos

O Collie roda no Linux e no macOS. O Windows 11 em x64 com Herdr é um host suportado, ainda marcado como experimental; veja Suporte ao Windows.

FerramentaNecessário paraFinalidade
curl, tar, ferramenta sha256 (sha256sum/shasum)Script de instalação de binários e atualizaçõesBaixar e verificar arquivos compactados de release.
BunBuilds a partir do código-fonteExecutar a bridge e compilar a interface web.
gitBuilds a partir do código-fonte e rotas do HerdrClonar e atualizar o repositório.
Multiplexador: Herdr, tmux, zellij, tuios ou ternTodas as instalaçõesBackend espelhado definido via COLLIE_MUX. tmux e zellij são experimentais na versão 1.0, e tuios e tern também são experimentais; consulte Apontando o Collie para um multiplexador e MUX_CONTRACT.md.
Herdr ≥ 0.7.0Apenas backend HerdrObrigatório quando COLLIE_MUX=herdr. Verifique com herdr --version.
TailscaleA porta de entrada padrãoO tailscale serve faz o proxy do Collie para a sua tailnet. Não é necessário atrás de outra porta de entrada.
Nota. O Collie não exige versão mínima do tmux ou do zellij. Os adaptadores foram testados com tmux 3.4, tmux 3.6b e zellij 0.44.2. Um caso específico do tmux é tratado: em um servidor usando window-size manual, o tmux anterior à versão 3.7 trava ao criar uma janela. O Collie bloqueia a requisição e instrui você a executar tmux set -g window-size latest.

Dependências opcionais, necessárias apenas para estes recursos:

FerramentaNecessário para
Node.jsFormata nomes MagicDNS em logs.
systemd / launchdSupervisão de serviço; recorre a nohup.
web-pushOpcional, consulte Web Push.

Instalação

Encontre seu sistema abaixo, execute os comandos dele e siga para Inicie o serviço.

SistemaCaminho recomendado
LinuxO script de instalação
Arch Linux, OmarchyPacote collie-bin
NixOS, ou Nix em qualquer sistemaPacote flake
macOS, Apple Silicon ou IntelO script de instalação
Windows 11 (x64, com Herdr)install.ps1, experimental
Qualquer um destes, dentro do HerdrPlugin do Herdr

Linux

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

O script instala um binário pré-compilado para x86_64 ou arm64. Standalone explica o que ele faz e como fixar uma versão.

O collie start executa a bridge como um serviço do systemd --user. Ele para quando você encerra a sessão. Em um servidor acessado via SSH, mantenha-o em execução após o logout e reinicializações:

loginctl enable-linger $USER

Consulte Persistindo após reinicializações para obter detalhes.

Arch Linux e Omarchy

git clone https://github.com/AltanS/collie.git && cd collie/packaging/aur
makepkg -si
collie start

O collie-bin ainda não está no AUR nem no repositório do Omarchy. Por enquanto, compile a partir do PKGBUILD deste repositório. Ele baixa o binário pré-compilado sem compilar. Depois de publicado, o sudo pacman -S collie-bin (Omarchy) ou paru -S collie-bin (AUR) substitui o clone.

O Omarchy inclui tmux e Herdr. Você deve especificar qual espelhar na primeira inicialização, por exemplo COLLIE_MUX=herdr collie start. Arch e Omarchy em Package details cobrem a estrutura de diretórios, atualizações e remoção.

NixOS e Nix

nix profile install github:AltanS/collie#collie
collie start

Isso funciona no NixOS e em qualquer sistema com Nix no x86_64-linux, aarch64-linux e aarch64-darwin. Ainda não há um módulo para NixOS. Nix em Package details contém o restante.

macOS

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

Os binários de Mac publicados cobrem Apple Silicon (macos-arm64) e Intel (macos-x64), e exigem o macOS 13 ou mais recente, o mínimo contra o qual o build do Bun deles faz o link. O binário Intel usa o target baseline do Bun, portanto também roda em Macs sem AVX2.

O collie start registra um agente do launchd em ~/Library/LaunchAgents. Ele inicia o Collie no login e o reinicia em caso de falha. Ele também executa tailscale serve, portanto o comando tailscale deve estar no seu PATH. O aplicativo Tailscale para Mac pode instalar esse comando a partir de suas configurações.

Nota. Um Mac acessado apenas por SSH não tem sessão de login para o launchd. O collie start informa isso e executa a bridge em segundo plano sem supervisão: sem reinício em caso de falha, nada no login.

O macOS ainda não tem pacote. O mise funciona em um Mac, assim como a saída de aarch64-darwin Nix.

Suporte ao Windows (experimental)

Experimental. A instalação foi testada com a versão pública v1.16.0 em uma máquina virtual Windows 11, e a atualização foi ensaiada com cópias locais dos arquivos de lançamento. O acesso pelo celular via HTTP usando Tailscale Serve também foi executado. Uma atualização entre duas versões reais e a opção HTTPS de acesso pelo celular ainda não foram testadas. A verificação de lançamento agora exige o arquivo zip do Windows. Apenas o mantenedor pode ignorar isso, no caso de um hotfix para Linux. "Com suporte" significa que o mantenedor é responsável pelo código e o testa; "experimental" permanece até que todas as condições na página do Windows sejam atendidas. Collie no Windows contém a página completa.

Execute install.ps1. Não é necessário ter Bun, Git ou bash:

irm https://colliepwa.dev/install.ps1 | iex

Para ler o script antes, salve-o, abra-o e execute-o como um arquivo:

Invoke-WebRequest -OutFile install.ps1 https://colliepwa.dev/install.ps1
notepad install.ps1
powershell -ExecutionPolicy Bypass -File .\install.ps1

Depois, abra um novo terminal e inicie o Herdr. O Herdr assume o controle desse terminal, então abra um segundo terminal ou um painel do Herdr e execute collie start nele. Do zero ao celular tem todas as etapas, incluindo como abrir o Collie no celular.

O que saber antes de começar:

  • Windows 11 em x64, apenas com Herdr. tmux, zellij, Windows 10 e Windows em ARM não são cobertos.
  • O binário não é assinado. O SmartScreen pode perguntar antes de executar, e o Smart App Control pode bloqueá-lo. Página do Windows.
  • Você mesmo publica o endereço. No Linux e no macOS, collie start executa tailscale serve para você. No Windows não, então você deve executá-lo manualmente: Acessando a partir do seu celular contém as etapas com o Tailscale, e Variante C aborda um proxy reverso.
  • Uma máquina Windows não pode entrar em uma crew nesta versão.
  • Um build a partir do código-fonte precisa do bash do Git for Windows. O zip não precisa de toolchain.
  • Um checkout do código-fonte nunca se atualiza sozinho no Windows. Mudar para a instalação por zip é uma etapa manual única: collie uninstall, depois install.ps1. Depois disso, collie update funciona. Update contém os detalhes.

Standalone

O script de instalação baixa a versão mais recente em ~/.local/share/collie (COLLIE_DIR) e cria um link do binário para ~/.local/bin/collie:

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

Ele busca a versão estável mais recente e mantém a instalação existente intacta. Para atualizar uma instalação, use collie update. A fonte canônica é scripts/install.sh no repositório: uma página de sh POSIX que nunca chama sudo. Leia antes de executar:

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

Se ~/.local/bin não estiver no seu PATH, execute o binário diretamente:

~/.local/share/collie/current/bin/collie version

Para fixar uma versão ou reparar uma instalação existente (consulte Quando o collie não rodar):

curl -fsSL https://colliepwa.dev/install.sh | COLLIE_TAG=v1.0.0 sh

O script consulta a API do GitHub em busca de lançamentos, que aplica limite de taxa por endereço IP. Se retornar HTTP 403, fixe a versão como mostrado acima ou defina GH_TOKEN com um token sem escopos. Consulte Se o GitHub limitar a taxa de verificação de releases.

Para versões preliminares, passe --beta. Ele seleciona a versão preliminar mais recente, e a instalação passa a acompanhar as versões preliminares dessa versão principal até o lançamento final (Pré-lançamentos).

O mesmo resultado, a partir do código-fonte

# 1. Clone and checkout latest stable tag
git clone https://github.com/AltanS/collie.git ~/.local/share/collie
cd ~/.local/share/collie
git checkout --detach "$(git tag --list 'v*' | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | sort -V | tail -1)"

# 2. Build runtime and UI
bash scripts/collie-ctl.sh build

# 3. Verify
bin/collie version

# 4. Optional: link to PATH
bin/collie link

A compilação a partir do código-fonte requer Bun e git. Inicie-o com bin/collie start, ou com collie start após vincular.

Plugin do Herdr

herdr plugin install AltanS/collie
herdr plugin action invoke start --plugin herdr.collie

Inicie o servidor Herdr primeiro (herdr ou herdr server &). Isso funciona no Linux e no macOS.

Para instalar a partir de um clone local:

git clone https://github.com/AltanS/collie.git && cd collie
herdr plugin link "$(pwd)"
herdr plugin action invoke start --plugin herdr.collie

Para uma versão de pré-lançamento, instale a tag com herdr plugin install AltanS/collie --ref <tag> --yes. Essa é toda a ativação necessária (Pré-lançamentos).

A partir de um pacote

Um pacote é uma instalação autônoma gerenciada pelo seu gerenciador de pacotes: ele instala, atualiza e remove. Os comandos para cada gerenciador aparecem acima e sob Detalhes do pacote, junto com mise para Linux e macOS.

Um pacote não é um plugin do Herdr. Para exibir os botões do Collie no Herdr, vincule a árvore instalada uma vez:

herdr plugin link /opt/collie

O Herdr não varre /opt, portanto nunca detecta o pacote automaticamente. As ações update e update-major do plugin se recusam a executar e direcionam você para o seu gerenciador de pacotes. Isso é intencional: seu gerenciador de pacotes gerencia essa árvore.

Indique o seu multiplexador

O Collie espelha um backend: COLLIE_MUX=herdr (padrão), tmux ou zellij.

Você não precisa defini-la antes da primeira inicialização. O start procura um socket ativo do Herdr, um servidor tmux em execução e sessões do zellij, exibe o que encontrou e grava sua escolha na configuração .env, criando o arquivo se necessário.

Sem um prompt de terminal, o start seleciona o único backend encontrado e o reporta. Se não encontrar nenhum, ou encontrar vários, ele se recusa a iniciar e solicita que você defina COLLIE_MUX.

Para escolher com antecedência, preencha a configuração antes da primeira inicialização:

mkdir -p ~/.config/collie
cp ~/.local/share/collie/current/.env.example ~/.config/collie/.env

Esse caminho é para o script de instalação; um checkout do código-fonte tem .env.example na raiz. Em um plugin do Herdr, o arquivo fica onde herdr plugin config-dir herdr.collie aponta. Em seguida, defina o backend e seu endpoint:

COLLIE_MUX=tmux                                           # or: zellij
# zellij instead: COLLIE_MUX_ENDPOINT_ZELLIJ=<session>
COLLIE_MUX_ENDPOINT_TMUX=/run/user/1000/collie-tmux.sock
Atenção. Não execute esse cp após uma inicialização: ele sobrescreve o valor de COLLIE_MUX que start acabou de gravar.

Edite o arquivo mais tarde conforme sua configuração mudar. Consulte Apontando o Collie para um multiplexador.

Inicie o serviço

herdr plugin action invoke start --plugin herdr.collie   # Herdr plugin
collie start                                             # standalone

start vai:

  1. Compilar web/dist se estiver ausente.
  2. Iniciar o bridge sob systemd --user (ou launchd/nohup).
  3. Execute tailscale serve --bg 8787 (HTTPS :443 → 127.0.0.1:8787).
  4. Exibir o banner de conexão.

Primeira execução: o que você verá

Saída de collie start (execuções do Herdr retornam JSON; veja os logs com herdr plugin log list --plugin herdr.collie):

$ collie start
building web UI (first run)…                    # linked clone only; a GitHub install already built
…bun install · typecheck · vite build output…
bridge started (systemd --user: collie)
tailscale serve (https) → tailnet :443 -> 127.0.0.1:8787

  ✓ Collie is running  ·  v1.0.0+b158755
    service   systemd --user (collie) · active
    local     http://127.0.0.1:8787
    tailnet   https://myhost.tail1234.ts.net

Se a verificação de integridade falhar (⚠ Collie isn't answering on :8787 yet), consulte Solução de problemas.

A bridge roda como um serviço do systemd --user ou agente launchd do macOS. Ela inicia no login e reinicia em caso de falha (ARCHITECTURE.md §3). No Linux, loginctl enable-linger $USER a mantém em execução entre reinicializações (Persistindo após reinicializações).

Configure o acesso de usuários em Configuração e o acesso de dispositivos via pareamento (collie pair).

Está funcionando?

Verifique o status e os logs:

$ collie status

  ✓ Collie is running  ·  v1.0.0+b158755
    service   systemd --user (collie) · active
    local     http://127.0.0.1:8787
    tailnet   https://myhost.tail1234.ts.net

  serve config:
    https://myhost.tail1234.ts.net (tailnet only)
    |-- / proxy http://127.0.0.1:8787
$ collie logs        # journal timestamps trimmed here
[push] disabled (no VAPID keys configured)
[bridge] listening on http://127.0.0.1:8787  (poll 1500ms)
[bridge] WARNING: COLLIE_TRUSTED_USER is empty — any tailnet device/user that reaches the bridge is checked by its pairing token alone. Set it to your tailnet login (see README → Variant A).

Para restringir o acesso, defina COLLIE_TRUSTED_USER=you@example.com em .env e execute collie restart (Configuração). Se faltar conteúdo no dashboard, consulte Solução de problemas.

Coloque no seu celular

Abra o Collie no celular, pareie o celular e adicione o Collie à tela inicial.

  1. Confirme se o aplicativo do Tailscale no celular compartilha uma tailnet com o host.
  2. Execute collie qr no host e escaneie o código correspondente, ou abra a URL que collie url exibe.
  3. Execute collie pair no host e escaneie esse código QR.

O código QR de collie pair abre Configurações → Sistema → Dispositivos pareados com o código inserido. Você também pode abrir Configurações → Sistema → Dispositivos pareados e inseri-lo manualmente. O Collie não responde a nenhum dispositivo até que ele seja pareado; portanto, o dashboard mostra Emparelhar este dispositivo até lá (Parear um dispositivo).

O Collie é um aplicativo web. O navegador o adiciona à sua tela inicial sem necessidade de loja de aplicativos, fornecendo um ícone dedicado e visualização em tela cheia.

iPhone e iPad

  1. Abra a URL do Collie no Safari.
  2. Toque em Compartilhar e depois em Adicionar à Tela de Início.
  3. Toque em Adicionar.

No iOS 16.4 e superior, o Chrome, Edge e Firefox também oferecem Adicionar à Tela de Início nos seus menus de compartilhamento. Se você vir Abrir como Web App, mantenha selecionado.

O cartão de Instalação no iOS ou iPadOS: a instalação é feita pelo menu de compartilhamento.
O cartão de Instalação no iOS ou iPadOS: a instalação é feita pelo menu de compartilhamento.

O Safari não disponibiliza um botão de instalação. As Configurações do Collie mostram um cartão de Instalação com estas etapas até que você as conclua.

Nota. No iPhone ou iPad, o Web Push requer o iOS 16.4 ou superior e funciona apenas a partir do ícone da tela inicial. Abra o Collie por esse ícone e ative as notificações nas Configurações.

Android

  1. Abra a URL do Collie no Chrome.
  2. Vá até as Configurações do Collie e toque em Instalação no cartão superior.

Este cartão aparece assim que o Chrome oferece a instalação. Se não aparecer, abra o menu do Chrome (⋮) e toque em Adicionar à tela inicial, depois em Instalação. Algumas versões do Chrome chamam isso de Instalar aplicativo. O Firefox e o Samsung Internet usam Adicionar à Tela de início em seus menus principais.

O cartão de Instalação no topo das Configurações, com o botão oferecido pelo Chrome e pelo Edge.
O cartão de Instalação no topo das Configurações, com o botão oferecido pelo Chrome e pelo Edge.

O Android oferece suporte a Web Push dentro de abas padrão do navegador. A instalação adiciona apenas o ícone na tela inicial e o modo de tela cheia.

Desktop

O Chrome e o Edge mostram um ícone de instalação na barra de endereços, além do cartão Instalação nas Configurações. No macOS, o Safari 17 ou mais recente usa Arquivo → Adicionar ao Dock.

Notas para todos os dispositivos

  • A instalação requer HTTPS. Sob COLLIE_SERVE_MODE=http, os navegadores desativam service workers, limitando o Collie a uma aba padrão do navegador.
  • Versões de desenvolvimento (checkouts fora de uma tag de release) são instaladas como Collie (dev) com um ícone laranja para não serem confundidas com versões de release.
  • O pareamento se vincula a um único dispositivo. Pareie cada celular, tablet ou navegador que você planeja usar.
  • As notificações push exigem chaves de host: Web Push.

Primeira inicialização

Quando o Collie abre pela primeira vez em um dispositivo e carrega o painel, uma tela de introdução descreve sua configuração. Ela lista o multiplexador ativo, o host espelhado, os painéis em execução, os painéis que precisam de entrada, a contagem de máquinas da equipe e o seu acesso de gravação.

Abaixo disso, ela sugere até duas ações: parear o dispositivo, iniciar algo, ativar alertas ou salvar o Collie na sua tela inicial. Ela termina com seis tarefas principais que você pode executar.

O aplicativo marca essa tela como visualizada ao carregar; fechar a aba não fará com que ela seja exibida de novo. Você pode visualizá-la mais tarde tocando em Mostrar a primeira tela novamente nas Configurações.

Update

Um único comando obtém a versão mais recente da sua versão principal atual.

herdr plugin action invoke update --plugin herdr.collie   # Herdr plugin
collie update                                             # standalone

Ele prepara a nova versão ao lado da antiga, alterna, reinicia o bridge e faz rollback se a nova versão não responder.

Uma instalação via pacote é atualizada com seu gerenciador de pacotes e depois precisa de uma reinicialização, porque o gerenciador de pacotes substitui os arquivos e não reinicia nada:

sudo pacman -Syu collie-bin                 # Omarchy; on the AUR: paru -S collie-bin
nix profile upgrade collie                  # Nix
mise upgrade --bump github:AltanS/collie    # mise
collie restart

collie update recusa a execução em uma instalação via pacote e indica esse comando como alternativa. O celular mostra o mesmo comando onde ficaria o botão de atualização.

Mudar de versão major é uma etapa separada e que exige consentimento:

herdr plugin action invoke update-major --plugin herdr.collie   # Herdr plugin
collie update --major                                           # standalone

O celular também pode fazer a atualização de rotina: Configurações → Sistema → Atualizações, um toque, e em um crew lead um toque atualiza todos os membros. Para o fluxo pelo celular, a verificação prévia, rollback, crews e o que fazer se uma atualização travar, consulte Gerenciamento e atualização.

Uninstall

Três etapas, nesta ordem. Cada uma remove uma camada e nada mais.

1. Remova o serviço e o mapeamento de porta. Isso para a bridge, exclui a unidade do systemd --user (o agente do launchd no macOS) e remove o mapeamento de tailscale serve do próprio Collie. Os arquivos do programa e suas .env permanecem.

herdr plugin action invoke uninstall --plugin herdr.collie   # Herdr plugin
collie uninstall                                             # standalone

2. Remova o programa.

herdr plugin uninstall herdr.collie      # Herdr plugin, installed from GitHub
herdr plugin unlink herdr.collie         # Herdr plugin, a linked clone or a linked package

collie unlink                            # standalone: drop the ~/.local/bin/collie symlink
rm -rf ~/.local/share/collie             # standalone: the install script's tree, or $COLLIE_DIR

sudo pacman -Rns collie-bin              # package: Arch and Omarchy
nix profile remove collie                # package: Nix
mise uninstall github:AltanS/collie@1.14.2  # package: mise, the version
mise unuse github:AltanS/collie             # package: mise, the config line

Um clone vinculado é seu próprio checkout. unlink remove o registro do Herdr e deixa o diretório para você excluir ou manter.

3. Remova seus próprios arquivos, se quiser que sumam. Nada acima mexe nisso, então uma reinstalação encontra seus pareamentos e suas configurações novamente:

O quePlugin do HerdrStandalone
Configuração, contendo .env~/.config/herdr/plugins/config/herdr.collie/~/.config/collie/, ou o caminho do Herdr em um host que executa o Herdr
Estado: dispositivos pareados, arquivos de crew, stt.json, folders.json~/.local/state/collie/ (ou $COLLIE_STATE_DIR)o mesmo

Para pausar sem remover nada, stop é suficiente:

herdr plugin action invoke stop --plugin herdr.collie   # Herdr plugin
collie stop                                             # standalone

Detalhes do pacote

O PKGBUILD, a expressão Nix e suas notas ficam em packaging/ neste repositório. Cada pacote traz o binário compilado que a release já publica, então nada é compilado na sua máquina: sem Bun, sem git, sem compilação. Toda a pasta da release fica sob um único prefixo, com collie no seu PATH como um link simbólico para ele. O macOS ainda não tem pacote; a saída do flake aarch64-darwin é o mais próximo disso.

Arch

O collie-bin ainda não está no AUR. O AUR pausou o registro de novas contas, e o pacote será publicado a partir da nossa própria conta quando o registro for reaberto. Até lá, compile-o a partir de um clone deste repositório:

git clone https://github.com/AltanS/collie.git && cd collie/packaging/aur
makepkg -si
collie start

O makepkg baixa o tarball da versão para a sua arquitetura, verifica o sha256 dele com o manifesto de integridade da versão e o descompacta. Sem Bun, sem clone via git de qualquer outra coisa, sem compilação.

Assim que estiver no AUR, um auxiliar do AUR instala o mesmo PKGBUILD:

paru -S collie-bin     # or: yay -S collie-bin
collie start

Atualizações posteriores são feitas com paru -S collie-bin ou yay -S collie-bin, o mesmo comando usado na instalação. O sudo pacman -Syu collie-bin funciona apenas onde um repositório disponibiliza o pacote, como o do Omarchy.

O pacote instala a árvore da versão em /opt/collie e /usr/bin/collie como um symlink para ela. README.md, CHANGELOG.md e docs/ vão para /usr/share/doc/collie-bin/, e a licença para /usr/share/licenses/collie-bin/. Ele fornece e conflita com collie, portanto ele e um futuro pacote de código-fonte não podem ser instalados juntos. Ele não ativa nenhuma unidade do systemd: o collie start grava a sua própria unidade do --user, como faz após qualquer instalação.

Nota. Execute collie restart após cada atualização. O pacman substitui os arquivos e não reinicia nada, então o serviço continua executando a versão antiga em um binário excluído até que você o reinicie. O collie doctor relata isso como restart-pending, e o celular mostra "Collie was replaced on disk. Restart it." com o comando a ser executado.

Remova-o com as três etapas descritas em Uninstall: collie uninstall, depois herdr plugin unlink herdr.collie apenas se você tiver criado o link, e então sudo pacman -Rns collie-bin. O pacman remove /opt/collie e /usr/bin/collie, e nada mais.

Omarchy

sudo pacman -S collie-bin
COLLIE_MUX=herdr collie start

O Omarchy inclui tanto o tmux quanto o Herdr, e o Collie espelha um multiplexador por instalação, então a primeira inicialização precisa definir qual deles controlar: ele se recusa a adivinhar entre dois que consegue ver. start grava esse nome no .env do Collie, que em um host com Herdr é ~/.config/herdr/plugins/config/herdr.collie/.env, e inicializações posteriores são collie start.

Isso funciona assim que o collie-bin estiver no repositório de pacotes do próprio Omarchy, e o pull request que o adiciona ainda não foi mesclado. Até lá, compile o mesmo pacote a partir do packaging/aur com makepkg -si, como em qualquer host Arch acima.

As atualizações passam a vir com sudo pacman -Syu, o comando que você já usa para atualizar a máquina. Não há envolvimento de um helper do AUR, porque pkgs.omarchy.org é um repositório pacman real. É o mesmo PKGBUILD e o mesmo layout /opt/collie de qualquer forma.

Nota. As atualizações vêm do seu gerenciador de pacotes, e o Collie não se atualizará sozinho aqui. O collie update recusa a ação. A barra de atualizações no celular exibe "Collie x.y.z available via pacman.", e a página Updates mostra o comando para copiar no lugar de um botão de atualização, porque o gerenciador de pacotes é o proprietário dessa pasta. O Collie informa o formato sudo pacman -Syu collie-bin, que é a grafia no repositório; em uma instalação via AUR, execute o seu helper. Execute collie restart após a atualização, pelo motivo acima: o pacman não reinicia nada.

Em uma crew, esta máquina nunca recebe atualizações pelo celular: a crew lista a máquina como "waits for the package manager", e ela só se atualiza quando você executa o seu helper nela.

Remova-o com os mesmos três passos do Arch acima.

Nix

nix profile install github:AltanS/collie#collie
collie start

O flake exporta o packages.<system>.collie para x86_64-linux, aarch64-linux e aarch64-darwin. Ele baixa o tarball de release da plataforma usando o sha256 do próprio manifesto de integridade da release, corrige o interpretador do binário no Linux e instala a árvore da release em <store-path>/lib/collie com bin/collie como um link simbólico dentro dela. Execute-o uma vez sem instalar usando nix run github:AltanS/collie#collie -- doctor.

Não há compilação a partir do código-fonte, intencionalmente: instalar as dependências requer rede e uma derivação Nix não tem acesso a ela, então o pacote empacota o binário que a release já publica e valida com checksum.

Ainda não há um módulo NixOS, apenas o pacote flake; portanto, nix profile é o caminho: instale-o no seu perfil como acima ou adicione a saída do flake a uma lista do home-manager ou environment.systemPackages manualmente.

Nota. As atualizações vêm do nix, e o Collie não se atualizará sozinho aqui. O collie update recusa a ação e indica nix profile upgrade collie no lugar, e o celular exibe a nova versão com esse comando onde ficaria o botão de atualização.

Em uma crew, esta máquina nunca recebe atualizações pelo celular: a crew lista a máquina como "waits for the package manager", e ela só se atualiza quando você executa o nix nela.

Remova-o primeiro com collie uninstall e depois:

nix profile remove collie

Isso remove o caminho da store do seu perfil, e nada mais. Seus próprios arquivos permanecem, conforme listado em Uninstall.

Agentes do Home Manager no macOS

collie status
launchctl print "user/$(id -u)/herdr.collie"

collie status descobre o rótulo da instância tanto em gui/<uid> quanto em user/<uid> e informa seu domínio e estado do processo. Se ambos os domínios contiverem o rótulo, ele relata ambos; um agente de GUI parado não oculta um agente em segundo plano em execução. Nenhuma substituição de variável de ambiente é necessária.

Para um agente existente do Collie gerenciado pelo Home Manager, estas configurações selecionam o domínio em segundo plano (Home Manager 26.11 ou posterior):

launchd.agents.collie = {
  domain = "user";
  config.Label = "herdr.collie";
};

Isto é uma adição à definição do seu agente, não um módulo de serviço completo. Mantenha seu comando, ambiente e caminhos de log configurados no Home Manager. Execute a bridge com collie _exec-bridge, não com collie start, para que o launchd supervisione a bridge sem que o Collie reescreva a plist gerenciada. Mantenha credenciais e estado de emparelhamento fora da Nix store. Configure a porta de entrada separadamente com collie serve, ou use o configuração do external-proxy.

Para uma instância nomeada, use o rótulo herdr.collie-<name> e o mesmo COLLIE_INSTANCE, COLLIE_PORT e diretório de configuração no agente e no seu ambiente de CLI (múltiplas instâncias).

Nota. O Home Manager controla o ciclo de vida do serviço. Atualize ou remova sua declaração e ative o Home Manager em vez de executar collie start, stop, restart ou uninstall. Esses comandos ainda gerenciam o agente de domínio GUI do Collie; a descoberta de status não transfere o controle. Continue usando collie pair, devices, url e logs normalmente.

mise

mise use -g github:AltanS/collie@1.14.2
collie start

O mise use -g grava a ferramenta em ~/.config/mise/config.toml e adiciona o bin/ da release ao seu PATH. O backend do github baixa o tarball de release da plataforma, portanto isso funciona no Linux e no macOS sem o Bun e sem compilação. A árvore inteira fica sob ~/.local/share/mise/installs/github-altan-s-collie/<version>/, incluindo web/dist e herdr-plugin.toml, e o collie resolve a própria raiz a partir de lá.

Instale uma nova versão usando a mesma linha mise use com uma tag mais recente, ou deixe o mise selecionar a mais recente:

mise upgrade --bump github:AltanS/collie
collie restart

--bump é a flag que importa. Uma versão fixada 1.14.2 é um intervalo de uma só versão, então um simples mise upgrade informa que a ferramenta está atualizada e não move nada.

A reinicialização não é opcional. Cada versão fica em seu próprio diretório, e o collie start fixa o diretório a partir do qual foi executado na definição do serviço; logo, o serviço continua servindo a versão antiga a partir do diretório antigo até que você o reinicie. O collie restart regrava essa definição com o novo caminho: a unidade systemd --user no Linux, o plist ~/Library/LaunchAgents no macOS. Um comando em ambos.

Nota. Um Mac administrado apenas via SSH não tem um domínio gui/<uid> para carregar um agente. Nesse caso, o collie start avisa isso e executa uma bridge em segundo plano sem supervisão, sem reinicialização em caso de falha e sem inicializar no login. O collie restart ainda o move para o novo diretório.
Nota. O collie update recusa a ação aqui e não indica nenhum gerenciador de pacotes: ele informa cannot tell how this Collie was installed. Uma árvore do mise fica dentro do seu diretório home, não possui um .git próprio e não tem uma estrutura de versions/ acima dela; portanto, o Collie a interpreta nem como checkout nem como pacote. O mise gerencia as atualizações nesta instalação, e os dois comandos acima são os que fazem a mudança.

Remova-o primeiro com collie uninstall e depois:

mise uninstall github:AltanS/collie@1.14.2
mise unuse github:AltanS/collie

uninstall exclui o diretório dessa versão, unuse remove a linha da configuração. Escreva a ferramenta com o nome completo do github: para ambos; o formato curto collie funciona para upgrade, mas não para uninstall. Seus próprios arquivos permanecem, conforme listado em Uninstall.

Editar esta página no GitHub

The rest of the documentation