The useful version of the rule
When I say everything should be a tool, I mean every capability in the runtime should have a discoverable, typed way to invoke it. If Voxelbox can send mail, dispatch work, render a canvas, synthesize speech, or start a managed run, an agent should not need private knowledge of the daemon to make that happen.
The callable edge gives the capability a name, an input contract, an output contract, an authority boundary, and an event trail. The transport can change. The same capability might be reached through the CLI, MCP, HTTP, a native interface, or another Voxelbox. The contract is what lets the rest of the system compose it.
A tool is still only an interface
This does not collapse tools, skills, routines, and surfaces into one primitive. A tool says what can be called. A skill carries judgment about when and how to use it. A routine gives the capability durable intent, a trigger, a budget, and a review policy. A surface gives a person a considered way to inspect and control the same underlying state.
I have built agents with every tool they could reasonably need and watched them make the same mistake repeatedly. The function existed. The missing part was the hard-won process around it. Calling all of that “a tool” hides the exact context we need to package.
One producer, several projections
The daemon owns the state and the operation. A human interface renders it. An agent tool describes how to invoke it. Both projections return to the same producer and emit into the same event history. That avoids the familiar drift where the web interface, CLI, and automation each implement slightly different versions of the business logic.
It also gives new interfaces somewhere honest to begin. A native app does not need to rebuild orchestration. A federated peer does not need to scrape the dashboard. They discover a contract and bring their own projection.
Composition is the payoff
Once capabilities have callable edges, orchestration becomes smaller. A routine does not contain the implementation of mail, search, or deployment. It declares which tools it may use and the conditions under which it may use them. Agents can combine capabilities the runtime authors did not explicitly wire together.
That freedom requires trust metadata, scoped credentials, budgets, and logs. Composability without authority is a demo. Composability with boundaries is an operating system.
Expose the operation once. Let every interface meet it there.