Native iOS agent console for herdr — watch and drive the coding agents on your machines over SSH, with a real libghostty terminal, QR pairing, and push notifications when an agent needs you
298
stars
1,169
commits
Swift
primary language
Sep 10, 2026
updated
Heeler is an agent console: a native dashboard of every coding agent running on your machines, sorted by who needs you. Open an Agent to read and steer its live terminal, draft with the full iOS keyboard in a native Composer, and Send the complete message once — all over plain SSH.
| Agent Console | Live terminal | Composer + tools keyboard |
|---|---|---|
![]() | ![]() | ![]() |
| Terminal | Skills | Live Activity |
|---|---|---|
![]() | ![]() | ![]() |
Heeler speaks herdr's JSON API over SSH: each request opens a
direct-streamlocal channel onto herdr.sock, one long-lived channel carries
the event stream, and interactive terminals run herdr agent attach --takeover on an SSH PTY. The only prerequisites are SSH access and a
running herdr — no server changes, no extra packages. The SSH server must
allow stream-local forwarding (the OpenSSH default); onboarding calls it out
when it's disabled.
Unroutable machines can sit behind an SSH Jump Host:
On the machine running herdr (Node >= 20, herdr >= 0.7.5, OpenSSH server on — macOS: System Settings > General > Sharing > Remote Login):
herdr plugin install ZingerLittleBee/Heeler/plugin --ref main --yes
herdr plugin action invoke heeler.pair
Scan the Pairing Code QR it shows and the machine is added as a Host — the code carries the addresses, the host key fingerprint, and SSH key enrollment. The same plugin delivers the encrypted notifications once you enable them for the Host in the app.
Packages/HeelerSSH (libssh2 + OpenSSL) for SSHSee docs/adr/ for why — the transport story in particular is not obvious.
Issues and PRs are welcome — see CONTRIBUTING.md for layout, build/test, and conventions.
Beta, on TestFlight. Built for personal use first and shaped by daily driving, so expect rough edges and fast iteration. Not affiliated with the herdr project.
Hacker News (1)
Swift
86.6%
JavaScript
6.5%
Shell
4.2%
Python
1.6%
Native iOS agent console for herdr — watch and drive the coding agents on your machines over SSH, with a real libghostty terminal, QR pairing, and push notifications when an agent needs you
298
stars
1,169
commits
Swift
primary language
Sep 10, 2026
updated
Heeler is an agent console: a native dashboard of every coding agent running on your machines, sorted by who needs you. Open an Agent to read and steer its live terminal, draft with the full iOS keyboard in a native Composer, and Send the complete message once — all over plain SSH.
| Agent Console | Live terminal | Composer + tools keyboard |
|---|---|---|
![]() | ![]() | ![]() |
| Terminal | Skills | Live Activity |
|---|---|---|
![]() | ![]() | ![]() |
Heeler speaks herdr's JSON API over SSH: each request opens a
direct-streamlocal channel onto herdr.sock, one long-lived channel carries
the event stream, and interactive terminals run herdr agent attach --takeover on an SSH PTY. The only prerequisites are SSH access and a
running herdr — no server changes, no extra packages. The SSH server must
allow stream-local forwarding (the OpenSSH default); onboarding calls it out
when it's disabled.
Unroutable machines can sit behind an SSH Jump Host:
On the machine running herdr (Node >= 20, herdr >= 0.7.5, OpenSSH server on — macOS: System Settings > General > Sharing > Remote Login):
herdr plugin install ZingerLittleBee/Heeler/plugin --ref main --yes
herdr plugin action invoke heeler.pair
Scan the Pairing Code QR it shows and the machine is added as a Host — the code carries the addresses, the host key fingerprint, and SSH key enrollment. The same plugin delivers the encrypted notifications once you enable them for the Host in the app.
Packages/HeelerSSH (libssh2 + OpenSSL) for SSHSee docs/adr/ for why — the transport story in particular is not obvious.
Issues and PRs are welcome — see CONTRIBUTING.md for layout, build/test, and conventions.
Beta, on TestFlight. Built for personal use first and shaped by daily driving, so expect rough edges and fast iteration. Not affiliated with the herdr project.
Hacker News (1)
Swift
86.6%
JavaScript
6.5%
Shell
4.2%
Python
1.6%