Connect a machine · one static binary, no runtime
Bring a machine
onto the mesh.
A machine joins your workspace by running
myco — a single self-contained binary with no Node, Python or Docker
required. Once its daemon is up, that machine shows up in
Mycolab: you can spawn agent sessions on it, browse and
transfer its files, expose its local ports to public URLs, and run scheduled work — from a browser,
anywhere.
Two steps
About a minute on a fresh machine, and nothing to copy between them. Both
steps run on the new machine; you approve it in a browser — any browser, including the one on your
phone.
1
Install the binary
On the new machine (macOS or Linux, Intel or ARM):
curl -fsSL https://hypha.run/install.sh | sh
Installs to /usr/local/bin/myco (uses
sudo only if that directory is not writable). No root needed if you
set PREFIX=$HOME/.local/bin. The installer will not silently
overwrite an existing myco — it asks, or refuses when piped; pass
FORCE=1 to replace it or NAME=myco2 to
install alongside. Prefer a direct download? See
the table below.
2
Log in and start the daemon
On the same machine:
myco login
myco daemon start
myco daemon status # should report the daemon running
myco login prints a URL, a short code and a QR code, and opens
your browser if it can. Approve it, and the machine picks up its own credential within a few
seconds. There is nothing to copy back.
Over SSH, or on a box with no browser? The same command works: scan the QR with
your phone, or open the printed URL on any device you are logged in on and type the short
code. Add --no-browser to skip the launch attempt.
Credentials are written to ~/.mycolab/credentials.json.
# the whole thing, start to finish
curl -fsSL https://hypha.run/install.sh | sh
myco login
myco daemon install # run at boot (launchd / systemd), instead of 'daemon start'
How the login works
The machine keeps its own secret
It generates a long random code and never shows it. Approving in the browser records your
consent and returns no token; the credential goes to whoever holds that code, which is the
machine. The short code you type does nothing on its own.
The credential expires in a day
It rotates itself, so the disk never holds a long-lived admin key. Revoke a machine from
Machines — by name, not by token id.
CI uses a token instead
No browser, nobody to click. Mint a scoped token from
CI & automation tokens and pass it as
myco login --token ….
Keep it running
A server you walk away from needs two things the quick-start skips.
Survive a reboot
myco daemon install registers the daemon as a system service —
launchd on macOS, systemd on Linux — so it comes back after a restart.
myco daemon uninstall removes it. Plain
daemon start does not survive a reboot.
Expiry stops being your problem
A machine connected with myco login refreshes its own credential, so
the old failure — the token quietly expires, the machine stops appearing, and the only
sign is a log line — does not happen. A machine still using a pasted
--token does expire on schedule: if one goes quiet with no other
explanation, suspect the token, and re-run myco login to move it off
the paste entirely.
Check on it
myco daemon status on the box, or just look for the machine in
Mycolab — presence there is authoritative, derived from
the live connection rather than self-reported.
Share what is running on the machine
Two commands cover almost everything: one for a directory of files, one for a
port something is already listening on.
myco expose <port>
Turns a local server into a public https://tl-*.hypha.run URL over the
mesh's built-in tunnel — WebSockets included, no firewall changes, no port forwarding. It uses
the credential the machine picked up at login; there is nothing else to sign in to. One service,
one port.
myco serve <name> <dir>
Publishes a directory — a build, a report, a static site — at its own hostname, so an app's
absolute paths work with no rebuild. Private by default: the URL is an unguessable hostname, and
anyone holding it can read it. Use --owner or
--access a@x,b@y when that is not what you want, or
--public when it is.
If a tunnel command fails oddly
An error mentioning a different login command, or a frontend host you never configured, means a
different binary of the same shape is earlier on your PATH. Check with
which -a myco and myco --version.
myco is a single static binary — no Node, no Python, no separate login
step beyond myco login.
Direct downloads
Statically linked, dependency-free. The Linux builds are musl-static and run
on any distribution — Debian, Ubuntu, Alpine, or a distroless container alike.
Unpack and put it on your PATH:
tar xzf myco-<target>.tar.gz && sudo mv myco /usr/local/bin/.
Windows is not supported — the daemon is Unix-only; use WSL2, where the Linux x86_64 build works.
What the machine can do once connected
Everything below is driven from the browser, against the machine you just
connected.
Run agent sessions
myco session spawn claude -d ./project — or spawn one from Mycolab. The agent runs on your machine, with your files and your tools; the browser is only the window onto it.
Browse and move files
Read, upload and download from the machine's disk over a streaming tunnel — not a control channel — so large files work without buffering.
Share a local port
myco expose 3000 gives a dev server on your laptop a public HTTPS URL, WebSockets included. No firewall changes, no port forwarding.
Serve static files
myco serve report ./out publishes a directory — private to your account by default, public on request.
Supervise processes
Declare long-running processes in YAML with keep-alive and health probes: myco process apply proc.yaml.
Schedule work
Cron lives server-side, so a schedule still fires while the machine is briefly down, and runs when it comes back.
Serve several workspaces
myco attach <workspace> adds a second workspace beside the one you just logged into — its own credential, its own connection, the same machine in both lists. Add --no-agents to give that workspace a shell here and no agent sessions; the role is per workspace. myco workspaces shows what this computer serves.
You're connected — what now?
Open Mycolab to see the machine, spawn an agent session on it, browse its files,
and drive everything from the browser.
Run myco --help for
the full command surface. Everything on this page is the shipped CLI — no preview flags.