Epic: Hosted mode. Run the agent on a server instead of the laptop / local machine #1690
Replies: 2 comments
|
🤖 curated · Fable 5, effort high Status update, five weeks on. Phase 1 is built. Non-loopback bind behind a generated shared token, saved remote devices (dashboard here, agents on another machine's daemon), and the no-auth gap is closed (#1387, #1517). Ask 1 is answered. Option (c) is stale. Cloud sessions now stream: the Driver tab (#1332) mirrors the conversation turn by turn and questions are answered from the dashboard. It is a real run mode, not fire-and-forget. Phase 2, reframed (Discord with Rom, 2026-08-25). Not a multi-tenant per-org server with accounts and a DB — one private box per team:
If TF becomes "a bunch of skills" (Rom's idea from the same conversation), the box's job shrinks to scheduler + sandboxes + human inbox, which fits. Numbers (rough, Aug 2026 list prices)What a box costs us, and what a team would pay for it:
Reference points: E2B Pro is $150/mo flat; Daytona/E2B compute is ~$0.05 per vCPU-hour. A team running 10 agents 8 h/day on E2B-style per-second billing lands in the same €100–200/mo band, so the box prices above are market-normal, not a discount. What that adds up to: a team pays €40–300/mo (€400–700 with a GPU), we keep roughly 2/3 of it before support. 100 teams ≈ €10–20k/mo gross. That is a product line, not a company — the tokens (10–50× the box cost for an active team) stay with the model vendors. It only stays profitable if deploy and upgrades are zero-touch; one hand-held server per team eats the margin. Self-hosted modelsThe GPU row is the privacy/on-prem option, not a cost saver: ~€185/mo of GPU buys roughly what €100–200/mo of DeepSeek/Qwen via API buys, so it only wins when code cannot leave the box or the GPU runs near-full. Plumbing is cheap — Claude Code takes Revised ask: is the per-team box the shape of hosted mode? If yes, the open items are the image/deploy story and sandbox sharing; identity, tenancy and per-user auth from the original phase 2 mostly fall away. |
|
The feature list, security first — since that's the pitch to companies: Security
Compliance
Control
Always-on & shared
Zero ops
Phase-1 remote daemon already covers the always-on row for a single user; everything under Security and Control is new work and is what a company would pay for. 🤖 curated |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Epic: Hosted mode. Run the agent on a server instead of the local machine
The pain
Install on your machine, run node, add a project by local path. Fine for one dev, but concurrency is capped by the laptop's CPU and the laptop has to stay awake for the whole run.
Phase 1: connect to your own server (small)
The daemon is already the thing that spawns the agent CLI. Point the client at a remote daemon and runs execute there. The run path itself does not change.
startDashboardalready takes ahost. It just defaults to127.0.0.1and the daemon never overrides it.localhost? #411 fits. A desktop app is the client, and the server becomes swappable. Keep it thin (a window plus connection profiles) so the SPA stays same-origin with its daemon. Bundling the SPA and pointing RPC at an arbitrary origin would drag in CORS and more auth for no gain.claudeonce on your own box, exactly like your laptop today. No stored tokens.Non-negotiable: the daemon has no auth at all today (no token, session, cookie or origin check anywhere). Its security is entirely "it is bound to loopback". An exposed daemon that spawns processes is remote code execution for anyone who finds the port. A shared token is the minimum, and it ships in the same change as the non-loopback bind, not after.
Phase 1 alone removes the CPU ceiling and the lid problem, which is the pain we actually started from.
Phase 2: one server per org (big)
Many users on one server. Sign in with GitHub and that is the whole setup: repos are there, runs execute on the server, PRs come back to GitHub.
What phase 1 does not give us:
gitandgh.$HOME/.the-framework.jsonis one user on one machine pointing at existing checkouts. Hosted, a project is a repo the server clones..the-framework/stays the source of truth, so git-as-data survives. The server needs only users, org, tokens, project list, run index. SQLite is enough.spawn(detached)inheriting the machine's~/.claude. With N users on one box, each run needs its own worktree and sandbox, plus per-user quota.The phase 2 blocker: whose subscription
BYOS (#495) works because the CLI runs under your own local login. Fine with one user per server. With many users there is no single login.
claude setup-tokenonce, we run their agent on their subscription. Keeps BYOS economics. Cost: we hold user credentials.I would do (a) by default, (b) as an org option, (c) later as a per-run offload.
Related
localhost? #411 (desktop app) is phase 1's client, not a competing direction..the-framework/is the database). Phase 1 respects that. Phase 2 is the first thing that stance cannot express, so it is a decision to make rather than drift into.Ask
All reactions