RFC · Coming Soon

Lifo Packages

A built-in package manager for the browser OS. Install tools the way you'd expect — one command, ready to use.

This is on the roadmap and currently an open RFC. Nothing here is final — we're actively exploring the best design.

$ pkg install ffmpeg
Installing ffmpeg (wasm)... done.
$ ffmpeg -i input.mp4 -vf scale=320:-1 output.gif
Converting... output.gif written.

Two Types of Packages

npm Global Packages

Any npm package that works as a global CLI tool just works in Lifo. Install it, run it — same commands, same flags.

$ pkg install typescript
$ tsc --init

Wasm Native CLIs

Native tools compiled to WebAssembly. Get the full CLI experience for tools that normally require native binaries.

$ pkg install imagemagick
$ convert photo.png -resize 50% small.png

Planned Wasm Packages

ffmpegImageMagickPythonSQLitePostgresRubyLuajqripgrep

How It Works

npm packages are fetched from the registry, bundled for the browser, and installed into the virtual filesystem. Global binaries are symlinked to /usr/local/bin so they work from the shell immediately.

Wasm packages are pre-compiled WebAssembly binaries wrapped with a thin CLI shim. They execute at near-native speed, read and write to the virtual filesystem, and support the same flags and arguments as their native counterparts.

Have ideas or feedback?

This is an open RFC — reach out to @sanketsahu on X if you have thoughts on how packages should work in Lifo.