# MixOS > MixOS is an agent-operable computing system: a Linux userland where every app is a service, every service speaks one message bus, and Mix is the shell. It is tried as a small signed systemd-nspawn image that runs on its own virtual terminal beside the user's existing desktop, at native GPU, input and audio speed. Every page on https://mixos.dev is static HTML at a directory-style URL (`/hostd/`, `/docs/try/`) and is also published as Markdown at its source path (`/hostd/README.md`, `/docs/try.md`). The links below point at the Markdown. Everything here describes the current `main` branch of https://github.com/markc/mixos. `/llms-full.txt` is the whole manual in one file. ## Read first This manual describes source on `main`; installed binaries can be older or built from another revision. Check the installed program's version and its live `app.describe` or `HELP` response before relying on an API. An accepted decision records the intended contract and can describe work still being implemented; it is not proof that every planned feature is available. - [Repository rules and layout](https://github.com/markc/mixos/blob/main/AGENTS.md) - [Mix gotchas](https://mixos.dev/mix/gotchas.md): read before writing Mix. - [Component index](https://mixos.dev/docs/components.md): source paths, kinds and install profiles. - [Driving apps over the Bus](https://mixos.dev/docs/drive.md): discovery, commands and captures. ## Source and build map One public repository, [markc/mixos](https://github.com/markc/mixos), holds one Cargo workspace and the site source. Paths below are relative to its root. - `libs/mix/`: the `mix` Cargo package and Rust library, with the lexer, parser, evaluator, builtins and language regression tests. - `cli/mix-shell/`: the `mix-shell` library, owning the interactive shell, script runner, command dispatch and supervised Bus citizen runtime. - `cli/system/`: the `system` package that builds the `mix` executable. Its default daemon personalities are `noded`, `monitord`, `maild`, `webd` and `dnsd`. Other services, including `settingsd`, `hostd`, `portald` and `compd`, have their own packages and executables. - `apps/`: GUI applications; `services/`: daemons; `libs/`: shared libraries. GUI apps use egui/eframe and wgpu, with common widgets in `libs/toolkit/`. Each app links its libraries into its own executable: shared widget code changes require rebuilding and restarting each affected app. - `docs/mix/`: the public Mix manual; `docs/_build/gen-site.mix`: the native Mix site generator, including this index and `llms-full.txt`. In the designated Rust build environment, `cargo build --locked --profile release-fast -p system --bin mix` produces `target/release-fast/mix`. `cargo build -p mix` builds the language library, not the shell executable. Installed binaries belong under `/opt/mixos/bin`. Mix programs run directly with `/opt/mixos/bin/mix script.mix`; editing a program does not require compiling Rust. Use `mix builtins NAME` for builtin contracts, `run_argv` or `run_argv_must` for processes and `ssh_mix` for remote Mix programs. The `.mix` program / `.mx` document split is an accepted migration target. Existing readers still use legacy names such as `*.conf.mix` and `scene.mix`; check the owning reader before renaming data or assuming a loader's behaviour. ## Components One line per component with a page: kind, then install profiles. The [component index](https://mixos.dev/docs/components.md) lists every component, with or without a page. - [assets](https://mixos.dev/assets/README.md): lib; profiles: none (library). The resolver for a pinned, immutable set of fonts, icons and emoji on the local disk, which finds, verifies and reads a published set without any downloader or daemon. - [backdrop](https://mixos.dev/backdrop/README.md): app; profiles: unclassified. The MixOS desktop background — drawn by its own program on the compositor's background layer, on every output, at native and fractional scale. - [blobd](https://mixos.dev/blobd/README.md): service; profiles: unclassified. The node blob store: content-addressed bytes kept in mds, with owner pins, quotas and garbage collection. The MixOS port of blobd, with the store, the Bus citizen, the byte lane and the cross-node fetch. - [bridged](https://mixos.dev/bridged/README.md): service; profiles: unclassified. How bridged puts an external application with a line-delimited JSON control channel on the Bus, one instance per application, and what that exposes. - [bridged — changelog](https://mixos.dev/bridged/changelog.md): Release notes of the bridged component, mirrored from services/bridged/CHANGELOG.md. - [buildinfo](https://mixos.dev/buildinfo/README.md): lib; profiles: none (library). Compile-time build provenance for MixOS binaries, and the --version contract every binary answers. - [bus](https://mixos.dev/bus/README.md): lib; profiles: none (library). The Bus wire format and the broker client library, with a supervised connection to noded that survives broker restarts. - [busviewer](https://mixos.dev/busviewer/README.md): app; profiles: unclassified. BusViewer is the MixOS desktop app that lists the services and verbs on this node's Bus, shows each verb's description and the mesh peers, and calls one verb once with a JSON body. - [ced](https://mixos.dev/ced/README.md): app; profiles: unclassified. The MixOS Editor, a desktop text editor over the edit Bus service, where people and agents edit the same document at once and see each other's carets, selections and changes live. - [citizen](https://mixos.dev/citizen/README.md): lib; profiles: none (library). An app's supervised native Bus connection, shared by the MixOS apps for registration, calls, replies, single-instance launch and window restore. - [command](https://mixos.dev/command/README.md): lib; profiles: none (library). UI-free command registry, typed dispatch and executed journal. - [command — changelog](https://mixos.dev/command/changelog.md): Release notes of the command component, mirrored from libs/command/CHANGELOG.md. - [compd](https://mixos.dev/compd/README.md): service; profiles: unclassified. The MixOS Wayland compositor, which owns scanout, rendering, input and capture, and serves the comp Bus service with its workspaces, verbs, topics and props tree. - [compd — changelog](https://mixos.dev/compd/changelog.md): Release notes of the compd component, mirrored from services/compd/CHANGELOG.md. - [config](https://mixos.dev/config/README.md): lib; profiles: none (library). Where MixOS keeps its files and how a conf.mix file is read, with one directory rule for every component and descriptor-safe atomic file helpers. - [daemon](https://mixos.dev/daemon/README.md): lib; profiles: none (library). Shared HTTP host parsing, listener guards, TLS and ACME provisioning. - [davproto](https://mixos.dev/davproto/README.md): lib; profiles: none (library). CalDAV and CardDAV codecs that convert between JSCalendar or JSContact and iCalendar or vCard, with strong ETags, and no transport or storage. - [design](https://mixos.dev/design/README.md): lib; profiles: none (library). The MixOS design-token system, which compiles a strict-data theme source into resolved colours, metrics, typography and button tables for one scheme, mode and contrast. - [dnsd](https://mixos.dev/dnsd/README.md): service; profiles: server. authoritative mesh DNS for the zones in zones.mix - [dopus](https://mixos.dev/dopus/README.md): app; profiles: unclassified. MixOS's twin-pane file manager — two folder trees side by side, Places and Properties sidebars, drag and drop between panes, menus and keys for every action, and a Bus surface for agents that reads and navigates but never changes files. - [edit](https://mixos.dev/edit/README.md): lib; profiles: none (library). Shared headless text buffers used by editd and Ced, with revision checks, transactions, operational transforms, per-origin undo, anchors and search. - [editd](https://mixos.dev/editd/README.md): service; profiles: unclassified. The edit service, which holds shared text buffers that people and agents edit together, with revision checks, per-origin undo, anchors, atomic save, external-change detection and recovery. - [editd — changelog](https://mixos.dev/editd/changelog.md): Release notes of the editd component, mirrored from services/editd/CHANGELOG.md. - [editor](https://mixos.dev/editor/README.md): lib; profiles: none (library). The shared plain-text editor widget for MixOS egui applications, a virtualised monospace view over the headless editing model that works on a local file or a shared buffer. - [editor-model](https://mixos.dev/editor-model/README.md): lib; profiles: none (library). The headless text-editing model shared by MixOS editors, turning commands and motions into edits and keeping a local mirror of an edit-service buffer in step with the server, plus highlighting and diagnostics state. - [email](https://mixos.dev/email/README.md): app; profiles: unclassified. email (dev.mixos.email) is the reserved MixOS mail client: a pure JMAP client that speaks HTTPS to any RFC 8620/8621-shaped server, whether that is the mesh's… - [expr](https://mixos.dev/expr/README.md): lib; profiles: none (library). The pure expression language of Mix Scenes bindings, which compiles an expression, reports the globals it reads and evaluates it over JSON values under size and time limits. - [files](https://mixos.dev/files/README.md): lib; profiles: none (library). Rooted reads and the files-as-truth markdown corpus model. - [hostd](https://mixos.dev/hostd/README.md): service; profiles: unclassified. How hostd answers questions about the host and carries out privileged host changes through closed, typed verbs behind standing grants, receipts and rollback, so agents never need sudo. - [hostd — changelog](https://mixos.dev/hostd/changelog.md): Release notes of the hostd component, mirrored from services/hostd/CHANGELOG.md. - [indexd](https://mixos.dev/indexd/README.md): service; profiles: desktop. Local semantic search over the MixOS Bus, with an ssh bridge and an in-process CLI. - [inputd](https://mixos.dev/inputd/README.md): service; profiles: unclassified. How inputd turns keys into Bus verbs below the compositor, keeps the user keys for the person, and holds its keyboard grab only while its own VT is active. - [inputd — changelog](https://mixos.dev/inputd/changelog.md): Release notes of the inputd component, mirrored from services/inputd/CHANGELOG.md. - [logging](https://mixos.dev/logging/README.md): lib; profiles: none (library). Shared tracing, sink selection, reload handles and process statistics for MixOS services and the Mix shell. - [maild](https://mixos.dev/maild/README.md): service; profiles: server. JMAP, SMTP, IMAP and DAV mail service - [maild — changelog](https://mixos.dev/maild/changelog.md): Release notes of the maild component, mirrored from services/maild/CHANGELOG.md. - [mds](https://mixos.dev/mds/README.md): lib; profiles: none (library). Per-container-set SQLite metadata and a content-addressable blob store, the storage library that maild links and blobd will use. A library, not a daemon. - [mesh-sign](https://mixos.dev/mesh-sign/README.md): cli; profiles: unclassified. Signs and verifies the mesh inventory, the trust root of a MixOS mesh. - [mesh-sign — changelog](https://mixos.dev/mesh-sign/changelog.md): Release notes of the mesh-sign component, mirrored from cli/mesh-sign/CHANGELOG.md. - [mimedb](https://mixos.dev/mimedb/README.md): lib; profiles: none (library). A library that reads the freedesktop shared-mime-info database and decides a file's type from its name and content the way GLib does, so MixOS names a file's type as the desktop does. - [mix](https://mixos.dev/mix/README.md): lib; profiles: none (library). The reference manual for the Mix language, one page per topic. The canonical home of these pages is docs/mix/ in the public markc/mixos monorepo; add a page by… - [buffer — the reference-semantic mutable byte buffer](https://mixos.dev/mix/buffer.md): Buffer is the one type in Mix with reference semantics. Everything else — strings, numbers, lists, maps, bytes — is value-semantic: $b = $a gives $b an… - [Builtin index](https://mixos.dev/mix/builtins.md): Every Mix builtin grouped by category, generated from the binary's own mix builtins --json. See the linked topical page for prose and examples; mix what NAME… - [bus — MixOS Agent Bus messaging (send / emit / address / on)](https://mixos.dev/mix/bus.md): Bus messaging is what makes Mix more than "a better shell." send, emit, address, and on … end are language keywords, not library calls — Mix talks to a local… - [Capabilities & embedding](https://mixos.dev/mix/capabilities.md): Mix is two things at once: a standalone shell (where every builtin is allowed and the only limits are the self-protection caps) and an embeddable interpreter… - [cli — the mix meta-command](https://mixos.dev/mix/cli.md): Inside the Mix REPL (and from the OS shell as mix ) the bareword mix is its own dispatcher: a built-in suite for introspecting the live session,… - [collections — lists & maps](https://mixos.dev/mix/collections.md): Mix has two compound data types: the list (an ordered, 0-indexed sequence) and the map (an ordered key→value table, insertion order preserved). Both are… - [Control flow](https://mixos.dev/mix/control-flow.md): Mix has the control structures you expect — if, while, for, plus an ARexx-style select and a bare loop — with a few rules that bite anyone extrapolating from… - [data — data & serialization](https://mixos.dev/mix/data.md): Mix reads and writes structured data through a single mental model: every format parses to the same Value tree (string · number · bool · list · map · nil), and… - [datastar — Datastar SSE event framing](https://mixos.dev/mix/datastar.md): Three builtins that frame Datastar v1 Server-Sent Events: ds_patch_elements, ds_patch_signals, and ds_sse. They are the pure half of the Datastar SDK — they… - [Dates & time](https://mixos.dev/mix/datetime.md): Mix represents a moment in time as a Unix timestamp — a plain number of seconds since the epoch (1970-01-01 00:00:00 UTC). Everything else is conversion:… - [errors — error handling & exit control](https://mixos.dev/mix/errors.md): Mix has one error channel and three ways to use it: catch an error and recover (try … catch $e … end), raise one deliberately (die), or stop the whole process… - [Expression evaluation mode](https://mixos.dev/mix/expr-eval.md): Sometimes a host doesn't want to run a Mix program — it wants to evaluate one Mix expression: a scene host resolving a binding like $model.a * 2, a config… - [Functions, lambdas & modules](https://mixos.dev/mix/functions.md): Mix functions come in two shapes that look almost identical but mean different things: - [gotchas — what you will guess wrong on your first try](https://mixos.dev/mix/gotchas.md): Mix has almost no presence in any model's training data, so a new session extrapolates from bash, Python and JavaScript — and several of those guesses are… - [hof — higher-order functions](https://mixos.dev/mix/hof.md): The hof builtin category — twelve functions that take a function value as an argument and run it over a list: map, filter, reduce, sort_by, any, all, count,… - [http — HTTP client builtins](https://mixos.dev/mix/http.md): http_get_file(url, path[, opts]) -> map streams GET to a unique sibling created exclusively. For a new destination it uses mode 0666 under… - [Invoking Mix](https://mixos.dev/mix/invocation.md): mix is one binary with several entry modes: an interactive shell (REPL), a script runner, a -c one-liner, a stdin reader, a syntax checker, a supervised Bus… - [io — files & I/O builtins](https://mixos.dev/mix/io.md): The io builtin category — read, write, walk, and stat the filesystem, plus stdin, path-string helpers, and the embedded SQLite client. Every example below was… - [Interactive job control](https://mixos.dev/mix/job-control.md): Available in Mix 0.84.0. - [Reserved words](https://mixos.dev/mix/keywords.md): Mix's keyword lexemes, held to the lexer by cargo test -p mix keyword_set_matches_lexer (the lib's KEYWORDS list and the lexer match arms must agree, and cargo… - [Mix language library](https://mixos.dev/mix/lib/README.md): mix is the embeddable Rust implementation of the Mix language at libs/mix. It tokenises, parses, analyses and evaluates Mix source, exposes the Mix value and… - [mix lint — semantic analysis](https://mixos.dev/mix/lint.md): mix --check is a syntax check: it lexes and parses, nothing more. It happily passes a script that reads an undefined variable, calls a function that exists… - [math — numeric builtins](https://mixos.dev/mix/math.md): The math builtin category (27 functions, added in mix 0.19.0) — pure numeric functions over Mix's f64 numbers. List them live with mix builtins math; one-line… - [Mix regression tests (former mix-bench)](https://mixos.dev/mix/mix-bench/README.md): Current Mix interpreter, shell and process-level regression test locations; the former standalone mix-bench package is not part of this workspace. - [mix-shell](https://mixos.dev/mix/mix-shell/README.md): mix-shell is the library behind the mix executable: the interactive shell, script runner, command dispatcher, linter, and supervised Bus citizen host for Mix… - [Command-line interface](https://mixos.dev/mix/mix-shell/cli.md): The mix command is the shell of the mix-shell package, built into the system binary by cli/system. The command is an interactive shell, a Mix program runner, a… - [Serve mode](https://mixos.dev/mix/mix-shell/serve-mode.md): mix --serve runs a Mix script as a long-lived, supervised Bus citizen. The runtime registers one service identity, executes the script's initialisation body,… - [modules — require, include, source](https://mixos.dev/mix/modules.md): Three ways to pull another .mix file into a running script, on a spectrum from isolated to splice-into-my-scope: - [Numbers](https://mixos.dev/mix/numbers.md): Mix has one numeric type: a 64-bit IEEE-754 double (f64). There is no separate integer type — 5, 5.0, 1e6, 0xFF, and 0o755 are all the same Number value under… - [operators — arithmetic, concat, comparison & boolean](https://mixos.dev/mix/operators.md): Every operator Mix's expression grammar knows, with verified precedence and the exact coercion rules. Statements use newline or ; separators, every variable is… - [Mix — overview](https://mixos.dev/mix/overview.md): Mix is an ARexx-inspired, Bus-native shell and scripting language, implemented in pure Rust. It is the orchestration control surface for the mixos substrate:… - [Owned interactive editor (preview)](https://mixos.dev/mix/owned-editor.md): Set MIX_EDITOR=owned in the environment before starting an interactive Mix session to select the owned editor. The default remains rustyline. Redirected input… - [Regular expressions](https://mixos.dev/mix/regex.md): Mix ships six regex builtins — re_match, re_find, re_replace, re_replace_must, re_split, grep_lines — built on the Rust regex crate, all taking their subject… - [Remote execution (SSH)](https://mixos.dev/mix/remote.md): Mix runs commands on other machines through four builtins that wrap the system ssh binary: ssh_run (structured result, never raises), ssh_must (returns stdout… - [Serving as a Bus citizen](https://mixos.dev/mix/serve.md): mix --serve service.mix turns a Mix script into a supervised, mesh-registered Bus daemon. Write the on handlers; the runtime supplies the rest — broker… - [shell-mode — shell-dispatch mode](https://mixos.dev/mix/shell-mode.md): Mix is both a scripting language and a login shell. When you hand it a line that looks like a command rather than Mix code — git status, ls -la | wc -l, make… - [sqlopen — SQLite files: sqlopen, sqlexec, sqlclose](https://mixos.dev/mix/sqlopen.md): Mix has an embedded SQLite client (the sqlite feature; the mix binary turns it on), so a script can create, query and update a database file without the… - [Usage statistics](https://mixos.dev/mix/stats.md): mix stats records how Mix is used and reports either dynamic usage or static authorship coverage. Recording is best-effort: a missing, read-only, corrupt, or… - [Strings](https://mixos.dev/mix/strings.md): Mix has two string literal forms, .. for concatenation, and a deliberately codepoint-based core with explicit byte and grapheme twins. This page covers the… - [syntax — lexical structure & the shell/Mix classifier](https://mixos.dev/mix/syntax.md): How Mix reads source: what a token is, how statements end, and the one rule that trips up everyone coming from bash or Python — when a line is run as Mix code… - [system — processes, environment & system primitives](https://mixos.dev/mix/system.md): The system builtin category — run external commands, inspect and mutate the process/OS environment, and produce the small security/identity primitives… - [tar — archives in-language: tar_list, tar_unpack, tar_pack](https://mixos.dev/mix/tar.md): Archives are read and written by the language itself, so a verified artifact can be unpacked without an external tar or zstd. Inside a MixOS machine there is… - [variables — sigils, assignment & scope](https://mixos.dev/mix/variables.md): Every Mix variable carries a $ sigil. There is no separate declaration — assignment is the declaration. Reading an unbound variable raises a runtime error; the… - [mix — changelog](https://mixos.dev/mix/changelog.md): Release notes of the mix component, mirrored from libs/mix/CHANGELOG.md. - [mix-shell](https://mixos.dev/mix-shell/README.md): cli; profiles: unclassified. The Mix shell library, holding the interactive line editor, the command classifier, the native-session bootstrap and the Bus citizen runtime that the mix binary runs. - [mix-shell — changelog](https://mixos.dev/mix-shell/changelog.md): Release notes of the mix-shell component, mirrored from cli/mix-shell/CHANGELOG.md. - [mixos-mcp](https://mixos.dev/mixos-mcp/README.md): cli; profiles: base. MCP stdio access to the native MixOS Bus. - [mixos-mcp — changelog](https://mixos.dev/mixos-mcp/changelog.md): Release notes of the mixos-mcp component, mirrored from cli/mixos-mcp/CHANGELOG.md. - [mixtrayd](https://mixos.dev/mixtrayd/README.md): service; profiles: unclassified. mixtrayd is the data service behind the MixOS tray popup, mixtray. It registers on the noded Bus as mixtrayd and answers one verb, mixtrayd.snapshot, with four… - [monitor](https://mixos.dev/monitor/README.md): app; profiles: desktop. Monitor is the MixOS task manager, showing the processes and performance that monitord reports for this node or any node on the mesh, with End task and Kill for this node's processes. - [monitord](https://mixos.dev/monitord/README.md): service; profiles: base. How monitord samples a host's CPU, memory, disks, network and processes, keeps history in memory and SQLite, and answers read verbs on the Bus, so any node's load can be read from anywhere on the mesh. - [monitord — changelog](https://mixos.dev/monitord/changelog.md): Release notes of the monitord component, mirrored from services/monitord/CHANGELOG.md. - [noded](https://mixos.dev/noded/README.md): service; profiles: unclassified. The MixOS Bus broker, which handles service registration, discovery, routing, subscriptions, authenticated local session grants and mesh peering between nodes. - [noded — changelog](https://mixos.dev/noded/changelog.md): Release notes of the noded component, mirrored from services/noded/CHANGELOG.md. - [notifyd](https://mixos.dev/notifyd/README.md): service; profiles: unclassified. How notifyd keeps the desk's notifications, shows them as toasts and in the Notifications page, and tells an agent or app which button the human pressed. - [portald](https://mixos.dev/portald/README.md): service; profiles: unclassified. How portald serves the XDG Settings and ScreenCast portals on the session bus, where the appearance values and screen frames come from, and how applications and agents use them. - [prefs](https://mixos.dev/prefs/README.md): app; profiles: unclassified. MixOS's preferences window — a sidebar of editors: Applications follows, installs, updates, rolls back and removes upstream releases; Appearance sets the session's colour scheme, style, mode, contrast and window frame; App Settings → Email edits the email app's accounts and mail options. - [props](https://mixos.dev/props/README.md): lib; profiles: none (library). Property read types, revisions, namespace storage and native Bus routing for MixOS services. - [releasesd](https://mixos.dev/releasesd/README.md): service; profiles: unclassified. How releasesd follows upstream application releases on GitHub and installs their Linux builds per user, verified, with rollback, from the command line or the Bus. - [scene](https://mixos.dev/scene/README.md): lib; profiles: none (library). The Mix Scenes document core, which parses, lints, resolves and diffs scene documents and their bindings without a renderer or interpreter. - [screenshot](https://mixos.dev/screenshot/README.md): app; profiles: unclassified. MixOS's screenshot app — Print Screen for a region, Shift+Print for the screen, Alt+Print for a window; arrows, boxes, pens, highlighter, text, numbered markers, crop and redaction that stay editable; Ctrl+S saves to Pictures/Screenshots, and agents find the newest shots on the Bus. - [settings](https://mixos.dev/settings/README.md): lib; profiles: none (library). Headless desktop settings types, validation, resolution and the shared consumer that apps and the compositor use to follow the settings authority. - [settings — changelog](https://mixos.dev/settings/changelog.md): Release notes of the settings component, mirrored from libs/settings/CHANGELOG.md. - [settingsd](https://mixos.dev/settingsd/README.md): service; profiles: unclassified. The headless desktop settings authority, the one writer for a session profile's settings, with durable receipts and retained change publication on the Bus. - [settingsd — changelog](https://mixos.dev/settingsd/changelog.md): Release notes of the settingsd component, mirrored from services/settingsd/CHANGELOG.md. - [strict](https://mixos.dev/strict/README.md): lib; profiles: none (library). The MixOS strict-data format, the grammar of conf.mix and data.mix files, loaded as data and never executed. - [syntax](https://mixos.dev/syntax/README.md): lib; profiles: none (library). The syntax highlighting library for MixOS text editors, which runs Microsoft Edit's compiled lsh language definitions line by line over any chunked text store. - [system](https://mixos.dev/system/README.md): cli; profiles: unclassified. The system package builds the mix shell executable with optional noded, monitord, maild, webd and dnsd personalities selected by the name it is started under. - [term](https://mixos.dev/term/README.md): app; profiles: unclassified. The MixOS terminal, with tabs, split panes and a GPU-drawn grid, driven by the session settings and fully scriptable over the Bus. - [term — changelog](https://mixos.dev/term/changelog.md): Release notes of the term component, mirrored from apps/term/CHANGELOG.md. - [test-broker](https://mixos.dev/test-broker/README.md): lib; profiles: none (library). A development fixture that runs the real noded modules in an isolated broker runtime for the Term-to-Mix native session acceptance tests. - [thumbs](https://mixos.dev/thumbs/README.md): lib; profiles: none (library). File thumbnails made the freedesktop way, read from and written to the shared thumbnail cache and generated by the system's installed thumbnailers in their own processes. - [toolkit](https://mixos.dev/toolkit/README.md): lib; profiles: none (library). The shared shell for MixOS egui applications, giving every app the same theme, fonts, icons, title bar, menus, chrome components, command registry, Fluent strings and Bus drive verbs. - [MixOS GUI app style guide](https://mixos.dev/toolkit/style-guide.md): An app is two crates: an engine crate under apps//crates/ that knows nothing about egui, and the egui shell crate apps/. The shell crate's… - [toolkit — changelog](https://mixos.dev/toolkit/changelog.md): Release notes of the toolkit component, mirrored from libs/toolkit/CHANGELOG.md. - [toolsd](https://mixos.dev/toolsd/README.md): service; profiles: server. Runs the tools webd's admin panel queues (whois, dig, traceroute, shwho) as an unprivileged drain, outside webd's sandbox. - [webd](https://mixos.dev/webd/README.md): service; profiles: server. Virtual hosts, CMS routes, embedded Mix handlers and ACME for the MixOS web service. ## Docs ### Guides - [Docs](https://mixos.dev/docs/README.md): Guides, indexes, decision records and specifications for MixOS; every component's own documentation is at mixos.dev//. - [Try it beside your desktop](https://mixos.dev/docs/try.md): How MixOS runs as a small signed systemd-nspawn image on its own virtual terminal, next to the Linux desktop you already use, with native GPU, input and audio. - [Driving apps over the Bus](https://mixos.dev/docs/drive.md): How an agent drives a native MixOS app through Bus verbs, from the widget tree and injected input to window commands and captures, with BusViewer as the worked example. ### Indexes - [Components](https://mixos.dev/docs/components.md): Every MixOS component with its kind, install profiles, source and page, generated from the component metadata. - [Desktop components](https://mixos.dev/docs/desktop.md): The MixOS components in the desktop install profile, generated from their declared profiles. - [Server components](https://mixos.dev/docs/server.md): The MixOS components in the server install profile, generated from their declared profiles. ### Decisions - [Decision — egui applications, engine first](https://mixos.dev/docs/decisions/2026-10-09-egui-applications.md): MixOS applications and desktop furniture are built on egui and wgpu, with behaviour in engines and every action a named command reachable from the UI, the command line and the Bus. - [Decision — source layout and naming](https://mixos.dev/docs/decisions/2026-10-04-source-layout.md): Why the MixOS repository is laid out by kind of artefact (apps, services, cli, libs) with plain, unique names and self-contained components, and what was rejected. - [Desktop settings have one native ABP authority](https://mixos.dev/docs/decisions/2026-10-07-settings-authority.md): Status: accepted architecture, implementation staged. Contract version 0.1.0. - [Decision — .mix programs and .mx documents](https://mixos.dev/docs/decisions/2026-10-08-mix-programs-and-documents.md): Two Mix file families distinguish executable programs from declarative documents without multiplying script dialects. - [Decision — the chrome family and chrome schemes](https://mixos.dev/docs/decisions/2026-10-09-chrome-family-and-schemes.md): The design gains a typed chrome family of exact, non-derived colour roles, and three chrome schemes whose light and dark modes step the interface brightness. - [Decision — icons and type](https://mixos.dev/docs/decisions/2026-10-09-icons-and-type.md): MixOS applications use Lucide icons and the Inter and JetBrains Mono typefaces, with type weight and icon stroke as design tokens so a lighter profile is a design change. - [Decision — Mix components](https://mixos.dev/docs/decisions/2026-10-10-mix-components.md): A component may be written entirely in Mix. Its identity lives in a component.mx document instead of a Cargo package, and the component gates read both. - [Decision — scheme and style are separate axes](https://mixos.dev/docs/decisions/2026-10-10-scheme-and-style-axes.md): A theme is chosen on independent axes (scheme for the colours, style for the chrome's forms, mode, contrast), with window decorations and caption side beside them, so any palette can take any style. - [Decision — style tokens as data](https://mixos.dev/docs/decisions/2026-10-10-style-tokens-as-data.md): The forms and lengths of application chrome move out of renderer code into a typed style family in the design, so a new style is new data. - [Decision — compd's module layout on entry](https://mixos.dev/docs/decisions/2026-10-11-compd-module-layout.md): compd's crates enter with every mod.rs renamed to the 2018 layout; their self-named module files stay as a recorded, shrinking exception. - [Decision — executed commands are published](https://mixos.dev/docs/decisions/2026-10-11-executed-commands.md): Every MixOS application publishes each command it runs as a Bus topic, so what a person does by hand can be watched and recorded like what an agent does over the Bus. - [Key bindings are desktop settings](https://mixos.dev/docs/decisions/2026-10-11-keymaps-in-settings.md): Status: accepted. Settings contract 0.4.0 (additive). Widens Desktop settings have one native ABP authority, whose scope was the desktop's appearance and… - [Decision — rec and play](https://mixos.dev/docs/decisions/2026-10-11-rec-and-play.md): One command-line tool, recplay, installed as rec and play. play opens anything with the handler the desktop already knows, performs scripts and draws saved state. rec writes what happens on the desktop as an editable Mix script. rec and play are accepted name collisions. - [The settings authority stays a separate service on noded](https://mixos.dev/docs/decisions/2026-10-11-settings-authority-stays-a-service.md): Status: accepted. Builds on Desktop settings have one native ABP authority. - [Settings snapshot schema 2 sends each design once](https://mixos.dev/docs/decisions/2026-10-11-settings-snapshot-schema-2.md): Status: accepted. Settings contract 0.3.0 (additive), snapshot schema 2 beside schema 1. Follows plain followers read a summary. - [Plain settings followers read a summary, not the snapshot](https://mixos.dev/docs/decisions/2026-10-11-settings-summary-reads.md): Status: accepted. Settings contract 0.2.0 (additive). Builds on Desktop settings have one native ABP authority. - [Decision — verb classes](https://mixos.dev/docs/decisions/2026-10-11-verb-classes.md): Every registered Bus verb declares a class (intent, query, input or system), so tools that watch the Bus can tell a person's or agent's intent from reads, synthetic input and plumbing without guessing. - [Decision — hostd, the host service](https://mixos.dev/docs/decisions/2026-10-12-hostd.md): One root service per host answers host information and carries out privileged host actions through closed, typed, reversible verbs, so agents can act autonomously without sudo. - [Decision — non-root install, per-service users, mesh-first ports](https://mixos.dev/docs/decisions/2026-10-12-non-root-install-and-service-ports.md): MixOS installs and updates without root after a one-time bootstrap. Server daemons run as their own unprivileged users, listen on the WireGuard mesh by default, and get privileged ports from systemd rather than from file capabilities or root. - [Decision — one repository, install profiles](https://mixos.dev/docs/decisions/2026-10-12-one-repository-install-profiles.md): Server programs and the desktop stay in one MixOS repository and one Cargo workspace. The split between them is made where it matters, in what gets built and installed, by install profiles that every shipping component declares. - [Decision — one system binary](https://mixos.dev/docs/decisions/2026-10-12-one-system-binary.md): The mix shell and every headless MixOS daemon ship as one binary, built by cli/system and installed as mix. Each daemon is a symlink named after its component, and the binary picks what to run from the name it was started as. Components keep their own crates, tests, units and versions. - [Decision — scene strings until Mix reads Fluent](https://mixos.dev/docs/decisions/2026-10-12-scene-strings.md): Mix Scenes content (share/scenes) keeps its user-visible English strings in one table per scene library until Mix can read Fluent catalogues; then each table becomes that scene's en catalogue and its lookup reads the catalogue. - [Decision — screenshot](https://mixos.dev/docs/decisions/2026-10-12-screenshot.md): The screenshot and annotation app is named screenshot (app id dev.mixos.screenshot) and supersedes Cap, whose names are retired. Print Screen starts it. screenshot is an accepted binary-name collision with nwg-shell's helper. - [Decision — shipped system dialogs](https://mixos.dev/docs/decisions/2026-10-12-system-dialogs.md): Besides the Scene Editor, a shipped scene template that is hidden and declares a dialog may load as a dialog (a system dialog, such as the pager's rename prompt). It is enabled only while it shows, so the single dialog seat stays free. - [Bundled fallback font licences](https://mixos.dev/docs/decisions/2026-10-13-bundled-font-licences.md): Status: accepted, 2026-10-13. - [Decision — desk and deskd](https://mixos.dev/docs/decisions/2026-10-13-desk-and-deskd.md): The desktop's applications ship as one multi-call binary, desk, and its session services as another, deskd. Each app and service keeps its name as a link, so nothing that calls them changes, and one copy of egui, wgpu and the rest serves them all. - [Instance verb families (schema 3)](https://mixos.dev/docs/decisions/2026-10-13-instance-verb-families.md): Status: accepted, 2026-10-13. - [Decision — session icon stroke and type](https://mixos.dev/docs/decisions/2026-10-14-session-icon-stroke-and-type.md): The desktop session can choose its icon stroke and its interface and monospace font families and weight, applied to every MixOS app through the settings profile. - [Decision — email accounts live in settingsd, passwords in the app](https://mixos.dev/docs/decisions/2026-10-16-email-accounts-in-settings.md): The email app's accounts and mail options are the session profile's email group, edited in Prefs; their passwords stay in the app's private 0600 file and reach it only through a write-only verb. - [Decision — monitord and Monitor](https://mixos.dev/docs/decisions/2026-10-16-monitord-and-monitor.md): One unprivileged service per host, monitord, samples the system and its processes, keeps history in SQLite and answers on the Bus, so any node's load can be read from anywhere on the mesh. Monitor is the egui task manager that draws it. Both are MIT OR Apache-2.0, built on permissive crates; GPL monitors are reference only. - [Decision — site URL layout](https://mixos.dev/docs/decisions/2026-10-16-site-url-layout.md): Every component's documentation lives at the top of mixos.dev under its own name, in HTML and Markdown at fixed addresses. Everything that is not a component lives under one /docs/ section, so the only names a component can never take are docs and v. - [Decision — the function keys belong to the user](https://mixos.dev/docs/decisions/2026-10-17-function-keys-belong-to-the-user.md): No MixOS program binds F1–F12 by default, bare or with any modifier. Only the person binds them, through their keymap in the desktop profile. The toolkit's command registry refuses a default chord on one. - [Decision — service property storage belongs in props](https://mixos.dev/docs/decisions/2026-10-18-property-store-in-props.md): Keep service domain records and native Bus routing in props, with an opt-in logging bridge and unchanged persisted contracts. - [MCP bridge program name](https://mixos.dev/docs/decisions/2026-10-19-mcp-program-name.md): Status: accepted. - [Decision — commands take parameters and return results](https://mixos.dev/docs/decisions/2026-10-20-commands-take-parameters.md): Typed parameters, returned results and one UI-free command registry for every dispatch path. - [Render-node headless compositor backend](https://mixos.dev/docs/decisions/2026-10-20-headless-backend.md): A third compd backend for offscreen testing and recording. - [Decision — desktop theming and style](https://mixos.dev/docs/decisions/2026-10-21-desktop-theming-and-style.md): Every MixOS egui application takes its whole look from one install call and reads it back from the context; every style token and chrome colour is readable and tunable over the Bus for the session, one application or one window, and the terminal's colours for the session, under any design source; later tokens are data, never a migration; the compositor's title bars follow each window's look; the scroll bar, the form row and the fields are toolkit widgets; a gate refuses literals and raw widgets in applications. - [Weekly CBC releases, starting with Linux x86_64](https://mixos.dev/docs/decisions/2026-10-22-weekly-cbc-releases.md): MixOS release builds run on designated CBC workers at an exact source commit; GitHub hosts the verified result. ### Specs - [Bridge contract](https://mixos.dev/docs/spec/bridge/README.md): Status: draft, version 0.2.0. Machine-checkable fixture: bridge.spec.mix. Verified by services/bridged/tests/bridge_core_test.mix (the config contract against… - [Handler closure capture](https://mixos.dev/docs/spec/handler-closure-capture.md): Lambdas defined inside an on handler capture its local variables by value, including callbacks passed to map and all and nested callbacks. Those locals remain… - [Mix program and document file-family contract](https://mixos.dev/docs/spec/mix/2026-10-08-programs-and-documents.md): Execution refusal, strict document parsing, schema bindings and migration requirements for .mix and .mx files. - [Portal contract: Settings and ScreenCast](https://mixos.dev/docs/spec/portal/README.md): Settings status: accepted, version 0.1.0 (ScreenCast is a draft, below). The cbc2 verification of services/portald passed on the commit that carries it… - [Service property contract](https://mixos.dev/docs/spec/props/README.md): Structured property verbs, capabilities, replay and live topics, errors and SQLite table ownership. - [Releases contract](https://mixos.dev/docs/spec/releases/README.md): Status: accepted, version 0.3.0 (0.3.0 adds optional category metadata; 0.2.0 adds exec_wrapper). Verified by services/releasesd/tests/releases_test.mix… - [Desktop settings contract](https://mixos.dev/docs/spec/settings/README.md): Status: accepted authority contract, version 0.4.0 (0.2.0 added the summary topic and read view, decision; 0.3.0 added snapshot schema 2, decision; 0.4.0 adds… ### Contributor guides - [Source and build map](https://mixos.dev/docs/dev/2026-10-21-source-and-build-map.md): The current Mix interpreter, shell, executable, application and documentation source paths, how builds relate to installed versions, and where staged decisions need implementation checks. - [Releasing MixOS](https://mixos.dev/docs/dev/releasing.md): Exact-source CBC gates, x86_64 glibc packaging, GitHub drafts, and verified gold installation. ## Optional - [The whole manual in one file](https://mixos.dev/llms-full.txt) - [Sitemap](https://mixos.dev/sitemap.xml)