Reef already has the bones — ⌘K generation, Fix-with-AI, the planned reef.ai bridge and intents (DESIGN.md §7–8). This issue collects the ideas that push it from "a desktop with an AI feature" to "a desktop that assumes a model is always present." Each item is scoped to be pick-up-able on its own; check it off or split it into its own issue when work starts.
Software as utterance (the disposable end)
Apps that keep growing (the durable end)
AI as a system service (reef.ai, expanded)
The desktop as an agent target (the inversion)
Suggested sequencing
The typed reef.ai surface and prompt.md provenance are cheap and compound everything else. Ephemeral apps are the demo. Intents-as-MCP-tools is the moat, and it overlaps almost entirely with the v1.5 intents work.
Reef already has the bones — ⌘K generation, Fix-with-AI, the planned
reef.aibridge and intents (DESIGN.md §7–8). This issue collects the ideas that push it from "a desktop with an AI feature" to "a desktop that assumes a model is always present." Each item is scoped to be pick-up-able on its own; check it off or split it into its own issue when work starts.Software as utterance (the disposable end)
--ephemeralgeneration path that writes to a temp dir instead ofuserData/apps/, and a keep/dissolve prompt on window close.REEF_DATA_DIRwiring for the generated app.prompt.mdin every generated app folder. Makes apps forkable seeds: "make me one like notes, but for recipes" is a remix of a known-good prompt plus a diff, not a cold start. Cheap —agent.jsalready has the conversation in hand when it writes the folder.Apps that keep growing (the durable end)
createFixer's never-delete rule and the linked-app confirmation click already draw the safety line.npm run shotproved the model looking at its own output pays for itself (invisible icons, dead WebSocket). Fold it into ⌘K: after writing the app, screenshot the rendered frame and let the model iterate on visual defects before the icon materializes.AI as a system service (
reef.ai, expanded)complete().reef.ai.extract(text, schema),reef.ai.embed(text), and — now thatsrc/core/policy.jshandles mic —reef.ai.transcribe(stream). Apps generated by the agent can use the agent, keyless, capability-gated per manifest. Generated apps become smarter than their author's one-shot because intelligence is a utility like storage.The desktop as an agent target (the inversion)
generate_app,list_apps,open_app,invoke_intentover MCP so external agents (Claude Code included) can drive the desktop. Note the symmetry: an app's declared intents (add:link,play:track) are already tool definitions — every app the user installs silently extends what any connected agent can do. The desktop becomes legible in both directions: AI writes the apps, and the apps are callable by AI. Largely the same work as the intents system already scheduled for v1.5.Suggested sequencing
The typed
reef.aisurface andprompt.mdprovenance are cheap and compound everything else. Ephemeral apps are the demo. Intents-as-MCP-tools is the moat, and it overlaps almost entirely with the v1.5 intents work.