Developers
Teaching an AI app something new usually costs you a fork. You write against a plugin API that changes under you, wait on a release you do not control, or maintain a patched copy of somebody else's application forever.
In gOS, capability is data. An atom is a folder with a manifest, a flow is a graph over atoms, and a run is that graph executed under an envelope.
Extending the system means adding files the runtime can find, not forking the app.
01
Atoms are the units of capability.
The registry holds 213 atom packages, each a directory with a single atom.json describing what it is, what it takes and what it returns. Seventy-six draw interface, sixty-two are tools, twenty-seven are compute steps, sixteen are runtime profiles, twelve are skills, eleven are providers, eight are workflows. The Sim searches that registry to work out what it is able to do at all.
- One folder, one manifest.
- Typed inputs and typed outputs.
- Discoverable before it is callable.
02
A flow is a manifest, not a script.
flow.json declares the graph and the rules around it: where intent may come from, which tools and skills are allowed, which paths may be read or written, how many tool calls a single run may make, which engine executes it, and how it appears in the catalog: display name, category, launch surface, slash command. Change the manifest and you change the flow's powers. There is nowhere else to hide them.
- Permissions are fields.
- Call ceilings are fields.
- Presentation is a field.
03
Publishing a flow publishes a tool.
Every flow is addressable as a generated tool, so the Sim can call it in the middle of another job exactly the way it calls a primitive. That is what makes this compound rather than a folder of scripts: today's flow is tomorrow's single step.
- A flow is callable by the agent.
- Composition beats configuration.
- Yesterday's workflow becomes one node.
04
Flows draw real interfaces.
Seventy-six interface components ship as atoms: tables, charts, forms, dropzones, media timelines, code editors, comparison sliders. A flow can render a surface instead of returning a wall of text. A flow can take the chat, an inline slot inside it, a sidecar panel beside it, or a window of its own.
- Structured input when language is not enough.
- Render the output in its right shape.
- Keep the person inside the loop.
05
Providers are manifests too.
A provider is a folder declaring an endpoint, its authentication, the shape of the request and the shape of the response. Adding one is a manifest plus the smallest adapter the difference genuinely requires. No new client class per vendor, and no vendor names leaking into what the user reads.
- Transport is declared, not re-implemented.
- Credentials resolve through one path.
- Routing improves as the registry grows.
06
One loop underneath all of it.
Observe, atomize, plan, close, run, commit, project, learn. Many surfaces enter at the top and many views project from the bottom, but everything narrows through typed runtime work over durable state. Close is the admission gate in the middle. That is the point where a plan either becomes a run or does not.
- Many entrances, one waist.
- Close is where admission happens.
- Learning re-enters as evidence, not as truth.
Write one atom. The registry is how it gets found, and a flow is how it gets used.