Greg Harman

Sophon

Project Active since

An operating system where you state intent and it builds the surface to serve it. Phase one is a dockerized userland with no file system you see, no package manager you touch, and no application store.

What it is

Files, applications, and windows are workarounds for software being expensive to write. An application is a frozen guess about which views of data people will want. If generating a view becomes cheap, the durable things are the data and the intent behind it, and the application collapses into a cached, versioned view that can be regenerated or reused. Sophon takes that seriously.

You bring a task. An agent plans it, pulls the objects it needs into an isolated workspace, builds or reuses the surfaces to work on them, and records why every resulting object exists. There is no file system you see, no package manager you touch, and no application store.

The inspiration is Genera on the Symbolics Lisp machines: everything inspectable, everything data, applications as views over typed objects rather than owners of file formats. Genera's price of admission was Lisp. A language model is the first thing that could open that door to someone who doesn't want to learn Lisp, and that's the bet.

It's built from seven concepts, following Daniel Jackson's method: task, object, component, workspace, convention, stage, provenance.

Current state

Phase one runs in Docker on a Linux host. The Stage (the display host) is a web app opened in a browser in kiosk mode, and every surface runs in a sandboxed frame with no network and no storage. Phase two is a VM, and phase three is a minimal NixOS or Guix image whose only userland is Sophon. Right now I'm making the dockerized userland feel functional.

Tasks run on the machine, not in your tab: start work in one workspace, switch to another and start more, close the browser, and all of it keeps running. A conversation is an object with a version per turn, and several can run side by side. A task that needs a grant stops and asks you. Model keys are secret objects with no read action, so the configuration surface can put one in and never get one out, and neither can the agent. A plan can build a program, like a calculator, as well as content. A new machine opens on a tutorial whose pages end in checks that read the live machine back to you.

What it looks like

A new Sophon machine with the tutorial open on its first page, the workspace list on the left, the machine's surfaces and objects on the right, and the event log along the bottom.
A new machine opens on the tutorial. Every page ends in a check that reads the live machine back to you. The log along the bottom is every object, grant, and surface the machine has made so far, and why.
The Inspector open on the model configuration object, listing its one facet, the surfaces that can open it, and the one workspace holding a reference to it.
The Inspector on the model configuration object. Nothing can open it yet as a surface; the first task that needs one will build it.
The Grants surface for the home workspace, showing nothing waiting on the user and the capabilities and objects the workspace holds, each with a revoke button.
Grants for the home workspace. A task that needs something its workspace doesn't hold stops and shows up under Waiting on you.

The code is private, for now.

Changelog

Last updated