Run coding agents on every machine you own. Watch them from a browser tab. Answer them from your phone.
Docs · Install · For agents
|
|
| Your desk: the whole fleet, the diff, the files, the budget. | Pocket: same workspace, real keys. |
Real UI captures from isolated demo workspaces. Identifying details are redacted.
An agent that has been waiting forty minutes on a y/n you never saw is an
agent doing nothing. lasso is a single Go binary that puts your coding agents
(every SSH-reachable machine, its herdr session, every
pane) in a browser tab, and in a phone app that buzzes when one of them needs
you.
- Your real terminal, anywhere. Your actual herdr session over
ttyd, with lasso around it, never in front of it. - The phone is a first-class client. A home-screen app that opens on an Inbox of what is waiting on you, answered with a tap or by dictation; the full UI is a switch away, with a radial dial for Esc/Ctrl-C/Tab/arrows and photo upload straight to the agent's host.
- A Mac app. Lasso for the Mac keeps that Inbox on the edge of your screen, with a window per agent and a shortcut to start one from anywhere.
- It tells you when an agent is stuck. Web Push to a locked phone when an agent blocks on an approval or a question, on any host. Each device picks what may interrupt it.
- The sidebar follows the focused pane. A file editor and live git diff on the machine that pane is actually working on.
- A browser you and your agents share. A real Chromium you watch and click in while an agent drives it.
- Bots that stay up. Long-lived Claude Code sessions with their own folder, MCP servers, channels and encrypted secrets, read like a messaging app, with a push when one answers. Ask a bot to change its own settings and it can.
- Agents orchestrating agents. An MCP server lets one agent spawn, list,
inspect and close the others, across the fleet, and
/herdr-mcpserves herdr's own API as MCP tools on any host (no separate herdr-mcp to run).
![]() Your real herdr terminal The herdr terminal → |
![]() The Mac app: an edge rail, an inbox of what's waiting, agent windows Mac app → · the Inbox |
![]() Every agent at once Grid → |
![]() Bots that stay up Bots → · talking to one |
![]() Files follow the focused pane Files → · on any host |
![]() Read and answer it as a chat Chat view → |
![]() A browser you share with agents Shared browser → · Browser tab |
![]() Start an agent on any host New dialog → · choosing the host |
![]() One lasso, every machine Hosts → |
![]() Agents orchestrating agents MCP server → · lasso mcp |
![]() Answer from your phone Phone app → · input dial |
![]() Plugins you approve Plugins → · trust model |
Taken from a demo lasso in a throwaway VM, with real omp agents at work on three machines. mise run readme:shots retakes them, all but the Mac app, which comes from its own renders of sample data.
curl -fsSL https://executionassociates.com/install-lasso | sh
lasso start # run it in the background
open http://127.0.0.1:8090The installer asks whether lasso may send anonymous usage analytics. Answer n,
or install with LASSO_TELEMETRY=0 or sh -s -- --no-telemetry, to turn them off,
and turn them on or off later in Settings or with lasso telemetry on|off.
Usage analytics lists exactly what is sent.
lasso needs herdr and ttyd on
the same machine. Run lasso doctor
if anything looks off. Then register lasso's MCP servers with the agent CLIs on
the machine:
lasso connectDownload Lasso for the Mac for a Mac with Apple silicon on macOS 14 or later, and drag it onto Applications. It keeps lasso's Inbox on the edge of your screen and connects to a lasso you already run, on the same Mac or another machine: first launch asks for its address. It is signed, notarized and updates itself. The Mac app has the details.
lasso listens on loopback only. To reach it from your phone or another
machine, serve it on your tailnet with lasso serve -tailnet
(Tailscale), or publish it through a Cloudflare
tunnel and Access with -listen-access (Cloudflare).
Both serve HTTPS, which the phone app and push need, and lasso checks who is
calling on every request. Read the security model first;
the terminal is a writable shell and lasso never belongs on a public interface.
| Getting started | Install, first run, connecting agents, the phone app, the Mac app |
| Concepts | Hosts, agents and worktrees, the shared browser, notifications |
| Web UI | The terminal, the sidebar, the New dialog, theming, bots |
| MCP server | Tools (the browser tools among them), the herdr MCP, the CLI, OAuth, agent scope |
| Plugins | Installing plugins, and writing one |
| Deployment | systemd, Cloudflare Tunnel and Access, tailnet, updating |
| Security · Troubleshooting | |
| Reference | CLI, configuration, files, HTTP routes, architecture, development |
Agents working with lasso should read SKILL.md.
mise run build # build the frontend (src/web/dist) then the binary
./lasso # serves on 127.0.0.1:8090Frontend tooling runs inside a per-worktree incus container, never on the host. See Development.
lasso is licensed under the Apache License 2.0, the same license as herdr. See NOTICE for the copyright notice.













