Skip to content

NipCells

In Progress

NipCells are lightweight isolation containers — the Nexus answer to Flatpak and Snap, without the overhead.

What Is a NipCell?

A NipCell is a sandboxed execution environment for an NPK (application package). It provides:

  • Filesystem isolation: GoboLinux-style symlink trees give each application its own view of the filesystem
  • Capability restriction: Each NipCell gets a tailored capability set (pledge mask + unveil paths)
  • Resource limits: Kinetic Economy budgets prevent resource abuse
  • Clean removal: Uninstalling a NipCell removes all its files, state, and capabilities

How NipCells Work

/Programs/Firefox/120.0/        # Package files (read-only)
/Cell/<fiber-id>/               # Private runtime state
/Bus/hud/<surface-id>           # Display endpoint
/Data/apps/firefox/             # Persistent app data

The NipCell creates a filesystem view that combines:

  1. Read-only access to the package directory
  2. Private runtime state in /Cell
  3. Persistent data in /Data/apps/
  4. Nothing else (unless explicitly unveiled)

NipCells vs Flatpak

FeatureFlatpakNipCells
Runtime size~500MB per runtimeNo runtime — packages are self-contained
Isolationbwrap + seccompCapability Algebra + pledge/unveil
DeduplicationShared runtimesCAS-level deduplication via NexFS
Portal systemD-Bus portalsION Ring endpoints in /Bus
Update mechanismOSTree deltasDAG-based incremental updates
Dependency modelRuntimes + extensionsFlat dependency resolution via nip

NipCells vs Docker

NipCells are for applications, not services. For service-level isolation, see Nexters.

Key difference: NipCells use capability-based isolation (no virtualization, no namespaces, no cgroups). They are much lighter than Docker containers — startup is near-instant because there is no container runtime to initialize.

Released under the CC0 License.