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.json file.

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 doctor command to automatically check and repair state layers.

Related

  • Project
  • Project
  • Project
  • Project
  • Project