fbx v0.1.0 — macOS & Linux

Run it in a sandbox

The fbx command-line client for Firebox.

One command to install, one to configure, one to run. Your code executes inside its own Firecracker microVM — then the sandbox is destroyed. Nothing touches your machine.

Install

Single static binary, no dependencies. Pick your platform:

$ curl -sL https://getfirebox.dev/downloads/fbx-darwin-arm64 \
    -o /usr/local/bin/fbx && chmod +x /usr/local/bin/fbx
$ curl -sL https://getfirebox.dev/downloads/fbx-darwin-amd64 \
    -o /usr/local/bin/fbx && chmod +x /usr/local/bin/fbx
$ curl -sL https://getfirebox.dev/downloads/fbx-linux-amd64 \
    -o /usr/local/bin/fbx && chmod +x /usr/local/bin/fbx
$ curl -sL https://getfirebox.dev/downloads/fbx-linux-arm64 \
    -o /usr/local/bin/fbx && chmod +x /usr/local/bin/fbx

Prefer a manual download? macOS · Apple Silicon · macOS · Intel · Linux · x86_64 · Linux · ARM64

Quickstart

Install, configure, run — under a minute.

1

Install

Download the fbx binary for your platform and put it on your PATH.

2

Configure

fbx config set-key <your-api-key> — grab a key from the Firebox dashboard (Keys tab). Or set FBX_API_KEY as an environment variable instead.

3

Run code

fbx run script.py — creates a sandbox, uploads your file, executes it with the right interpreter, prints the output, and always deletes the sandbox.

Command reference

Everything fbx can do. Run fbx --help or fbx <command> --help for full details.

CommandWhat it does
fbx run <file>Create a sandbox, upload the file, run it (.py → python3, .js → node, .sh → bash), print output, delete the sandbox. Exit code is the remote command’s.
fbx exec <id> -- <cmd>Run a command inside an existing sandbox.
fbx sandbox createCreate a sandbox. --template python picks the image.
fbx sandbox listList your sandboxes.
fbx sandbox get <id>Show sandbox details.
fbx sandbox delete <id>Delete a sandbox.
fbx template listList available templates.
fbx config getShow config (API key masked).

Built for scripting

Stdout is clean (sandbox output only); metadata goes to stderr — so fbx is pipe-friendly.

# capture just the program output
$ result=$(fbx run calc.py 2>/dev/null)

# long-lived sandbox for iterative work
$ sb=$(fbx sandbox create --template python | awk '/^id:/{print $2}')
$ fbx exec $sb -- pip install requests
$ fbx exec $sb -- python3 -c "import requests; print('ok')"
$ fbx sandbox delete $sb