| Applications |
| bhop |
Airtime: Foundry — strafe trials and scroll jumping. | |
| classicube |
Explore and build in a block world, with an optional agent. | |
| closed-source-agent |
runs Claude Code, downloaded from npm into the session after a notice of its terms. | |
| codex-agent |
Codex TUI with shell tools, ripgrep and fd. | |
| default |
A shell, its text tools, curl, ps, amy, which installs the rest, and nena, which enables the host modules they need. | |
| dollyfile-studio |
Create images with Pi, local models and Neovim. | |
| ghostty-x11 |
An application: Ghostty's window on Dolly's X server, with Slop and amy in its terminal. | |
| gnu-emacs |
an application that opens straight into Emacs. | |
| gpu-fluid |
Stir liquid ink and volumetric smoke. Requires WebGPU. | |
| mojo-gpu |
a shell that installs `mojo` in an image that declares `gpu@0`, where the kernels of its programs run. Requires WebGPU. | |
| neovim |
Neovim with Lua and syntax parsers. | |
| pi-agent |
Pi coding agent with JavaScript, shell tools, ripgrep and fd. | |
| pi-local |
Pi with the bundled Qwen3.5-2B; `/local` installs and switches models. Requires WebGPU. | |
| pi-phone |
Pi for a phone: say what it should do, and tap buttons for the rest. English. | |
| rts-arena |
Watch a Seven Kingdoms replay or start a vision-model match. | |
| slopyard |
Build machines, haul cargo and compete across a coastal scrapyard. Requires WebGPU. | |
| speech-to-text-mic |
Speak, and what the microphone hears is written as text. English. | |
| tmux-panes |
an application that opens into tmux with a shell in each of two panes. | |
| wine |
`/wine/` starts the desktop (`wine desktop`); Shut Down in its Start menu leaves a shell, where `wine hello`, `wine notepad`, `wine x86emu` and `wine desktop` run. | |
| x11-desktop |
an X session: the X server, twm, xclock, xeyes and xterm, with `imgui-x11` ([the SDL2 demo](../sdl2/README.md)) for xterm to start and amy to install packages. | |
| xonotic |
the client with the release's data, maps and font archives (946 MB) under `/usr/share/xonotic/data`; `/xonotic/` starts `xonotic`, the client in software at 1024×768, and leaves the shell when it quits. | |
| zero-ad |
0 A.D. Release 28: Athens economy and combat scenarios, audio and replay. Requires WebGPU. | |
| Packages |
| amy |
`amy`, the package installer, and `dollyfile`, the recipe engine it runs. | |
| base64 |
`base64` (Alfred Klomp's) and libbase64. | |
| bc |
the `bc` and `dc` calculators (Gavin Howard's). | |
| binaryen |
Binaryen's `wasm-opt`, for its function-pointer cast emulation (`--fpcast-emu`). | |
| boost-headers |
Boost's header-only libraries, for programs the `cc` package builds; it brings no compiler. | |
| box3d |
libbox3d, the Box3D physics library, for programs the `cc` package builds; it brings no compiler. | |
| bzip2 |
bzip2: `bzip2`, `bunzip2`, `bzcat` and libbz2. | |
| cargo |
`cargo`, built inside Dolly, with the `rust` package it compiles with. | |
| cbindgen |
`cbindgen`, which writes C headers for Rust libraries; SpiderMonkey's configure requires it. | |
| cc |
`cc` and `c++` with `ld`, `ar` and `make`, and the headers and libraries they compile against. | |
| cmake |
`cmake`, with the `cc` package it configures and builds with. | |
| codex |
`codex`, the Codex coding agent with its launcher, and the `ripgrep` and `fd` packages. | |
| core |
the shell `slop` and its core commands: `ls`, `cat`, `cp`, `mv`, `rm`, `mkdir`, `tar`, `man`, `help` and others. | |
| curl |
`curl` and libcurl, over the page's HTTP broker. | |
| display |
the terminal: the Ghostty display plugin, its font and the termcap entry. | |
| dolly-docs |
the platform's documents and machine contracts, in `/usr/share/doc/dolly`. | |
| dte |
dte, a small full-screen editor with the keys of a desktop one. | |
| emacs |
`emacs`, GNU Emacs for the terminal, and `etags`. | |
| esbuild |
`esbuild`, the JavaScript and TypeScript bundler, built by `go`. | |
| fd |
`fd`, which finds files by name. | |
| flex |
flex 2.5.4 as Thomas Dickey maintains it (reflex), which starts no m4, also as `lex`, with libfl and the `yacc` package. | |
| fmt |
{fmt}, a library for programs the `cc` package builds, by upstream's CMake; it brings no compiler. | |
| freetype |
FreeType with libpng and zlib, a library for programs the `cc` package builds, by upstream's CMake; it brings no compiler. | |
| ghostty-gtk |
Ghostty's GTK application, a package; it needs an X server. | |
| git |
`git` over the page's HTTP broker, with `diff` and `patch`. | |
| glib |
GLib, GObject and GIO, with their tools. | |
| gmqcc |
the QuakeC compiler, compiled from the same release source. | |
| go |
`go` and `gofmt`, the Go toolchain and standard library compiled again inside Dolly by the seed. | |
| gzip |
`gzip -dc`, which unpacks a `.gz` file to standard output; the `pigz` package writes them. | |
| icu |
ICU 68.2's common and i18n libraries with their data, for programs the `cc` package builds; it brings no compiler. | |
| imgui |
Dear ImGui with its SDL2 and SDL_Renderer backends, a library for programs the `cc` package builds, and `imgui-demo`, upstream's example. | |
| imgui-x11 |
upstream's ImGui example as an X client: SDL2 with its X11 video driver alone, drawing on the server `DISPLAY` names ([the X11 demo](../x11/README.md)). | |
| janis |
`janis`, QuickJS with a Node-compatible surface: `janis FILE.js` runs Node-style programs, and there is no `node`. | |
| janis-install |
installs npm packages and what they depend on from the npm registry, with a command for each program they name, run by Janis. | |
| jq |
jq, the JSON processor, with regular expressions. | |
| less |
`less`, the pager; Git and `man` page through it once it is installed. | |
| lfm2.5 |
Model package: LFM2.5-2.6B weights, description and license. | |
| libdolly-audio |
the `audio@0` module's header and client library, for programs the `cc` package builds. | |
| libdolly-gpu |
the `gpu@0` module's header and client library, for programs the `cc` package builds. | |
| libdolly-microphone |
the `microphone@0` module's header and client library, for programs the `cc` package builds. | |
| libdolly-sockets |
the `sockets@0` module's header and client library, for programs the `cc` package builds. | |
| libdolly-touch |
the `touch@0` module's header and client library, for programs the `cc` package builds. | |
| libevent |
libevent's core, the event loop with its buffers and listeners, a library for programs the `cc` package builds; it brings no compiler. | |
| libffi |
libffi with Dolly's target: calls and closures of signatures known at run time, through `dso@0`. | |
| libjpeg |
IJG libjpeg 9f, a library for programs the `cc` package builds; it brings no compiler. | |
| libogg |
Ogg 1.3.5 from upstream's CMake project, a library for programs the `cc` package builds. | |
| libpng |
libpng with zlib, a library for programs the `cc` package builds, by upstream's CMake; it brings no compiler. | |
| libsodium |
libsodium, a library for programs the `cc` package builds, its sources compiled as its `build.zig` does; it brings no compiler. | |
| libterminfo |
NetBSD's terminfo library with the terminal descriptions it holds, for programs the `cc` package builds; it brings no compiler. | |
| libuv |
the libuv port, built by [`libuv-dolly.mk`](libuv-dolly.mk), that CMake and Neovim are built on, a library for programs the `cc` package builds; it brings no compiler. | |
| libvorbis |
Vorbis 1.3.7 with vorbisfile and vorbisenc from upstream's CMake project, a library for programs the `cc` package builds; it brings `libogg`. | |
| libxkbfile |
X.Org's library of XKB keymap files. | |
| libxml2 |
libxml2 with zlib, a library for programs the `cc` package builds, by upstream's CMake; it brings no compiler. | |
| llama |
`dolly-llama`, linked on `llama-cpp`, serving a GGUF over stdin and stdout; it needs `gpu@0`. | |
| llama-cpp |
llama.cpp's libraries with ggml's WebGPU backend over the GPU interface, for programs the `cc` package builds; they need `gpu@0`. | |
| llvm |
LLVM's tools (`llvm-objdump`, `llvm-nm`, `llvm-ar`, `opt`, `llc` and others), its libraries, headers and `llvm-config`, from the tree whose archives the seed's compiler links. | |
| llvm21 |
LLVM 21 with every default target, Clang and LLD as libraries and headers, and `llvm-config`, in `/usr/lib/llvm21`: what Zig 0.16 links. | |
| lua |
`lua`, PUC Lua 5.1, with its library and headers and the LPeg and luv modules, also as static libraries. | |
| lz4 |
LZ4: `lz4`, `unlz4`, `lz4cat` and liblz4. | |
| make |
GNU `make` alone, for rules that compile nothing; `cc` brings it too. | |
| mandoc |
`mandoc`, which formats a manual page of man or mdoc macros as text, and `text-page`, with which a package formats upstream's pages when it is built. | |
| meson |
Meson, with the `python`, `cc` and `ninja` packages it runs on. | |
| minicpm5-2b |
Model package: MiniCPM5-2B weights, description and license. | |
| mojo |
the package that holds the compiler's build: compiled and linked from those archives with the target's patches, with the standard library and the package `gpu` that it precompiles, what a Mojo object links against (`libmojo-rt.a`, and `libmojo-gpu.a`, its `DeviceContext` over WebGPU) and the `cc` package: `mojo build NAME.mojo` makes a Dolly executable. | |
| naga |
`naga`, the wgpu project's shader translator; 0 A.D.'s shaders are translated to WGSL with it. | |
| nena |
`nena`, which lists a session's host modules and enables or disables them, where the image declares `nena@0`. | |
| ninja |
`ninja` (Samurai), which Meson and CMake's Ninja generator build with. | |
| nvim |
`nvim`, Neovim with its runtime and parsers. | |
| ocaml |
OCaml 5.5: the bytecode compiler `ocamlc`, the toplevel `ocaml`, `ocamllex`, `ocamlyacc`, `ocamldep`, and the standard, `unix`, `str` and threads libraries. | |
| openal |
OpenAL Soft's mixer through its loopback device, built for the 0 A.D. audio path, a library for programs the `cc` package builds; it brings no compiler. | |
| parakeet |
NVIDIA's Parakeet TDT-CTC 110M speech model (English, 135 MB), which `speech-to-text` and `voice` read. | |
| pcre2 |
PCRE2's 8-bit library, GLib's regular expressions. | |
| pi |
`pi`, the Pi coding agent as npm publishes it, with the `janis-install`, `ripgrep` and `fd` packages. | |
| pi-dolly |
Pi's Dolly extension: the prompt, the `dolly` skill, Slop for its shell tool, a download tool, settings, theme and `pi-key`, with the `pi`, `secretenv` and `dolly-docs` packages. | |
| pigz |
pigz, which writes the `.gz` files `gzip` here only reads, and `unpigz`. | |
| pixman |
the pixel library the X server draws with. | |
| pkgconf |
pkgconf, also as `pkg-config`, which reads the `.pc` files libraries install; built by its own recipe. | |
| posix |
`grep`, `sed`, `sort`, `find`, `xargs`, `awk`, `sh` and the other text and file tools. | |
| premake |
Premake 5.0.0-beta7 as 0 A.D. bundles it, which generates Makefiles from a project's scripts. | |
| protox |
`protox`, a protobuf compiler; Codex is built with it. | |
| ps |
`ps`, which lists the processes: PID, parent, state and command line. | |
| python |
`python3` and `pip` (CPython), with the `cc` package pip builds native packages with. | |
| quickjs |
`qjs` and the QuickJS-ng engine as a library (`-lquickjs`, `quickjs.h`): upstream's own command with its `std` and `os` modules, and nothing of Node. | |
| qwen3.5-2b |
Model package: Qwen3.5-2B weights, description and license. | |
| qwen3.5-4b |
Model package: Qwen3.5-4B weights, description and license. | |
| raylib |
raylib 6.0 with its software renderer and a Dolly platform backend: `InitWindow` shows the frames through `display@0`, keys, text and the pointer come from `input@0`, `GetTime` runs. A hidden window, or a program holding the display itself (``), renders to memory. For programs the `cc` package builds; it brings no compiler. | |
| ripgrep |
`rg`, which searches files by regular expression. | |
| rust |
`rustc` and the Rust standard library, built inside Dolly, with the `cc` package it links through. | |
| sbase |
the sbase commands the image leaves out: `yes`, `cal`, `sha1sum`, `sha512sum`, `sponge`, `cols`, `uuencode` and `uudecode`. | |
| sdl2 |
libSDL2, which draws in software into Dolly's display, for programs the `cc` and `cmake` packages build; it brings neither. | |
| sdl2-image |
SDL_image, which loads PNG, JPEG, GIF, BMP, SVG, QOI and more into SDL surfaces and saves PNG and JPEG, with `sdl2`. | |
| sdl2-mixer |
SDL_mixer, which mixes sound effects and plays music (WAV, Ogg Vorbis, MP3, FLAC, MIDI with Timidity) through `sdl2`'s audio, with `sdl2`. | |
| sdl2-ttf |
SDL_ttf, TrueType text into SDL surfaces through the `freetype` package, which it brings with `sdl2`. | |
| secretenv |
`secretenv NAME PROMPT COMMAND`, which reads a secret without showing it into one command's environment. | |
| session-recover |
`session-recover`, which copies the files of a saved session file into a new directory. | |
| speech-to-text |
`speech-to-text` with the Parakeet model and Silero VAD, for an image that declares `microphone@0`. | |
| spidermonkey |
SpiderMonkey 128.13.0, a library for programs the `cc` package builds, built inside Dolly with mozbuild, Python, Cargo and cbindgen, which it does not bring. | |
| sqlite |
SQLite: the `sqlite3` shell, and its library and headers for programs the `cc` package builds. | |
| tar |
sbase's `tar`, which writes archives and reads links and pax headers, in place of the one that only unpacks; `-z`, `-j` and `-J` run gzip, bzip2 and xz (pigz writes `.gz`). | |
| tmux |
tmux, the terminal multiplexer. | |
| toybox |
toybox's `grep` and `sed`, which have `grep -r` and `sed -i`, in place of the image's. | |
| transcribe |
the transcribe.cpp library and its ggml, built with CMake, which `speech-to-text` and `voice` link. | |
| transfer |
`download` and `upload`, the page's file exchange. | |
| tree |
tree, which draws a directory as a tree. | |
| twm |
twm, the Tab Window Manager. | |
| typescript |
TypeScript's `tsc`, run by Janis. | |
| unzip |
Info-ZIP's `unzip` and `zipinfo`. | |
| vendor-crates |
`vendor-crates`, which writes the crates.io crates a Cargo project depends on to `vendor/` for `cargo build --offline`: crates.io's index sends no CORS headers a page can use. | |
| vi |
Neatvi, a small `vi` and `ex` that needs no terminal database. | |
| voice |
`voice` with the Parakeet model, for an image that declares `microphone@0`, `touch@0` and `pty@0`. | |
| wabt |
the WebAssembly Binary Toolkit: `wat2wasm`, `wasm2wat`, `wasm-objdump`, `wasm-strip` and `wasm-validate`. | |
| xclock |
xclock, the Athena clock. | |
| xeyes |
xeyes, the eyes that follow the pointer. | |
| xkbcomp |
the XKB keymap compiler the X server runs. | |
| xkeyboard-config |
the keyboard descriptions xkbcomp reads, with the evdev rules. | |
| xonotic-shaders |
the engine's shader permutations of the normal preset as WGSL in `/usr/share/xonotic/shaders`, for the client's `gpu@0` path: `dpshaders.c` rewrites the engine's GLSL as naga's GLSL front end reads it and the `naga` package translates it, in the build. | |
| xorg-server |
Xsdl, the X server in Dolly's display, with xkbcomp and the keyboard descriptions. | |
| xterm |
xterm, the terminal emulator for X, with a shell on a pseudo-terminal. | |
| xxd |
xxd, the hex dump that also reads one back. | |
| xz |
XZ Utils: `xz`, `unxz`, `xzcat` and liblzma. | |
| yacc |
Berkeley Yacc, as `yacc` and `byacc`. | |
| zero-ad-data |
A build stage: 0 A.D.'s release data made into what the game reads, inside Dolly with Python, XZ and Naga. | |
| zig |
`zig` with its standard library, and the `cc` package: it emits C (`-ofmt=c`) that `cc` compiles. | |
| zig-llvm |
`zig` with its LLVM backend; the LLVM libraries are linked in, so it brings no LLVM. It brings `cc` for its links. | |
| zip |
Info-ZIP's `zip`, with the `unzip` package, which `zip -T` starts. | |
| zlib |
libz: zlib's headers and static library, for programs the `cc` package builds; it brings no compiler. | |
| zsh |
the Z shell, with its line editor, completion system and prompt themes, a package. | |
| zstd |
Zstandard: `zstd`, `unzstd`, `zstdcat` and libzstd. | |
| Toolchains |
| classicube-build |
ClassiCube with the Dolly SDL2 software renderer. | |
| cmake-build |
CMake bootstrapped on the `libuv` package. | |
| gamedev-sdk |
the `raylib` and `box3d` packages, Box3D's sources (Slopyard compiles them again with threads and SIMD) and the float math functions. | |
| ghostty-build |
Ghostty terminal build with Zig and its SDK. | |
| go-build |
the seed with the `go` package installed over it; the base of every Go build. | |
| go-sdk |
the seed, staged: Go's GOROOT for dolly/wasm64, cross-built outside Dolly. | |
| go-tools |
interactive shell: `system` with the `go` and `esbuild` packages. | |
| gtk-build |
A build stage: GTK 4 with its X11 backend and the libraries under it (FreeType, FriBidi, HarfBuzz, fontconfig, cairo, pango, gdk-pixbuf, graphene, libepoxy and the rest), as static libraries. | |
| llvm-build |
a build stage: the seed compiler's libraries, compiled in Dolly. It configures the tree again with those tools and compiles the closure (Clang, LLD, the WebAssembly backend: 2,559 units) at four jobs. It keeps `/usr/lib/llvm-build`: the archives, Clang's resource directory and the configured and generated headers. Then, in the same tree, it builds the rest of LLVM and installs it under `/usr/lib/llvm` for the `llvm` package; the compiler's archives are kept before, so this leaves the compiler as it is. | |
| llvm-cc |
a shell whose `cc` and `c++` are the compiler built in Dolly. On `llvm-tablegen`, with `llvm-build`'s `/usr/lib/llvm-build` copied, it compiles the seed's driver (`src/compiler.cpp`), links the compiler from those archives without its names (`-Wl,--strip-all`), requires the same bytes from it as from the seed compiler for two programs and a sample of LLVM's sources, and installs it for `cc`, `c++`, `ld` and `ar`. | |
| llvm-tablegen |
a build stage. CMake configures the tree inside Dolly; Make builds `llvm-min-tblgen`, `llvm-tblgen` and `clang-tblgen` and runs the TableGen targets the seed compiler's libraries need. It keeps the three tools and `/usr/share/llvm-tablegen` (configured headers and TableGen outputs). | |
| llvm21-tablegen |
a build stage: LLVM 21 with every default target, configured by CMake inside Dolly, and its TableGen tools. | |
| mesa-build |
A build stage: Mesa's OpenGL with GLX over Xlib, drawing with softpipe, and libepoxy taking it from the program, over `gtk-build`. | |
| mojo-llvm |
a build stage: the LLVM, MLIR and Clang Basic libraries the compiler links, at the revision Mojo pins, with Mojo's one patch to LLVM's code generator, and Zstandard. WebAssembly is the only backend. It keeps `/opt/mojo-llvm`: `llvm-tblgen`, `mlir-tblgen`, the archives and the headers. | |
| pi-runtime |
Reusable Pi and Janis runtime. | |
| rts-build |
Seven Kingdoms and its local multiplayer adapter. | |
| rust-build |
rustc, the standard library and Cargo built from source, the kept rustc by the first one built here; the base of every Rust build. | |
| rust-llvm |
the LLVM 22 libraries rustc links, built by Dolly's `c++`. | |
| rust-sdk |
the seed, staged: its compiler and standard library, and its Cargo linked here. | |
| rust-tools |
interactive shell: `system` with the `rust` and `cargo` packages. | |
| system |
`system-tools` with saved sessions (`snapshot@0`, `session-recover`). | |
| system-build |
C/C++ compiler, headers and basic build tools. | |
| system-tools |
Shell, display, Git, curl, Make and POSIX tools. | |
| tools-build |
A build stage: `cmake-build` with the core's `mandoc`, what these packages are built on. | |
| wine-build |
the build. Wine's `widl`, `wrc`, `wmc` and `winebuild`, then 16 DLLs (`ntdll`, `kernel32`, `advapi32`, `gdi32`, `user32`, `version`, `usp10`, `imm32`, `comctl32`, `comdlg32`, `shell32`, `shlwapi`, `shcore`, `uxtheme`, `winspool.drv`, `msvcrt`), the display driver `winedolly.drv`, the programs and `wineserver`, linked as `/usr/bin/wine` on `system-tools` with the FreeType that `zero-ad-deps` built. Wine's source as built stays under `/usr/src/wine`, the port under `/usr/src/dolly/wine`. The build ends by running TinyCC's x86-64 compiler under `x86emu` to make the Start menu's x86-64 sample. | |
| x11-build |
A build stage: X's client libraries, from the protocol headers and libxcb to the Athena widgets, as static libraries. | |
| xonotic-build |
the dedicated server (`xonotic-dedicated`) and the SDL client (`xonotic-sdl`), compiled from the pinned release source with `cc`, `c++` and Make on `system-tools` with the `sdl2` and `gmqcc` packages; the engine and `qcsrc` stay under `/usr/src/xonotic`, and `make -f /usr/src/dolly/xonotic/Makefile qc` compiles `progs.dat`, `csprogs.dat` and `menu.dat` into `/tmp/xonotic/build/qc`. | |
| zero-ad-deps |
A build stage: the engine's libraries from their packages, ENet with Dolly's transport, pkgconf and SDL2. | |
| zero-ad-engine |
A build stage: the 0 A.D. engine built inside Dolly with Premake and Make. | |
| zig-build |
Zig built from source by the C/C++ compiler; emits C. | |
| zig-llvm-build |
build-only; zig1 compiles the compiler to C and `cc` compiles that. | |