A personal, self-hosted operating environment

All your stuff.
One tab.
Your machine.

JawnOS turns a single Perl server into a browser-based command centre: files and media, appointments and tasks, budgets and invoices, inventory and mail, notes and maps, an AI assistant, and a small fleet of handheld and wearable devices.

  • Self-hosted
  • Encrypted at rest
  • Offline-first
  • BSD-2
The hand-drawn yellow JawnOS character with wide eyes leaning toward a monitor full of windows, a taskbar and a dock.
no cloud required

Pre-alpha

Take it for a spin
before it is done.

Early builds, updated as they are made. The PC image is the live USB and the installer in one file; the app is the phone side. Each card greys out when there is nothing to fetch, and the links always point at the newest build.

Desktop · live USB / installer

JawnOS for the PC

One compressed image. Write it to a 16 GB stick, or run the installer from it.
Decompress with zstd -d.

Checking the download…

Download the image

Android · phone side

The JawnOS app

The house in your pocket: Mail, Chat, the dial, the store and the watch. Built on the Termux fork, licensed under GPLv2.

Checking the download…

Download the app

The pre-alpha moves fast and may break — back up what you keep. The PC image is published to dl.jawnos.ca; the app is a GitHub release asset, and its source is the Termux fork above.

What it does

A whole computer,
not another dashboard.

One server. One tab. The things one person actually does with a computer, gathered into one place and kept on a disk you control.

A desktop in a tab

Windows that stack, snap and minimise, a rearrangeable taskbar, a start menu, a dock and a clothesline for the routines that belong to the hour.

Files, media & making

Browse, view and play; paint, record, edit code or open a shell. Files can be sealed — encrypted under a name of their own — and opened again from the same menu.

Appointments & tasks

Alarms, recurring appointments and reminders, nested checklists, routines, and a calendar that can notice the patterns in how you actually spend your time.

Money, stock & paperwork

Budgets, invoices, quotes, payments, inventory, a warehouse and a market — all drawn from the same transaction history, so the numbers reconcile themselves.

Mail, messages & maps

IMAP/SMTP mail, SMS and chat, contacts, location history, and a pannable map of every place you have measured — with an optional tile basemap.

AI that can act

Chat and image generation through local Ollama or cloud models, speech and transcription, and a Guide that can search records, open apps and stage appointment changes.

Also inside Private by design Mesh sync Process monitor Ticket login Self-updating 9 colour schemes 17 icon sets

One codebase, three faces

Runs on the machine
you already own.

The same Perl tree is the browser desktop, the Linux dashboard and the Android app. The same server also talks to a wristwatch, a keyboard handheld and a microcontroller that drives real pins.

01

Web

The full desktop, opened in any tab. Nothing to install on the client.

02

Desktop

A GTK + WebKitGTK dashboard on Linux. Starts, stops and tails the tree, and embeds the whole UI in its own window.

03

Mobile

A Termux fork that hosts the tree on a phone, with a dashboard, a status dot and the Bluetooth bridge.

T-Watch S3 · wrist T-Deck Plus · handheld Pico 2W · pins
The JawnOS character looking at a smartwatch, a phone and a small keyboard handheld, each showing a tiny JawnOS screen.

A simplified sketch of the manager — not a screenshot.

Under the hood

Boring where
it counts.

Perl and Mojolicious. SQLite, encrypted at rest. WebSockets for live updates. One generic appointments table that every app writes into, with an app-specific JSON payload for the details.

  • One SQLite database, encrypted at rest.
  • No build step, no container, no cloud account required.
  • Tickets instead of passwords; every surface logs in by link.
  • A mesh that fast-forwards code and moves data without a central authority.
Inspect the tree

Download

Try it on your
own machine.

The same image is the try-it USB and the installer. Pick a theme, write the image to a stick, and JawnOS keeps the theme when you install. Nothing is a commitment until you run the installer.

1 Pick a theme

Five of the house themes. The download page writes a two-line file; the installer reads it. You can change themes later in Configure → Appearance.

Your file contains theme=nord

2 Put it on a stick

  1. Download the image. About 2.4 GB compressed, 8 GB written. Download jawnos-live.raw.zst One file, no parts. Its size and SHA-256 are in desktop_release.json.
  2. Decompress and write it to a USB stick (16 GB recommended; 9 GB minimum).
    zstd -d jawnos-live.raw.zst
    sudo dd if=jawnos-live.raw of=/dev/sdX bs=16M status=progress conv=fsync
    Replace /dev/sdX with the stick. On Windows, write the decompressed .raw with balenaEtcher or Rufus. The house partition grows to fill the stick on first boot.
  3. Prefer Ventoy? When installing Ventoy, choose reserve space at the end of the disk (16 GB is a good house), then format that partition:
    sudo mkfs.ext4 -L jawnos-state /dev/sdXn
    Copy the image (renamed jawnos-live.img) to the Ventoy partition and boot it. The reserved partition is the house, so settings and files survive a reboot; without it, a Ventoy boot is read-only.
  4. Drop the theme file on the stick. It shows up as a small FAT partition named JAWNOS-ESP (the only partition Windows and macOS can read). Put jawnos-theme.txt in its root. A Ventoy boot is read-only, so its ESP cannot be edited: there, pick the theme on first boot or pass --theme to jawnos-install.
  5. Boot the stick and install.
    sudo jawnos-install --yes /dev/sdX
    The installer reads the theme, creates the house partition at the full size of the disk, and carries your live session onto it. The installed system expands to fill the device; nothing on the stick is a commitment until this command runs.

Developing? Boot the same image in QEMU with a disk of your choosing: sudo perl scripts/mkosi_build.pl --vm --disk-size 32 (GB, 10–4096 · default 16).

The launch

v1.0 lands
August 12, 2028.

· jawnos.ca

000days
00hours
00minutes
00seconds

JawnOS version 1.0 is scheduled for August 12, 2028 at 4:00 PM Eastern Time.

The tree is already live and being built in public. v1.0 is the target for the first finished release.