Why we chose gRPC, and not ACP
The question came up while we were wiring the desktop to the agent: why are we hand-rolling a gRPC protocol when the Agent Client Protocol (ACP) already exists for exactly the "UI talks to an agent" problem? It was a…
Notes from building one agent everywhere
acp 1agent 5architecture 2compaction 1desktop 4e2ee 1experiments 2grpc 1internals 2llm 2loop 2mobile 1multi-agent 2protocol 1security 1tooling 1
The question came up while we were wiring the desktop to the agent: why are we hand-rolling a gRPC protocol when the Agent Client Protocol (ACP) already exists for exactly the "UI talks to an agent" problem? It was a…
Every product screenshot and demo video in FutureOS — including the figures in this blog — is rendered by driving the real React UI in headless Chrome against mock data. No display, no running app, no hand-drawn mockups. The same harness doubles as a UI regression tool.
The product promise is one line: the agent should not touch what you did not allow. Delivering it takes three completely different OS mechanisms — Seatbelt, Bubblewrap, and a restricted token with NTFS ACLs — and an honest list of places where the promise cannot be fully kept.
FutureOS Mobile controls sessions on your desktop over a NATS relay. The relay is on the public network, so it has to be treated as hostile — able to drop, reorder, replay and fabricate messages, but never able to read a command or forge one. Here's how the v2 channel achieves that with a Noise handshake and a ChaCha20-Poly1305 record layer.
A chat loses context. future-loop turns "keep an eye on this for a week" into a durable goal — a todo graph, human gates, per-step evidence, and a verifiable definition of done that survives sessions, restarts, and parallel workers. This is how the control plane works, and how it carried the Matilda tiling run.
We gave a 16×16 tiling problem to four different models working in parallel under the future-loop control plane. Over 4.5 hours and 15 rounds the answer went from 30 to a verified 21 — and the two decisive breaks came from different models disagreeing with each other, not from any single model reasoning harder.
We ran three context-compaction strategies through the same 178-question exam. FutureOS kept 83% of the values that had been compacted away; OpenCode kept 47%, Codex 38%. The difference isn't a better summary — it's what each system decides a compaction should keep.