purposeos

An operating system you can talk to, that never phones home.

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.

Desktop hey purpose 9:41
Try

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.

One sentence, five small programs.

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 architecture
  1. 1

    listend Hears your wake word

    Audio features live in its own memory for a few seconds. Only “heard it” crosses over.

  2. 2

    voiced Turns speech into text, live

    A 120 second ring buffer in RAM. A fast engine shows words as you speak, Whisper replaces them with the final text.

  3. 3

    actiond Decides what you meant

    Matches your sentence to an intent that an app declared. Opens, closes, or starts a capture.

  4. 4

    execd Runs it, only if allowed

    Each app has its own socket. The executor checks what that app may call, then logs the command without its content.

  5. 5

    your app Does the work

    Journal saves one file per entry under its own data folder. Nothing else can read it.

Private by construction, not by policy.

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 stop

An app is one file.

A manifest says what the app can do and which phrases start it. Install it and “add to journal” works immediately, with no restart.

  • Journal

    Dictate entries, search by words or dates, export to Markdown.

  • Scratchpad

    A rich-text editor that opens .rtf and takes notes by voice.

Both are open reference apps
app.json (abridged)
{
  "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

Write it in the language you already use.

Services speak newline-delimited JSON over a Unix socket. Pages talk to them through a small JavaScript bridge.

LanguageUse it forStatus
JavaScriptApp windows: purpose.call("journal.list", {…})shipped
RustServices and native windows. Crates are in the repo.in repo
GoServices. The protocol is small; a tested example is in the docs.SDK planned
AGENTS.md, SKILL.mdLet your coding agent build PurposeOS apps correctly.available
Compare the SDKs

Try it in a VM.

A ready-made disk image for UTM on Apple silicon. Import it, boot it, and the first-run screen fetches the models for you.

Version
0.1.0
Architecture
aarch64 (Apple silicon VMs)
Size
3.0 GB, 12 GB virtual
Base
Arch Linux ARM, Hyprland, Quickshell