Migration: CLI is now
@isol8/cli (installed as isol8 command).isol8 CLI.
Global option
flag
Enables debug logs for CLI internals and engine operations.
isol8 run
isol8 run streams output by default. Use --no-stream only when you want buffered output after execution completes.Input and runtime flags
argument
Script file path. Runtime is auto-detected from extension unless
--runtime is provided.string
Inline code to execute.
python | node | bun | deno | bash | agent
Force runtime instead of extension-based detection. The
agent runtime must always be specified explicitly (no file extension mapping).string
Explicit stdin payload for the execution process.
string
default:"/sandbox"
Working directory for the main code execution. Accepts an absolute path under
/sandbox or a
relative path resolved from /sandbox. Paths that escape the sandbox boundary are rejected.Security and resource flags
none | host | filtered
default:"none"
Sets the network egress mode for the container.
none: Blocks all network access (default).filtered: Routes traffic through a proxy with whitelist/blacklist enforcement.host: Allows full host network access (use with extreme caution).
--install is used and --net is not explicitly provided, CLI automatically uses filtered.repeatable
Adds a regex pattern to the whitelist in
filtered mode. Only hostnames matching at least one allow pattern will be permitted.repeatable
Blacklist pattern for filtered mode.
number
Timeout in milliseconds for package installation and code execution.
string
Memory limit (
512m, 1g, etc.).number
CPU limit as fraction/cores.
number
default:"64"
Maximum number of processes.
number
default:"1048576"
Maximum output size before truncation.
string
default:"512m"
/sandbox tmpfs size.string
default:"256m"
/tmp tmpfs size.State and behavior flags
flag
Use persistent mode (
mode=persistent).flag
Keep container alive after execution finishes.
flag
Disable realtime streaming and use buffered
execute() path.repeatable
Install package before execution.In
filtered mode, CLI automatically merges default runtime package registry hosts into the allowlist.
Explicit --net is never overridden.repeatable
Inline shell command or path to a script file to run before the main code execution. Runs as the
sandbox user from /sandbox. If the value is an existing file path, its contents are read and
used as the script. Multiple --setup flags are concatenated with newlines. Useful for cloning
repos, creating directories, configuring tools, etc.repeatable
Inject secret env vars and mask values in output.
string
Extra flags passed to the
pi coding agent before the prompt. Only valid with --runtime agent.
Common flags: --model <name>, --thinking, --max-tokens <n>.string
Recursively inject a local directory into the container under
/sandbox. Skips .git, node_modules, __pycache__, .venv, venv, and .tox directories. Useful with the agent runtime to provide project files for the agent to work on.string
Write stdout to local file.
string
Override runtime image.
flag
Enable network request logs in results (filtered mode).
Remote execution flags
string
Execute against remote
isol8 serve instance.string
API key for remote execution (
ISOL8_API_KEY fallback).string
Use a named persistent session on the remote server. The session survives after the CLI exits and can be resumed by passing the same ID again.Implies
--persistent — you do not need to pass both.
Requires --host — session IDs are a server-side concept.Examples
isol8 setup
prebuiltImages declared in isol8.config.json.
flag
Force rebuild even when images are up to date.
If your config defines
prebuiltImages, isol8 setup will also check each one and build any that don’t already exist locally.isol8 serve
number
default:"3000"
Port for server listener. Resolution order is
--port > ISOL8_PORT > PORT > 3000.
If the selected port is occupied, the CLI prompts to choose a different port or automatically finds an available one.string
API key for bearer auth. If omitted,
ISOL8_API_KEY environment variable is used.
When --auth-db is also provided, this key becomes the master key with admin privileges.string
Enable DB-backed API key management. When provided without a value or with a file path, uses SQLite (defaults to
~/.isol8/auth.db).
Pass a postgres:// or postgresql:// URL for PostgreSQL, or a mysql:// URL for MySQL.
The backend is auto-detected from the connection string format.
When enabled, the --key value becomes the master key, and additional keys can be created
via the /auth/keys endpoint or the isol8 login flow. See Server overview for the full authentication model.flag
Force re-download of standalone server binary.
flag
Enable debug logs for server internals.
Examples
For full server behavior and endpoints, see the Server docs tab: Server overview and Server routes.
isol8 login
POST /auth/login and stores the credentials locally.
string
required
Server URL to authenticate against (e.g.
http://localhost:3000).string
required
Master API key for the server. This is the same key passed to
isol8 serve --key.string
Optional human-readable name for the login token. Defaults to
cli-login-<timestamp>.number
Token time-to-live in milliseconds. Defaults to 24 hours (
86400000).~/.isol8/credentials.json (file permissions 0600). Subsequent isol8 run --host <url> commands automatically use the stored token without needing --key.
Credential resolution priority
When running remote commands (isol8 run --host ...), the CLI resolves the API key in this order:
--keyflag (explicit, always wins)ISOL8_API_KEYenvironment variable- Stored credentials from
~/.isol8/credentials.json(if host matches and token is not expired)
Examples
isol8 logout
~/.isol8/credentials.json. This does not revoke the token on the server — it only deletes the local credential file.
Examples
isol8 session
Manage persistent sessions on a remote server.
isol8 session list
string
required
Remote server URL.
string
API key (
ISOL8_API_KEY fallback, or stored credentials from isol8 login).flag
Print raw JSON array instead of the formatted table.
Examples
isol8 session stop
argument
required
Session ID to destroy.
string
required
Remote server URL.
string
API key (
ISOL8_API_KEY fallback, or stored credentials from isol8 login).Examples
isol8 build
Build a custom runtime image with pre-baked dependencies and/or a setup script.
python | node | bun | deno | bash
required
Runtime base image to extend.
repeatable
Package to bake into the image. Supports repeated flags and comma-separated values.
repeatable
Shell command or file path baked into the image. Runs automatically before every
execution that uses this image. When an execution request also carries its own
--setup, the image-level script runs first followed by the request-level script.
If the value points to an existing file, its content is read; otherwise the value
is treated as a literal shell command.string
required
Name/tag for the custom image (e.g.
my-python-ml:latest). Metadata labels are embedded automatically.flag
Force rebuild even if current inputs resolve to an existing up-to-date image.
Examples
isol8 list-custom
List all locally available custom isol8 images.
isol8 config
isol8 cleanup
flag
Print resolved config as JSON.
isol8 cleanup
flag
Skip confirmation prompt.
flag
Also remove isol8 Docker images.
FAQ
What is the difference between `--persistent` and `--persist`?
What is the difference between `--persistent` and `--persist`?
--persistent sets execution mode to persistent (reuses container state across runs). --persist keeps the container alive after a run for inspection/debugging.What is the difference between `--persistent` and `--session-id`?
What is the difference between `--persistent` and `--session-id`?
--persistent creates a persistent session with an auto-generated ID that is destroyed when the CLI exits. --session-id assigns a user-chosen name and keeps the session alive on the server after the CLI exits, so you can reconnect later with the same ID.Do I need `--key` for `isol8 serve` every time?
Do I need `--key` for `isol8 serve` every time?
No.
isol8 serve accepts --key, but it can also read the API key from ISOL8_API_KEY.What is the difference between `--key` and `--auth-db`?
What is the difference between `--key` and `--auth-db`?
--key sets a single static API key (or master key). --auth-db enables database-backed key management (SQLite, PostgreSQL, or MySQL) where you can create, list, and revoke multiple keys via the /auth/* endpoints. Both can be used together — the --key becomes the master key when --auth-db is enabled.Do I need to run `isol8 login` to use remote execution?
Do I need to run `isol8 login` to use remote execution?
No. You can always pass
--key explicitly or set ISOL8_API_KEY. isol8 login is a convenience that stores credentials locally so you don’t have to provide the key on every command.Why does `isol8 run` print output in real time?
Why does `isol8 run` print output in real time?
Streaming is the default behavior. Use
--no-stream if you want buffered output only after the run completes.What is the agent runtime?
What is the agent runtime?
The
agent runtime runs the pi coding agent inside an isol8 sandbox. The -e value is treated as the prompt, not code. It requires --net filtered with an --allow entry for the LLM API, and an API key via --secret. The CLI automatically raises pidsLimit to 200 and sandboxSize to 2g for agent runs.Troubleshooting quick checks
[ERR] --session-id requires --host:--session-idis a server feature; add--host <url>.[ERR] API key requiredonserveor remoterun: pass--keyor setISOL8_API_KEY.isol8 loginfails with 400: the server does not have--auth-dbenabled. Restart the server with--auth-db <path>.- Stored credentials expired: run
isol8 loginagain to re-authenticate. - Runtime not detected from file extension: pass
--runtime <name>explicitly. - No output appears while command runs: check if
--no-streamis enabled. - Filtered mode still blocks host: verify
--allowregex matches hostname exactly. - Agent runtime fails with network error: ensure
--net filteredand--alloware set. The agent runtime enforces filtered networking with at least one whitelist entry. - Agent runtime out of disk space: increase
--sandbox-size(default 2g for agent). Large repos may need 4g+.
See also
Option mapping
Map each CLI flag to config, API, and library equivalents.
Configuration reference
Full config schema, defaults, and precedence rules.
Troubleshooting
Diagnose and fix common CLI/runtime failures quickly.