Run AI agents on your machines,
from anywhere.
Mycolab is an AI workspace: spawn agent sessions on the computers you already own, watch them work in real time, share files and live services to public URLs, track work as issues, and automate it all — over a minimal, secure mesh. No servers to run.
What is Mycolab?
A control plane for AI agents. Your laptop or server runs a small connector daemon; Mycolab registers it on Hypha Mesh as a machine you can reach from any browser. From there you start agent sessions, drive them, and collaborate — while the code, files, and processes stay on your own hardware.
Everything in one workspace
The pieces compose: an agent can serve a report, expose a dev server, file an issue, and kick off a workflow — all from the same session.
Agent sessions
Spawn Claude (or other agents) on any machine, chat, stream their work, and drive a live terminal — from the web.
Service exposure
Publish a local HTTP server to a stable public https:// URL — WebSockets included, no firewall changes. One port per service.
File serving
Share a directory — reports, dashboards, build output — as a single managed link, owner-only or public. A managed mount can start on the first request and sleep when idle.
Process management
Supervise long-running processes with keep-alive and restart policy, declared in YAML and restored after a reboot.
Issues backlog
Track work as triaged issues — inline or handed to crew — with verify gates and a self-checking oracle.
Automation
GitHub-Actions-style workflows triggered by schedule, dispatch, channel messages, or issue events.
Crew
A lead session farms features out to managed worktree children, then merges finished work back to main.
Self-verifying loops
Run a task until an oracle passes and an independent evaluator agrees it's genuinely done.
Artifacts
Versioned storage for files, datasets, and model outputs — with static-site hosting and signed tokens.
End-to-end encryption
Chat messages and terminal output in new sessions are encrypted on your own devices — we hold only ciphertext. Metadata and uploaded files are not covered: what we can and can't see.
How it works
Mycolab is built on a deliberately small contract — client→server unary calls and server→client streams — anchored by one Durable Object per workspace.
- The mesh. Each workspace is a single Cloudflare Durable Object that owns auth, service discovery, authoritative presence, RPC routing, and ordered event streams.
- The connector. A small daemon on your machine holds one hibernation-safe WebSocket to your workspace, registers its services, and answers calls routed to it.
- Sessions. Each agent session syncs its metadata (a Doc) and its chat/output (a Log) over the mesh, so any client gets a consistent, replayable view — and cheap re-subscribe after reconnect.
- Security. Passwordless email-code or passkey login; every call carries a workspace-scoped, server-attested identity; machines are private to your workspace by default.
Two things you can connect
Mycolab runs on hardware you already own. Attaching it is the only setup there is, and there are exactly two kinds of thing to attach — a computer, and a browser. Both join the same workspace, and every session in it can reach both.
A machine
Any computer you own — a laptop, a server, a Pi behind a firewall. One static binary, approved from a browser. Agent sessions then run there, on your files, with your tools; the browser is only the window onto them. No inbound ports, nothing to host.
Your browser
Your own Chrome, with your own logins already in it. An agent can open pages, read them, click things and take screenshots — including tabs you are not looking at, so it works while you do. Useful for anything behind a login that has no API.
Connect your browser
A browser joins the mesh as a node, the same way a machine does — it is an extension you install once and approve from a page. Nothing is scraped or proxied through us: the agent drives the browser you are already signed into, on your own computer.
Setup lives on the mesh, because the browser node belongs to the platform rather than to Mycolab — but Mycolab is what you will use it from.
Installation ~2 min
On a Mac, and never used a terminal? Download
Mycolab for macOS, drag it to Applications and open it. It puts a
small icon in your menu bar with a status, a start/stop button and the log — no commands to type.
One download, both Apple Silicon and Intel. The app contains the same myco command as
below, and can install it for you from its own window.
First launch may say the app is from an unidentified developer — right-click the app and choose Open once, and macOS will remember it.
Everyone else: the Mycolab connector is a single self-contained binary (no Node, no npm) — download it for your platform from the mesh's public mirror, then sign in and start the daemon.
# 1 · install the myco connector — the installer picks the right binary (overwrite-guarded) curl -fsSL https://hypha.run/install.sh | sh # …or download a single binary directly: # macOS (Apple Silicon) curl -fsSL https://hypha.run/download/myco-aarch64-apple-darwin.tar.gz | tar xz && sudo mv myco /usr/local/bin/ # macOS (Intel) curl -fsSL https://hypha.run/download/myco-x86_64-apple-darwin.tar.gz | tar xz && sudo mv myco /usr/local/bin/ # Linux (x86_64) curl -fsSL https://hypha.run/download/myco-x86_64-unknown-linux-musl.tar.gz | tar xz && sudo mv myco /usr/local/bin/ # Linux (ARM64) curl -fsSL https://hypha.run/download/myco-aarch64-unknown-linux-musl.tar.gz | tar xz && sudo mv myco /usr/local/bin/ # 2 · sign in to Hypha Mesh (opens a browser; passkey or email code) myco login # 3 · start the background daemon — registers this machine on the mesh myco daemon start # check it's connected myco daemon status
Prebuilt macOS & Linux binaries publish with each connector
release at the same https://hypha.run/download/myco-<target>.tar.gz URL
(aarch64-apple-darwin, x86_64-apple-darwin,
x86_64-unknown-linux-musl, aarch64-unknown-linux-musl), alongside
Mycolab.dmg.
There is no Windows build — the connector is unix-only today.
That's it — open mycolab.hypha.run/start in any browser, sign in with the same account, and your machine appears online, ready to run sessions.
Setup & first session
Pick a project folder
From the web app, hit New Session, choose your machine and a working directory. Agents run inside that folder — nothing leaves your machine.
Start the conversation
Type your first message ("set up a Vite app and run it"). The agent spawns, works, and streams its output back live — including a terminal you can drive.
Share the result
Ask it to myco serve a report or
myco service expose the dev server — you get a public link to send to anyone.
Track & automate
File issues, set verify gates, and add workflows so recurring work runs on a schedule or in response to events.
Tutorial: from zero to a shared app
Prefer the terminal? The same things work from the CLI.
# spawn an agent in a project and give it a task (runs autonomously) myco session spawn claude -d ./my-app --message "create a hello-world Vite app and start the dev server" # list your sessions myco session list # share a folder of static output as a managed link myco serve my-report ./my-app/dist # expose a running dev server to a public https URL myco service expose my-app --port 5173 # track work as an issue (self-triages: title, labels, verify) myco issue add "add unit tests for the cart module" # automate: run a check every morning myco workflow add nightly --on schedule --cron "0 9 * * *" \ --run "myco session query ./my-app 'run the test suite and summarize failures'"
Command reference
myco login | Authenticate to Hypha Mesh (passkey or email code). |
myco daemon start|status|stop | Run / inspect the machine connector daemon. |
myco session spawn <agent> -d <dir> | Start an agent session in a directory. |
myco session send <id> "<msg>" | Send a message to a running session. |
myco session list | List sessions across your machines. |
myco serve <name> <dir> | Serve a directory at a managed link (--public to skip auth). |
myco service expose <name> --port <p> | Publish a local HTTP server to a public URL. |
myco process apply <file.yaml> | Supervise a long-running process (keep-alive + restart policy). |
myco issue add "<text>" | File a tracked, auto-triaged work item. |
myco workflow add <name> --on … --run … | Create a scheduled / event-triggered automation. |
myco session messages <id> | Read a session's history from the terminal. |
myco session archive|resume <id> | Park a session keeping its conversation, and bring it back. |
myco session export <id> --out <dir> | Write a session to a portable bundle — metadata, messages and config as plain files. |
myco session import <dir> | Read a bundle into this workspace. Copy-only, idempotent, resumable. Start with --dry-run. |
myco lab | What is in this workspace: nodes, sessions, services, URLs, artifacts. |
myco hosts · myco ssh <host> … | Every machine you can reach, and run a command on one. |
myco nav open|read|act | Drive a connected browser — open a page, read it, click something. |
Run myco --help, or <command> --help,
for the full surface. Everything listed here is in the shipped binary — there are no preview flags.
Your sessions, and what happens to them
A session is not a terminal window that dies when you close the tab. It is a durable object in your workspace, and knowing what survives what is most of knowing how to use Mycolab.
- History is durable and server-side. Every message is appended to an ordered log with a gap-free sequence number. Reload the page, switch device, or come back next week — you get the same conversation, and re-subscribing after a disconnect resumes from where you were rather than refetching everything.
- The daemon restarting does not lose sessions. On start, the connector reads your workspace and re-adopts every session belonging to that machine. A session that was mid-turn when the daemon died comes back idle rather than stuck pretending to think.
- Continuing is genuine continuation. Send a message to an idle session and the agent is re-spawned against its original conversation, in its original directory — it remembers what you were doing, rather than starting over with a transcript it cannot see.
- Offline is visible, not silent. A session is shown as working only when its machine is actually reachable and the session says it is running. Close your laptop and sessions on it go offline honestly; the history stays readable from anywhere.
- You can take it with you.
myco session exportwrites a session to a directory of plain files — a metadata document and one JSON object per message. Nothing about reading your own history requires us to be running.
Good to know
The things worth knowing before you rely on something, stated plainly rather than discovered later.
- An agent session is not sandboxed. It runs as a normal process, as your user, with your files and your tools — that is the point of running it on your own machine, and it is also the risk. Treat starting a session on a machine as equivalent to handing someone a shell on it, and share machines accordingly.
- A link is a capability. By default a served mount gets an unguessable hostname and anyone
holding the URL can read it — including anyone it is forwarded to. That is the right trade for a
build report and the wrong one for anything confidential; use
--owneror--accessfor those. The hostname is not secret from DNS resolvers or TLS SNI. - Exposed services are single-port. One service, one port. There are no service groups and no health checks on this plane; a supervised process has keep-alive and a restart policy, not a readiness probe.
- Scheduled work is timed by the machine. A workflow cron is matched against the host's local clock, so a machine that is asleep at the scheduled minute does not run it then.
- Agents cost money. Sessions run real models against your own account. A loop left running is
a loop that keeps spending —
myco session listis the cheapest habit in the product.