PryzentOS · build 0.3.0-beta · AGPL-3.0 · aarch64

The home screen
is an agent.
The phone is
a server.

An operating system built from scratch around one idea: software should obey intent. A local LLM lives on the device. Sharing is self-sovereign — public, restricted, or end-to-end encrypted, straight from your hardware. No cloud in the loop. No systemd either.

llama-server ready on 127.0.0.1:8080 — Qwen2.5-1.5B, on-device agentonet tunnel up · node 71d8f0b2 · relay reachable No cloud. No telemetry. Your prompts never leave the machine.
PryzentOS home screen — app grid, dock, agent status
FIG. 01 — PryzentOS graphical mode, live in QEMU. Not a mockup.
[ 0.000] PRYZENTOS 0.3.0-beta — custom init, no systemd    [ 2.218] model ready: Qwen2.5-1.5B-Instruct (1,117,320,736 bytes) from /dev/vda    [ 2.299] llama-server ready on 127.0.0.1:8080    [ 2.412] agentonet tunnel up · relay=10.0.2.2:7075    [ 3.104] Chromium kiosk focused — home screen is the agent
01The agent is the interface

There is no app launcher to hunt through and no settings maze. You state intent; the agent — running entirely on the device — picks tools, chains actions, and reports back. These are its load-bearing pieces.

/01

Local inference NO CLOUD

Qwen2.5-1.5B served by llama.cpp inside the guest. Conversation, memory (RAG-injected), notes, alarms — everything computed locally. Pull the network cable; it keeps working.

$ inside the OS: > weather mumbai Mumbai: 🌦️ +28°C > remember my name is Indrajit memory saved
/02

Tool dispatch SELF-EXTENDING

The model emits structured tool calls — search, read pages, drive the browser over CDP, share files, sign events. TOOL:create_tool lets it write new tools at runtime. The agent grows its own surface area.

$ grammar the LLM sees: TOOL:search query=… TOOL:web_read url=… TOOL:browser_ctl cmd=click selector=… TOOL:share file=… mode=private TOOL:create_tool name=… script=…
/03

Sessions that persist ACTS FOR YOU

The kiosk browser keeps one profile across reboots. Log into any site once; the agent can then operate it on your behalf — book, fill, post. Any site becomes a home-screen app with one tap.

$ you: log into the railway site once $ agent, later: TOOL:browser_ctl cmd=navigate url=… TOOL:browser_ctl cmd=click selector=#book → ticket reserved using your session
/04

Real search, layered

On-device SearXNG (multi-engine) when available; rotating-UA scrapers and Wikipedia merge as fallback. Plus netsearch — a second engine indexing only what people chose to share on AgentoNet.

$ netsearch goa sunset agentonet search 'goa sunset' — 1 result: 1. goademo-2026-beta.jpg agento://55987cad…/82a27d2e… (image/jpeg) via relay
02AgentoNet — the phone is a server

Your device hosts its own content. A relay is a blind pipe that never stores anything. A DHT index stores metadata, never files. Links are content-addressed — the CID is the proof of what you'll receive.

mode / 01

Public

Anyone with the link fetches from your device, live. Discoverable in the DHT.

/pub/<node>/<cid>/file
mode / 02

Restricted

One link per person. Expiry dates, download caps, instant revoke.

/sel/<cid>/<token>/file
mode / 03

Private

libsodium sealed box. Only the recipient's key opens it. Relay sees noise.

/prv/<cid>/file.enc
agentonet — real session, captured from a gate test
$ echo 'hello from agentic os' > /tmp/share.txt
$ agentic-shared share /tmp/share.txt public
Share link:
  http://relay:7075/f/00a2da52…/pub/82a27d2e…/share.txt

# ── from a second, independent device ──
$ netsearch hello
agentonet search — 1 result: hello · 82a27d2e…
$ wget -O- http://relay/f/00a2da52…/pub/82a27d2e…/share.txt
hello from agentic os

$ wget …/sel/68e1ad43…/deadbeef/share2.txt   [403] invalid token
$ wget …/sel/68e1ad43…/<good-token>/share2.txt [200]
$ wget …/sel/68e1ad43…/<good-token>/share2.txt [200]
$ wget …/sel/68e1ad43…/<good-token>/share2.txt [429] download limit reached

# ── private, sealed for one keypair ──
$ agseal seal secret.txt <recipient-pubkey> secret.txt.enc
$ agseal open secret.txt.enc -
top secret payload  # relay carried only ciphertext
03Receipts, not promises

Every claim below was executed by an automated gate during this build cycle. The network features were tested against live infrastructure.

6/7
live nostr relays accepted

event fee415e8… signed with our own pure-stdlib BIP340 Schnorr — then independently fetched back from nos.lol.

2 VMs
independent peers, one transfer

Device B discovered device A's share via the DHT and pulled the bytes through the relay. Byte-perfect.

lnbc…
real bolt11 invoice issued

Full LNURL-pay receive flow against getalby.com. zap 100 works from inside the OS.

04Boot it

Needs qemu-system-aarch64. On macOS, HVF acceleration is automatic.

quickstart — text mode
# 1 · grab the text bundle
unzip agentic-os-0.3.0-beta-text.zip -d pryzentos
cd pryzentos

# 2 · model (Apache-2.0) + model disk
./download-model.sh

# 3 · boot — the agent is your shell
./test-interactive.sh

# graphical mode: grab the big zip, then
./launch-graphical.sh

Ctrl+A then X exits QEMU.
Inside the OS: !net · help · netsearch · open <link> · zap 100