Under the hood · for builders

How the mesh works.

One Durable Object per workspace, a small disciplined protocol, and storage that hibernates to about zero cost. Everything below — the primitives, the three ways in, self-hosting and the measured numbers — falls out of that one shape.

one object per workspace machine browser agent myco cli

Everything the mesh gives you

Seven composable primitives — each one subscribable, audited and scoped to your workspace.

Services & RPC

Register a function from any client and call it from anywhere — routed to the registrant, replied in-line.

Authoritative presence

Live IFF the connection is open and the heartbeat is fresh: PRESENT · STALE · SLEEPING · ABSENT.

New

Log streams

Append-only, ordered log streams with snapshot-on-subscribe — tail a deploy or an agent run in realtime.

New

Collaborative docs

Shared documents with live, multi-writer updates — the building block for editors and synced state.

New

Capability tokens

Mint scoped, revocable, time-boxed tokens — bound to specific services, clients and a permission.

New

Governance

Attach an in-workspace policy interceptor — inspect, allow or deny every call, on attested identity.

New

End-to-end encryption

Write a log stream sealed on your own devices — the edge stores ciphertext it has no key for. Metadata and file contents are not covered: what we can and can't see.

Also included: artifact storage with files & versions, secure reverse tunnels, and passkey identity — no external provider.

Three ways to plug in

Reach the mesh the way that fits your stack — a native client, a plain HTTP call, or a tunnel from wherever your code already runs.

1

Client libraries

Native SDKs for JavaScript and Python (in the repo — client-ts/ and client-python/), API-compatible with hypha-rpc. Full programmatic access to every primitive — RPC, logs, documents, presence, artifacts, capability tokens and governance.

When to use: you're writing an app, agent or service and want first-class, typed access.

For example: a Python worker registers a tool and a browser app calls it live — same API on both ends.

2

HTTP proxy

Reach the mesh over plain HTTP — no SDK, just curl and a bearer token. Artifact storage is fully available over HTTP today. General services-over-HTTP — calling any registered service by URL — is on the Roadmap (a one-shot unary call bridge already works for simple cases).

When to use: a shell script, a webhook, or a language without an SDK yet.

For example: a CI job uploads and fetches build artifacts, or makes a one-shot service call, with a single authenticated request.

3

Reverse tunnel

Run the lightweight connector next to a local server and expose it through the mesh on a tl-* hostname — no inbound ports, no public IP, no firewall changes.

When to use: your app lives behind NAT or a firewall, on a laptop, a homelab, or a private network.

For example: share a dev server or an on-prem service with a teammate or an agent in seconds.

Run it on your own hardware

The mesh isn't only the cloud. The same protocol and clients run against a server you host yourself — fully offline, or selectively connected to hypha.run while your data stays put.

A

Local Hypha server

A self-hostable mesh server in TypeScript that runs on Nodeno Cloudflare required. It reuses the exact same primitive modules (services, docs, logs, artifacts, auth, presence) behind its own WebSocket + HTTP server, a better-sqlite3 registry, and a local MinIO/S3 artifact store. It hosts many local workspaces and runs fully standalone — clients (Rust / TS / Python) connect the same way they connect to the cloud.

When to use: air-gapped / on-prem work, local development, or owning the whole stack.

# from the server/ package — build + run the local mesh on localhost
npm run local:start
B

Federation — keep data local, expose results

An on-prem instance opens one outbound link to a federated workspace on the cloud and selectively exposes chosen services + metadata upward. A cloud caller's request is routed down the link, runs against the real local service, and only the approved result returns — the data never leaves your network. The link is outbound-only (NAT/firewall-friendly; the cloud never dials in), default-deny, and capability-gated, with a local audit log at the boundary.

When to use: institutional / sensitive data that must stay on-prem while a few results or services are shared.

Hub-and-spoke: the cloud is the discovery / identity hub; each institution is a sovereign spoke. Driven by the myco federate.

Benchmarked on real Cloudflare — Durable Objects + R2 + edge

Fast where it counts, cheap at rest.

Measured end-to-end through the shipped client, with no mocks: 4,727 durable log appends/s across 32 objects — ~25× what one object does, so sharding really adds capacity — 1,022 concurrent sockets on a single Durable Object still serving traffic, a durable write costing ~28 ms above the network, and ten minutes of steady load with zero errors and no drift. Idle objects hibernate to ~zero cost. Each number on the page says what you can build with it.

See the full benchmarks
Production readiness — assessed honestly

We publish our own go / no-go.

The mesh comm-layer is production-grade — 598 real tests, no mocks, on real Cloudflare — and mycolab now runs on it end-to-end, verified live. The verdict is GO for mycolab-over-mesh. We say plainly what our strengths are, and the limitations we won't paper over.

Read the readiness assessment