DEV Community

Cover image for The desktop is the agent - a first look at Praxis Linux (Phase 0)
Saurabh
Saurabh

Posted on

The desktop is the agent - a first look at Praxis Linux (Phase 0)

90-second demo. Everything in it ran on a local model.

The shape of the problem

The desktop hasn't changed shape in thirty years. One application to look at files, another to write words, another to write code. We translate intent into a thousand mechanical motions - clicks, drags, menu paths and we stop noticing.

When large language models arrived, the industry's answer was to bolt them onto the side: a chat sidebar, a Copilot button. An assistant that answers questions about the work but can't become the work.

I think that's the wrong shape for what comes next. So I'm building the other shape.

The thesis

Praxis Linux is a Linux distribution where the desktop is the agent.

There is no separate AI. There is one surface - the Canvas that listens, understands, and becomes whatever the moment requires:

  • Talking about a folder? It's your file explorer.
  • Editing a function? It's your editor.
  • Drafting a proposal? It's your document.
  • Tuning the system? It's your settings panel.

The interface is generated from intent, not selected from a menu.

The name is from the Greek praxis (πρᾶξις): action - the moment thought becomes deed.

What the demo shows

The video is the Phase 0 spike: the Canvas running as a Linux app on an existing install, driven by a local model (Ollama, the local-fast route).

  1. "what did I work on this week" - the Canvas classifies the intent, switches to File mode, and lists the three files I touched, with a one-paragraph explanation of what they probably are.
  2. Click q3-report.md - an in-place preview. "summarize this" - a structured summary, same surface.
  3. "show me projects/tally/tally.py" - Code mode. The file, a summary of what it does, and Edit / Run buttons. Run executes it in a sandbox with no network. It fails: ValueError: invalid literal for int() with base 10: '48.50'.
  4. "fix the error" - the agent proposes a diff (int(...) → float(...) with a try/except). Nothing is changed until I click Apply.
  5. Apply → Run again → Spent in October: $31.70. Then Undo - and the file is back exactly as it was.

That last loop - propose, apply, run, undo is the part I care most about. It's what makes an agent on a desktop trustworthy enough to actually use.

The architecture (short version)

Canvas        Tauri 2 + React 19 · declarative generative UI (A2UI-style component catalog)
Agent         Python · router (local vs cloud, mode classifier) · memory · MCP client
Models        Ollama (local, default) · LiteLLM proxy for bring-your-own cloud key
Tools         MCP servers: filesystem, shell (sandboxed), code, settings
Memory        Qdrant · SQLite · DuckDB — all on-device
Base          Arch upstream · Hyprland (forked) · Btrfs snapshots
Enter fullscreen mode Exit fullscreen mode

Three decisions worth calling out:

  • Declarative generative UI, not open-ended HTML. The agent composes from a vetted component catalog. Open-ended generation has unsolvable problems for a desktop OS: security, accessibility, consistency. Declarative is the middle ground the whole GenUI ecosystem (Google's A2UI, CopilotKit, Thesys) has converged on.
  • Local before cloud. Small models on your hardware for routine work. Large cloud models when needed - opt-in, your own key, and every cloud call is logged to an audit database.
  • The user is sovereign. Every agent action is legible, reversible, consented to. Snapshots before changes. Apply is a click, not an assumption. Undo always works.

What is not there yet

This is Phase 0 - a pre-alpha spike. To be clear about it:

  • There is no ISO. You can't install Praxis yet. That's Phase 1.
  • The three modes in the video (Conversation, File, Code) are the only ones. Document, Settings, Browser and the rest are on the roadmap.
  • It's one person's weekends so far.

The repo has the manifesto, the architecture decision records, and a four-phase roadmap with milestone-level tracking so you can see exactly where it is at any point.

How to follow or help

  • ⭐ Star the repo: https://github.com/praxis-linux/praxis-linux - it's the most useful signal right now.
  • Read the manifesto and tell me where it's wrong. Issues and Discussions are open; I'd rather hear "have you considered X" than get a 2,000-line PR at this stage.
  • Apache 2.0, bring-your-own-model, no vendor lock. That's not going to change.

Next up: Phase 1, the bootable ISO.

I'm Saurabh - enterprise architect by day, building Praxis on weekends. I post architecture walkthroughs and open-source demos on YouTube as Saurabh AI-rchitect.

Top comments (0)