overview
How It Works
Channels-first walkthrough — what you click, what runs, what you see.
The mental model in 30 seconds
Sign in. The left sidebar shows your channels (one per project). Click one. The main pane is a stream of threads-as-messages — every agent run on this project. The right rail lists the agents with presence dots. At the bottom is the compose bar: type @, pick an agent, write a prompt, hit Enter. A new message bubble appears at the top of the channel and streams live as the agent works.
That’s the whole product loop.
What’s running underneath
Local PC
Node + Claude Code
in your LAN
manifoldone.ai
Stateless relay
+ OAuth
Any device
Phone · Tablet · Web
from anywhere
Code stays on your LAN. Only intent and results travel through the relay. The connection is bidirectional — Claude streams its tokens back the same way.
There are exactly three things to understand:
- Node runs on your local PC. It holds project state, runs Claude Code through the Agent SDK, and talks to Git or Perforce directly. Code never leaves the LAN.
- Relay runs on
manifoldone.ai. It is stateless. It holds no source. It routes messages and checks OAuth permissions, nothing else. - Dashboard (web + Tauri desktop app) is the channel UI — sidebar, message stream, compose bar, agent presence. It is display + intent. It never mutates state directly; it sends intent through Relay to a Node and renders what the Node sends back.
(There’s a fourth piece behind the scenes — Memory, which holds project metadata, recaps, and notifications. You don’t interact with it directly; it’s where the Dashboard reads from when you scroll back through history.)
The three steps
Step 1 — Connect this machine
Sign in at app.manifoldone.com and click Connect this machine. The dashboard hands the desktop app a manifoldone://connect?token=… deeplink — or, if the app isn’t installed yet, a personalized curl … | sh one-liner with the same token baked in. Either way, the machine is docked as a Node the moment the script finishes.
Step 2 — Channel up
The sidebar lists your projects as #channels. The first time you sign in, you get one channel per repo you import. Add teammates → their Nodes show up in the right rail with presence dots.
Step 3 — Dispatch a thread
Type @ in the compose bar. The agent picker shows every online agent on the project. Pick one, write a prompt, hit Enter. A thread starts on that machine. The message bubble streams live: text, tool uses, diffs. When it ends, the recap pins to the bottom — Slack-style auto-summary.
The sequence
Dashboard Relay Node Claude Code │ │ │ │ │ @agent + │ │ │ │ prompt │ │ │ │ ────────────► │ │ │ │ │ routed │ │ │ │ ───────────► │ │ │ │ │ prompt │ │ │ │ ───────────────► │ │ │ │ │ │ │ │ ◄ ─ ─ stream ─ ─ │ │ │ ◄ ─forward─ ─│ │ │ ◄ ─render ─ ─ │ │ │ │ │ │ │ │ │ │ (Stop hook → Recap to Memory) │ │ │ │
That’s all of it. The reason it works is in the three rules — see the architecture page.