SDK
App catalog
Install extra binaries — ripgrep, fd, and more — on demand from a signed, content-addressed catalog served over a CDN and cached in OPFS.
Install an app
javascript
await nano.installApp("fd@10.2.0");
await nano.run("fd --version"); // fd 10.2.0installApp fetches the app's manifest, verifies its signature, assembles its content-addressed chunks, and writes the files into the VM with the correct mode. Omit the version for the latest.
Lazy install & progress
javascript
await nano.installApp("ripgrep", {
lazy: true, // defer chunk downloads until first access
onProgress: (e) => console.log(e.phase, e.fetched, "/", e.total),
});onProgress reports phases: index → manifest → chunk → write → done.
Bundles
javascript
const res = await nano.installBundle("data"); // every app in a topic
console.log(res.installed.length, "installed,", res.failed.length, "failed");Under the hood
- Manifests are cryptographically signed and pinned by SHA-256.
- Files are split into content-addressed chunks (CAS) and deduplicated across apps.
- The default CDN is jsDelivr; override it via CatalogOptions for a mirror or for tests.
Catalog installs honor file mode, so installed binaries land executable and resolve on PATH.