openxlings/xlings
Universal package infrastructure with OS-like SubOS isolation - Multi-version · Rootless · Decentralized Index · Agent-ready.
What it solves
xlings is a universal package manager designed to handle multi-version toolchains and isolated environments across Linux, macOS, and Windows. It eliminates the "dependency hell" of having multiple versions of the same tool (like GCC or Node.js) and provides a way to run software in isolated "SubOS" environments to prevent conflicts and protect the host system.
How it works
The system uses a specialized package format called xpkg to distribute binaries, scripts, and configurations. It manages versions using a version-view and reference-counting system that allows multiple versions to coexist side-by-side without consuming excessive storage. For isolation, it employs different backends depending on the OS: on Linux, it uses bwrap or proot for rootless filesystem isolation; on macOS and Windows, it redirects the home directory to isolate dotfiles.
Who it’s for
- Developers who need to switch between different versions of toolchains for different projects.
- AI Agents that require a safe, isolated environment to execute code and install dependencies without affecting the host machine.
- CI/CD pipelines that need reproducible, project-specific environments defined in a
.xlings.jsonfile.
Highlights
- SubOS Isolation: Provides three levels of isolation (shell, filesystem, and image) to create safe workspaces.
- Agent-Ready: Includes a JSON event interface (NDJSON) and built-in agent guides to allow LLM agents to self-learn and manage the toolchain.
- Multi-platform: Unified commands for Linux, macOS, and Windows.
- Decentralized Index: Supports official, third-party, and self-hosted package indices.
- Self-Diagnosing: Features a
self doctorcommand to automatically check and repair state layers.
Related
- Project
- Project
- Project
- Project
- Project