Skip to content

Offline and air-gapped install

Ikenga’s extension system uses Bun as its JavaScript runtime. On a normal first launch the shell fetches the pinned Bun release in the background — a small status chip in the shell chrome shows download progress — and the rest of the app is fully usable while the transfer completes. Nothing blocks startup.

If you are on a restricted network, or simply prefer to supply your own binary, three escape hatches are available.

Install Bun yourself (see bun.sh/docs/installation) and make the bun binary available on your $PATH. At startup the shell detects it, checks the version, and uses it if the version meets or exceeds the pinned minimum (currently 1.3.14). No download occurs.

Terminal window
# Verify Bun is on PATH and meets the minimum version
bun --version # must be >= 1.3.14

Option 2 — drop a binary in the data directory

Section titled “Option 2 — drop a binary in the data directory”

Copy a Bun binary directly into the location the shell checks:

PlatformPath
macOS~/Library/Application Support/app.ikenga/bun/<target>/bun
Linux~/.local/share/app.ikenga/bun/<target>/bun
Windows%APPDATA%\app.ikenga\bun\<target>\bun.exe

Where <target> matches your platform:

Platform<target>
macOS Apple Silicondarwin-aarch64
macOS Inteldarwin-x64
Linux x64linux-x64
Linux arm64linux-aarch64
Windows x64windows-x64

The shell validates the file’s SHA-256 against its pinned checksum. If the checksum does not match, the binary is rejected and a background fetch is attempted instead.

Option 3 — IKENGA_BUN_PATH environment variable

Section titled “Option 3 — IKENGA_BUN_PATH environment variable”

Set IKENGA_BUN_PATH to the absolute path of any bun binary before launching the shell:

Terminal window
IKENGA_BUN_PATH=/opt/bun/bin/bun ikenga

A binary provided this way is trusted without checksum verification — you are asserting that you control the binary. It takes precedence over all other resolution paths. The variable is not read by the install script; set it in your shell profile (.bashrc, .zshrc, etc.) or via a .env file if your deployment platform supports one.