Skip to main content
The Runloop CLI (rli) provides both an interactive terminal UI and traditional CLI commands for managing your Runloop resources.

npm Package

@runloop/rl-cli

GitHub Repository

runloopai/rl-cli

Installation

Setup

Configure your API key:
Get your API key from the Settings page in the Runloop Dashboard.

Quick Start

Launch the interactive UI with a beautiful terminal interface:
Navigate with arrow keys, select with Enter, and manage all your resources visually.
Runloop CLI Interactive Mode

Search Devboxes

Press / to search and filter through your devboxes by name or ID.
Search devboxes in interactive mode

SSH to Devbox

From the interactive menu, select a devbox and choose SSH to open a secure shell session directly into your devbox. The CLI handles all the SSH key setup and connection details automatically.
SSH into a Devbox

Command Groups

Devbox

Create, manage, and interact with devboxes

Benchmark Job

Run and manage orchestrated benchmarks

Snapshot

Create and manage devbox snapshots

Blueprint

Manage reusable devbox templates

Object

Upload and manage file objects

Command Reference

Devbox Commands

Create a new devbox
name
string
Devbox name
template
string
Snapshot ID to use (alias: —snapshot)
snapshot
string
Snapshot ID to use
blueprint
string
Blueprint name or ID to use
resources
string
Resource size (X_SMALL, SMALL, MEDIUM, LARGE, X_LARGE, XX_LARGE)
architecture
string
Architecture (arm64, x86_64)
entrypoint
string
Entrypoint command to run
launch-commands
string[]
Initialization commands to run on startup
env-vars
string[]
Environment variables (format: KEY=value)
secrets
string[]
Secrets to inject as environment variables (format: ENV_VAR=SECRET_NAME)
code-mounts
string[]
Code mount configurations (JSON format)
idle-time
string
Idle time in seconds before idle action
idle-action
string
Action on idle (shutdown, suspend)
available-ports
string[]
Available ports
root
boolean
Run as root
user
string
Run as this user (format: username:uid)
network-policy
string
Network policy ID to apply
tunnel
string
Tunnel authentication mode (open, authenticated)
gateways
string[]
Gateway configurations (format: ENV_PREFIX=gateway_id_or_name,secret_id_or_name)
mcp
string[]
MCP configurations (format: ENV_VAR_NAME=mcp_config_id_or_name,secret_id_or_name)
List all devboxes
status
string
Filter by status (initializing, running, suspending, suspended, resuming, failure, shutdown)
limit
string
default:"20"
Max results
Shutdown a devbox
Execute a command in a devbox
shell-name
string
Shell name to use (optional)
Upload a file to a devbox
path
string
Target path in devbox
Get devbox details
Suspend a devbox
Resume a suspended devbox
Shutdown a devbox
SSH into a devbox
config-only
boolean
Print SSH config only
no-wait
boolean
Do not wait for devbox to be ready
timeout
string
default:"180"
Timeout in seconds to wait for readiness
poll-interval
string
default:"3"
Polling interval in seconds while waiting
Copy files to/from a devbox using scp (e.g. rli devbox scp dbx_id:/remote ./local)
scp-options
string
Additional scp options (quoted)
Sync files to/from a devbox using rsync (e.g. rli devbox rsync dbx_id:/remote ./local)
rsync-options
string
Additional rsync options (quoted)
Create a port-forwarding tunnel to a devbox
open
boolean
Open the tunnel URL in browser automatically
Read a file from a devbox using the API
remote
string
Remote file path to read from the devbox
Write a file to a devbox using the API
input
string
Local file path to read contents from
remote
string
Remote file path to write to on the devbox
Download a file from a devbox
file-path
string
Path to the file in the devbox
Execute a command asynchronously on a devbox
shell-name
string
Shell name to use (optional)
Get status of an async execution
Send stdin to a running async execution
text
string
Text content to send to stdin
signal
string
Signal to send (EOF, INTERRUPT)
View devbox logs

Benchmark Job Commands

Run orchestrated benchmarks at cloud scale. See Orchestrated Benchmarks for detailed usage.
Run a benchmark job with one or more agents
agent
string[]
required
Agent(s) to run. Format: agent:model (e.g., claude-code:claude-sonnet-4-6). Can specify multiple.
benchmark
string
Benchmark ID or name to run
scenarios
string[]
Scenario IDs to run (alternative to —benchmark)
job-name
string
Name for this job
env-vars
string[]
Environment variables (format: KEY=value)
secrets
string[]
Secrets to inject (format: ENV_VAR=SECRET_NAME)
timeout
string
default:"7200"
Agent timeout in seconds
n-attempts
string
default:"1"
Number of attempts per scenario
n-concurrent-trials
string
default:"10"
Number of concurrent trials
timeout-multiplier
string
default:"1.0"
Timeout multiplier
Supported public agents: claude-code, codex, opencode, goose, gemini-cli
Watch benchmark job progress in real-time (full-screen)
Get benchmark job summary and results
extended
boolean
Show individual scenario results
List benchmark jobs
days
string
default:"1"
Show jobs from the last N days
all
boolean
Show all jobs (no time filter)
status
string
Filter by status (comma-separated). Valid: initializing, queued, running, completed, failed, cancelled, timeout
Download devbox logs for all scenario runs in a benchmark job
output-dir
string
Output directory for logs
run
string
Download logs for a specific benchmark run only
scenario
string
Download logs for a specific scenario run only

Snapshot Commands

List all snapshots
devbox
string
Filter by devbox ID
limit
string
default:"20"
Max results
Create a snapshot of a devbox
name
string
Snapshot name
Delete a snapshot
Get snapshot details
Delete old snapshots for a devbox, keeping only recent ready ones
dry-run
boolean
Show what would be deleted without actually deleting
yes
boolean
Skip confirmation prompt
keep
string
default:"1"
Number of ready snapshots to keep
Get snapshot operation status

Blueprint Commands

List all blueprints
name
string
Filter by blueprint name
limit
string
default:"20"
Max results
Create a new blueprint
name
string
required
Blueprint name (required)
dockerfile
string
Dockerfile contents
dockerfile-path
string
Dockerfile path
system-setup-commands
string[]
System setup commands
resources
string
Resource size (X_SMALL, SMALL, MEDIUM, LARGE, X_LARGE, XX_LARGE)
architecture
string
Architecture (arm64, x86_64)
available-ports
string[]
Available ports
root
boolean
Run as root
user
string
Run as this user (format: username:uid)
metadata
string[]
Metadata tags (format: key=value)
Get blueprint details by name or ID (IDs start with bpt_)
Get blueprint build logs by name or ID (IDs start with bpt_)
Delete a blueprint by ID
Delete old blueprint builds, keeping only recent successful ones
dry-run
boolean
Show what would be deleted without actually deleting
yes
boolean
Skip confirmation prompt
keep
string
default:"1"
Number of successful builds to keep
Create a blueprint from a Dockerfile with build context support
name
string
required
Blueprint name (required)
build-context
string
Build context directory (default: current directory)
dockerfile
string
Dockerfile path (default: Dockerfile in build context)
system-setup-commands
string[]
System setup commands
resources
string
Resource size (X_SMALL, SMALL, MEDIUM, LARGE, X_LARGE, XX_LARGE)
architecture
string
Architecture (arm64, x86_64)
available-ports
string[]
Available ports
root
boolean
Run as root
user
string
Run as this user (format: username:uid)
metadata
string[]
Metadata tags (format: key=value)
ttl
string
TTL in seconds for the build context object (default: 3600)

Object Commands

List objects
limit
string
default:"20"
Max results
starting-after
string
Starting point for pagination
name
string
Filter by name (partial match supported)
content-type
string
Filter by content type
state
string
Filter by state (UPLOADING, READ_ONLY, DELETED)
Search by object ID or name
public
boolean
List public objects only
Get object details
Download object to local file
extract
boolean
Extract downloaded archive after download
duration-seconds
string
default:"3600"
Duration in seconds for the presigned URL validity
Upload a file as an object
name
string
Object name (required)
content-type
string
Content type: unspecified|text|binary|gzip|tar|tgz
public
boolean
Make object publicly accessible
Delete an object (irreversible)

Network-policy Commands

List network policies
limit
string
default:"20"
Max results
starting-after
string
Starting point for pagination
name
string
Filter by name
Get network policy details
Create a new network policy
name
string
required
Policy name (required)
description
string
Policy description
allow-all
boolean
Allow all egress traffic
allow-devbox-to-devbox
boolean
Allow devbox-to-devbox communication
allow-agent-gateway
boolean
Allow Agent gateway access
allow-mcp-gateway
boolean
Allow MCP gateway access
allowed-hostnames
string[]
List of allowed hostnames for egress
Delete a network policy

Secret Commands

Create a new secret. Value can be piped via stdin (e.g., echo ‘val’ | rli secret create name) or entered interactively with masked input for security.
List all secrets
limit
string
default:"20"
Max results
Get secret metadata by name
Update a secret value (value from stdin or secure prompt)
Delete a secret
yes
boolean
Skip confirmation prompt

Gateway-config Commands

List gateway configurations
name
string
Filter by name
limit
string
default:"20"
Max results
Create a new gateway configuration
name
string
required
Gateway config name (required)
endpoint
string
required
Target endpoint URL (required)
bearer-auth
boolean
Use Bearer token authentication (default)
header-auth
string
Use custom header authentication (specify header key name)
description
string
Description
Get gateway configuration details
Update a gateway configuration
name
string
New name
endpoint
string
New endpoint URL
bearer-auth
boolean
Use Bearer token authentication
header-auth
string
Use custom header authentication (specify header key name)
description
string
New description
Delete a gateway configuration

Mcp-config Commands

List MCP configurations
name
string
Filter by name
limit
string
default:"20"
Max results
Create a new MCP configuration
name
string
required
MCP config name (required)
endpoint
string
required
Target endpoint URL (required)
allowed-tools
string
required
Allowed tool patterns, comma-separated (required, e.g. '' or ‘github.search_,github.get_*’)
description
string
Description
Get MCP configuration details
Update an MCP configuration
name
string
New name
endpoint
string
New endpoint URL
allowed-tools
string
New allowed tool patterns, comma-separated
description
string
New description
Delete an MCP configuration

Mcp Commands

Start the MCP server
http
boolean
Use HTTP/SSE transport instead of stdio
port
string
Port to listen on for HTTP mode (default: 3000)
Install Runloop MCP server configuration in Claude Desktop

Scenario Commands

Display scenario definition details

MCP Server (AI Integration)

The CLI includes a Model Context Protocol (MCP) server that allows AI assistants like Claude to interact with your devboxes.

Quick Setup for Claude Desktop

After installation, restart Claude Desktop and ask Claude to “List my devboxes” or “Create a new devbox”.

Server Modes

Standard input/output mode for Claude Desktop integration.

Output Formats

All commands support multiple output formats via the --output flag:
--output json
flag
JSON output for programmatic parsing
--output yaml
flag
YAML output for configuration files
--output text
flag
Plain text output for human readability

Contributing

The Runloop CLI is open-source. We welcome contributions!

GitHub Repository

View source code and submit PRs

Report Issues

Report bugs or request features