Packages
The published npm packages that make up Lifo, and the in-VM package manager for installing tools inside a box.
There are two senses of "package" in Lifo: the npm packages you install to build with Lifo, and the tools you install inside a box at runtime.
The npm packages
Everything ships from the @lifo-sh scope (and a few lifo-pkg-* helpers).
| Package | What it is |
|---|---|
@lifo-sh/core | The VM: kernel, filesystem, shell, commands, the Node layer, networking. The only required dependency. |
@lifo-sh/ui | Framework-agnostic UI components — Terminal, PreviewBrowser, FileExplorer. |
lifo-sh | A CLI to run a box from your terminal (on the roadmap). |
lifo-pkg-git, lifo-pkg-ffmpeg | In-VM tools packaged for Lifo (Git, FFmpeg). |
create-lifo-pkg | Scaffold your own Lifo package. |
Most apps need just @lifo-sh/core (plus @lifo-sh/ui if you want the terminal
and preview components):
npm install @lifo-sh/core @lifo-sh/uiIn-VM packages
Inside a box, npm and npx are real — they fetch from the npm
registry and install into the box's filesystem, so npm install, npx, and
npm run work as you'd expect.
npm install react
npx create-vite@latest my-appLifo also has its own lightweight package mechanism (lifo) for VM tools like
Git, and for dev-linking local packages while you build them.
A first-class package manager (roadmap)
Beyond npm, a built-in package manager for VM tools — including native CLIs compiled to WebAssembly (ffmpeg, ImageMagick, Python, and more) — is on the roadmap. The intended shape:
lifo install ffmpeg
ffmpeg -i input.mp4 -vf scale=320:-1 output.gifTwo kinds of packages would be supported: npm global CLIs (any package that works as a global binary) and Wasm native CLIs (native tools compiled to WebAssembly, for the cases where pure JavaScript can't do the job — the one place Lifo reaches for WebAssembly deliberately). This is still an open design; see the roadmap for status.