collie is a remote control for coding agents in herdr and herdr-core (Herdr 2). A small daemon, collied, runs next to them on your Mac or Linux machine, and the Collie app on your iPhone reaches it over your own tailnet, with no open port on your network; the Apple Watch app works through the iPhone. From the phone, you follow every Claude Code, Codex and Copilot CLI agent, read its conversation or terminal, prompt it, start tasks and approve a blocked Claude Code agent from the lock screen.
Documentation: https://collie.rbstp.dev
- An Apple silicon Mac, or an x86_64 Linux machine with a systemd user manager, running herdr 0.9.5, herdr-core 0.1.16 (Herdr 2), or both
- An iPhone on iOS 26 or later; an Apple Watch on watchOS 26 or later is optional
- A personal Tailscale account
- An Apple Developer account to build the app, and an APNs key for push notifications
Collie is tested only with Claude Code CLI, Codex CLI and GitHub Copilot CLI, and on Linux only on Arch Linux with Omarchy. In Herdr 2, collie does what it does in herdr, except that it cannot bring an agent to the front on the desktop, it starts Claude Code and Codex tasks there (not Copilot CLI) only while herdr is not running, it does not archive those tasks by itself when their pull request merges, and agents that report no status there, such as Copilot CLI, are read-only. Codex's Chat in Herdr 2 needs collied's own hook. Requirements lists the build tools and the Apple identifiers to replace before you build.
-
Check that your tailnet policy allows TCP port 8457 between your own devices.
-
Install
colliedfrom a release download or from source (macOS, Linux). From source, with the build tools installed and, on macOS, your own identifiers set:git clone --recurse-submodules https://github.com/rbstp/collie cd collie just setup just collied-install collied setup -
Install the app on a connected iPhone with
just ios-run-device, then pair it. -
Optional: push notifications, the Claude Code hook and plan usage, terminals and the desktop companions.
The site covers install, use, troubleshooting, security, privacy and support; it is built from docs/site (docs/deploy-pages.md). Design docs: architecture, threat model, tailnet setup, notifications, release and the protocol schemas.
| Command | What it does |
|---|---|
just setup |
Fetches the submodules |
just lint |
cargo fmt --check, clippy with -D warnings, cargo deny; just fmt formats |
just test |
All Rust tests, end-to-end included; PROPTEST_CASES raises the 256 property-test cases |
just schema |
Regenerates the protocol JSON Schemas in docs/protocol/ |
just ios-test |
GhosttyTerminal package tests, then the iOS unit and UI tests on the simulator |
just ios-build-sim |
Simulator build |
just ios-screenshots |
Regenerates the documentation screenshots and the App Store set in target/ios/app-store |
just mac-test |
CollieBar's unit tests |
just tray-test |
CollieTray's tests against a fake collied (Linux) |
Install recipes, described on the site: just collied-install (the daemon, signed on macOS), just ios-run-device (the app), just mac-install (CollieBar; just mac-notarize optionally notarizes it) and just tray-install (CollieTray). ios-framework, ios-ghostty, ios-project, mac-project and mac-build run as dependencies; just --list shows every recipe.
CI runs lint, the Rust tests and the iOS simulator build and tests on macOS for pull requests and pushes to master; changes only to the site, the README or AGENTS.md skip them. Merging code into master uploads a TestFlight build (docs/release.md).
crates/
protocol/ Wire types and their JSON Schemas
tailscale-sys/ libtailscale (pinned submodule + patches) as a Go c-archive
tailnet/ Safe wrapper over tailscale-sys
collied/ The daemon
tls/ Mutual TLS with raw public keys and key pins
collie-core/ The phone's Rust core, exposed to Swift with UniFFI
uniffi-bindgen/ UniFFI binding generator
e2e/ Phone core against collied over a local test tailnet
Collie/ iOS app, extensions, Apple Watch app, Swift packages (XcodeGen)
Mac/ CollieBar menu bar app
Linux/ CollieTray Omarchy bar widget and its tests
relay/ The publisher's push relay (Cloudflare Worker)
packaging/ Arch Linux (AUR) recipes, not published yet
docs/ Design docs, protocol schemas and the site
scripts/ libghostty-vt build, desktop packaging, acknowledgements, VM test harness
File bugs and feature requests as GitHub issues. Before you open a pull request, run just lint, just test and the tests of any app you changed. AGENTS.md holds the repository's conventions.
collie is licensed under the Apache License 2.0. The tailscale-sys crate, which builds the vendored libtailscale, is licensed Apache-2.0 AND BSD-3-Clause.

