PurposeOS is Linux with a local AI engine built in. Say a phrase or press Alt+Space to open files, change settings or start a note. The model runs on your machine and has no network access at all.
A scripted replay of the real shell. Live text appears grey, then Whisper replaces it with the final text. No microphone is used on this page.
Nothing in PurposeOS is a black box. Every step from your voice to the result is a separate daemon you can inspect, restart or replace.
If one crashes, that one call fails and the rest of the system keeps running.
See the architecturelistend Hears your wake wordAudio features live in its own memory for a few seconds. Only “heard it” crosses over.
voiced Turns speech into text, liveA 120 second ring buffer in RAM. A fast engine shows words as you speak, Whisper replaces them with the final text.
actiond Decides what you meantMatches your sentence to an intent that an app declared. Opens, closes, or starts a capture.
execd Runs it, only if allowedEach app has its own socket. The executor checks what that app may call, then logs the command without its content.
your app Does the workJournal saves one file per entry under its own data folder. Nothing else can read it.
These are properties of how the parts are built. You can check each one in the source.
Read the security model, including what it does not stopThe inference daemon talks to llama.cpp over private Unix sockets. There is no TCP in the path.
Microphone audio goes into a 120 second RAM buffer. It is never written to disk or logged.
The activity log records which commands ran. It never captures or counts keystrokes.
Every event is encrypted to your public key. A compromised service can append, not read.
Each app runs under Landlock with its own folder and its own executor socket. TCP is denied.
A manifest says what the app can do and which phrases start it. Install it and “add to journal” works immediately, with no restart.
Dictate entries, search by words or dates, export to Markdown.
A rich-text editor that opens .rtf and takes notes by voice.
{
"id": "journal",
"services": [{ "name": "store", "exec": "bin/journal-store",
"actions": ["journal.start", "journal.append", "journal.end"] }],
"intents": [{ "intent": "journal", "action": "journal.start",
"phrases": ["add to journal", "dear diary"],
"result": "capture", "sink": "journal.append" }],
"permissions": { "files": [], "network": false }
} purpose-pkg pack . -o hello.papp --arch aarch64
purpose-pkg install hello.papp Services speak newline-delimited JSON over a Unix socket. Pages talk to them through a small JavaScript bridge.
| Language | Use it for | Status |
|---|---|---|
| JavaScript | App windows: purpose.call("journal.list", {…}) | shipped |
| Rust | Services and native windows. Crates are in the repo. | in repo |
| Go | Services. The protocol is small; a tested example is in the docs. | SDK planned |
| AGENTS.md, SKILL.md | Let your coding agent build PurposeOS apps correctly. | available |
A ready-made disk image for UTM on Apple silicon. Import it, boot it, and the first-run screen fetches the models for you.