xlings
Universal package infrastructure with OS-like SubOS isolation.
Multi-version · Rootless · Decentralized Index · Agent-ready.
Website | Docs | Package Index | Forum
中文 | English
Used by: MCPP · Luban
One tool to install any version of anything, run it without root, and isolate
it like an OS of its own — on Linux, macOS and Windows.
Quick Start
xlings
# Linux / macOS
curl -fsSL https://raw.githubusercontent.com/openxlings/xlings/main/tools/other/quick_install.sh | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/openxlings/xlings/main/tools/other/quick_install.ps1 | iex
xlings install mcpp luban node # install (the latest)
xlings install node@20 # an older version, beside it
xlings use node@20 # switch the active version
xlings search gcc # search packages
xlings list # what is installed
Using an AI agent? Tell it to run xlings agent usage — a complete guide
written for agents ships with xlings.
Luban OS
luban (the command) and Luban OS (the window) are packages of their own:
install them, then make a system and go in.
xlings install luban luban-os # the luban command and the Luban OS window
luban new box # a Linux system, no root needed (Luban Core)
luban enter box # its shell; exit to leave
luban-os # or open the Luban OS window
What it does
| Area |
What you get |
| Packages |
binaries, scripts, configs, SubOS bases — all one format (xpkg), from official, third-party or self-hosted indexes |
| Versions |
any number side by side; N environments share one copy of each payload |
| SubOS |
named environments: their own tools, home and policy — from a PATH switch to a rootless sandbox with a private network |
| Agents |
xlings subos exec, exit codes that mean something, XLINGS_AGENT_MODE=1, and an NDJSON interface (xlings interface) |
| Repair |
xlings self doctor --fix checks its own state and repairs it in one run |
Scenarios
Several toolchains, no conflicts — guide
xlings install gcc@16 gcc@11 node@24
xlings use gcc@11 # switch back any time; both stay installed
One environment for the whole team — guide
{ "workspace": { "xmake": "3.0.7", "gcc": { "linux": "16.1.0" }, "llvm": { "macosx": "20.1.7" } } }
cd my-project/ && xlings install # the project's own SubOS, the declared versions
Agents and untrusted code in a sandbox — guide
xlings subos new agent-ws --sandbox=private # isolation is declared once, here
xlings subos exec agent-ws -- python run.py # every entry is that sandbox; its own exit code
xlings subos use agent-ws # or a shell inside -- no flag needed
| Platform |
Release |
--sandbox isolates |
| Linux x86_64 / aarch64 |
✅ |
filesystem, processes, network, identity (bwrap) |
| macOS 14+ arm64 |
✅ |
only $HOME |
| Windows x86_64 |
✅ |
only %USERPROFILE% |
On macOS and Windows --sandbox is not a security boundary: use an OS
sandbox or a VM for code you do not trust. xlings subos status <name>
shows what a SubOS asks for and what this machine gives it.
Upgrade and repair — guide
xlings self update
xlings self doctor --fix
Luban
A whole Linux userland in one command, rootless — then boot it as a machine.
Luban is the OS model on xlings: environments made from editions, rolled back by
generation, exported as images, shown in the Luban OS window with their desktop.
Quick start · The desktop
xlings install luban # the luban command (luban-os: the window)
luban new box # a Linux system, no root needed (Luban Core: shells, editors, git, compilers)
luban enter box # its shell; exit to leave
Smaller or desktop editions (--edition tiny, --edition desktop), the same
system as a machine with its own kernel (--mode machine), bootable images
(luban export), the Luban OS window, macOS and Windows: Quick start.
Documentation
All of it: docs/.
Ecosystem and community
- MCPP — modern C++ toolchain, distributed through xlings
- xim-pkgindex — the official package index
- Luban — the OS model on xlings: environments, editions, bootable images
- Forum · QQ 167535744 / 1006282943 · Issues
- Contributing: issues · packages · docs

评论