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
string
Devbox name
string
Snapshot ID to use (alias: —snapshot)
string
Snapshot ID to use
string
Blueprint name or ID to use
string
Resource size (X_SMALL, SMALL, MEDIUM, LARGE, X_LARGE, XX_LARGE)
string
Architecture (arm64, x86_64)
string
Entrypoint command to run
string[]
Initialization commands to run on startup
string[]
Environment variables (format: KEY=value)
string[]
Secrets to inject as environment variables (format: ENV_VAR=SECRET_NAME)
string[]
Code mount configurations (JSON format)
string
Idle time in seconds before idle action
string
Action on idle (shutdown, suspend)
string[]
Available ports
boolean
Run as root
string
Run as this user (format: username:uid)
string
Network policy ID to apply
string
Tunnel authentication mode (open, authenticated)
string[]
Gateway configurations (format: ENV_PREFIX=gateway_id_or_name,secret_id_or_name)
string[]
MCP configurations (format: ENV_VAR_NAME=mcp_config_id_or_name,secret_id_or_name)
List all devboxes
string
Filter by status (initializing, running, suspending, suspended, resuming, failure, shutdown)
string
default:"20"
Max results
Shutdown a devbox
Execute a command in a devbox
string
Shell name to use (optional)
Upload a file to a devbox
string
Target path in devbox
Get devbox details
Suspend a devbox
Resume a suspended devbox
Shutdown a devbox
SSH into a devbox
boolean
Print SSH config only
boolean
Do not wait for devbox to be ready
string
default:"180"
Timeout in seconds to wait for readiness
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)
string
Additional scp options (quoted)
Sync files to/from a devbox using rsync (e.g. rli devbox rsync dbx_id:/remote ./local)
string
Additional rsync options (quoted)
Create a port-forwarding tunnel to a devbox
boolean
Open the tunnel URL in browser automatically
Read a file from a devbox using the API
string
Remote file path to read from the devbox
Write a file to a devbox using the API
string
Local file path to read contents from
string
Remote file path to write to on the devbox
Download a file from a devbox
string
Path to the file in the devbox
Execute a command asynchronously on a devbox
string
Shell name to use (optional)
Get status of an async execution
Send stdin to a running async execution
string
Text content to send to stdin
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
string[]
required
Agent(s) to run. Format: agent:model (e.g., claude-code:claude-sonnet-4-6). Can specify multiple.
string
Benchmark ID or name to run
string[]
Scenario IDs to run (alternative to —benchmark)
string
Name for this job
string[]
Environment variables (format: KEY=value)
string[]
Secrets to inject (format: ENV_VAR=SECRET_NAME)
string
default:"7200"
Agent timeout in seconds
string
default:"1"
Number of attempts per scenario
string
default:"10"
Number of concurrent trials
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
boolean
Show individual scenario results
List benchmark jobs
string
default:"1"
Show jobs from the last N days
boolean
Show all jobs (no time filter)
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
string
Output directory for logs
string
Download logs for a specific benchmark run only
string
Download logs for a specific scenario run only

Snapshot Commands

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

Blueprint Commands

List all blueprints
string
Filter by blueprint name
string
default:"20"
Max results
Create a new blueprint
string
required
Blueprint name (required)
string
Dockerfile contents
string
Dockerfile path
string[]
System setup commands
string
Resource size (X_SMALL, SMALL, MEDIUM, LARGE, X_LARGE, XX_LARGE)
string
Architecture (arm64, x86_64)
string[]
Available ports
boolean
Run as root
string
Run as this user (format: username:uid)
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
boolean
Show what would be deleted without actually deleting
boolean
Skip confirmation prompt
string
default:"1"
Number of successful builds to keep
Create a blueprint from a Dockerfile with build context support
string
required
Blueprint name (required)
string
Build context directory (default: current directory)
string
Dockerfile path (default: Dockerfile in build context)
string[]
System setup commands
string
Resource size (X_SMALL, SMALL, MEDIUM, LARGE, X_LARGE, XX_LARGE)
string
Architecture (arm64, x86_64)
string[]
Available ports
boolean
Run as root
string
Run as this user (format: username:uid)
string[]
Metadata tags (format: key=value)
string
TTL in seconds for the build context object (default: 3600)

Object Commands

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

Network-policy Commands

List network policies
string
default:"20"
Max results
string
Starting point for pagination
string
Filter by name
Get network policy details
Create a new network policy
string
required
Policy name (required)
string
Policy description
boolean
Allow all egress traffic
boolean
Allow devbox-to-devbox communication
boolean
Allow Agent gateway access
boolean
Allow MCP gateway access
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
string
default:"20"
Max results
Get secret metadata by name
Update a secret value (value from stdin or secure prompt)
Delete a secret
boolean
Skip confirmation prompt

Gateway-config Commands

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

Mcp-config Commands

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

Mcp Commands

Start the MCP server
boolean
Use HTTP/SSE transport instead of stdio
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:
flag
JSON output for programmatic parsing
flag
YAML output for configuration files
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