Skip to content

An interactive CLI for interacting with the Runloop.ai platform. Use it as an interactive command-line application with rich UI components, or as a traditional CLI for scripting and automation.

License

Notifications You must be signed in to change notification settings

runloopai/rl-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

237 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Runloop CLI

npm version CI License: MIT

A TUI + CLI for the Runloop.ai platform. Use it as an interactive TUI (Terminal User Interface) with rich UI components, or as a traditional CLI for scripting and automation.

πŸ“– Full Documentation

Runloop CLI Demo

Quick Example

# TUI mode - launches an interactive terminal UI
rli

# CLI mode - perfect for scripts and automation
rli devbox list                    # Outputs JSON/text
rli devbox create --name my-devbox
rli devbox exec <devbox-id> echo "Hello World"
rli devbox delete <devbox-id>

Features

  • πŸ–₯️ TUI mode β€” Interactive terminal UI with menus, tables, and real-time updates
  • 🎯 CLI mode β€” Traditional commands with text, JSON, and YAML output for scripting
  • ⚑ Fast and responsive with pagination
  • πŸ“¦ Manage devboxes, snapshots, and blueprints
  • πŸš€ Execute commands, SSH, view logs in devboxes
  • πŸ€– Model Context Protocol (MCP) server for AI integration

Installation

Install globally via npm or pnpm:

npm install -g @runloop/rl-cli
# or
pnpm add -g @runloop/rl-cli

Setup

Configure your API key:

export RUNLOOP_API_KEY=your_api_key_here

Get your API key from https://runloop.ai/settings

Usage

TUI (Interactive Mode)

rli                    # Launch the interactive TUI
rli --help             # See help information

CLI (Scripting Mode)

All commands support --output (-o) for format control:

rli devbox list                      # Default text output
rli devbox list -o json              # JSON output
rli devbox list -o yaml              # YAML output

Command Structure

The CLI is organized into command buckets:

Devbox Commands (alias: d)

rli devbox create                        # Create a new devbox
rli devbox list                          # List all devboxes
rli devbox delete <id>                   # Shutdown a devbox
rli devbox exec <id> <command...>        # Execute a command in a devbox
rli devbox exec-async <id> <command...>  # Execute a command asynchronously on a...
rli devbox upload <id> <file>            # Upload a file to a devbox
rli devbox get <id>                      # Get devbox details
rli devbox get-async <id> <execution-id> # Get status of an async execution
rli devbox suspend <id>                  # Suspend a devbox
rli devbox resume <id>                   # Resume a suspended devbox
rli devbox shutdown <id>                 # Shutdown a devbox
rli devbox ssh <id>                      # SSH into a devbox
rli devbox scp <src> <dst>               # Copy files to/from a devbox using scp...
rli devbox rsync <src> <dst>             # Sync files to/from a devbox using rsy...
rli devbox tunnel <id> <ports>           # Create a port-forwarding tunnel to a ...
rli devbox read <id>                     # Read a file from a devbox using the API
rli devbox write <id>                    # Write a file to a devbox using the API
rli devbox download <id>                 # Download a file from a devbox
rli devbox send-stdin <id> <execution-id> # Send stdin to a running async execution
rli devbox logs <id>                     # View devbox logs

Snapshot Commands (alias: snap)

rli snapshot list                        # List all snapshots
rli snapshot create <devbox-id>          # Create a snapshot of a devbox
rli snapshot delete <id>                 # Delete a snapshot
rli snapshot get <id>                    # Get snapshot details
rli snapshot prune <devbox-id>           # Delete old snapshots for a devbox, ke...
rli snapshot status <snapshot-id>        # Get snapshot operation status

Blueprint Commands (alias: bp)

rli blueprint list                       # List all blueprints
rli blueprint create                     # Create a new blueprint
rli blueprint get <name-or-id>           # Get blueprint details by name or ID (...
rli blueprint logs <name-or-id>          # Get blueprint build logs by name or I...
rli blueprint delete <id>                # Delete a blueprint by ID
rli blueprint prune <name>               # Delete old blueprint builds, keeping ...
rli blueprint from-dockerfile            # Create a blueprint from a Dockerfile ...

Object Commands (alias: obj)

rli object list                          # List objects
rli object get <id>                      # Get object details
rli object download <id> <path>          # Download object to local file
rli object upload <path>                 # Upload a file as an object
rli object delete <id>                   # Delete an object (irreversible)

Network-policy Commands (alias: np)

rli network-policy list                  # List network policies
rli network-policy get <id>              # Get network policy details
rli network-policy create                # Create a new network policy
rli network-policy delete <id>           # Delete a network policy

Secret Commands (alias: s)

rli secret create <name>                 # Create a new secret. Value can be pip...
rli secret list                          # List all secrets
rli secret get <name>                    # Get secret metadata by name
rli secret update <name>                 # Update a secret value (value from std...
rli secret delete <name>                 # Delete a secret

Gateway-config Commands (alias: gwc)

rli gateway-config list                  # List gateway configurations
rli gateway-config create                # Create a new gateway configuration
rli gateway-config get <id>              # Get gateway configuration details
rli gateway-config update <id>           # Update a gateway configuration
rli gateway-config delete <id>           # Delete a gateway configuration

Mcp Commands

rli mcp start                            # Start the MCP server
rli mcp install                          # Install Runloop MCP server configurat...

MCP Server (AI Integration)

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

Quick Setup for Claude Desktop

# Install MCP configuration
rli mcp install

# Restart Claude Desktop, then ask Claude:
# "List my devboxes" or "Create a new devbox"

Starting the Server

# Stdio mode (for Claude Desktop)
rli mcp start

# HTTP mode (for web/remote access)
rli mcp start --http
rli mcp start --http --port 8080

Documentation:

Theme Configuration

The TUI supports both light and dark terminal themes and will automatically select the appropriate theme.

Development

# Install dependencies
pnpm install

# Build
pnpm run build

# Watch mode
pnpm run dev

## Contributing

We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines on how to contribute to this project.

## License

MIT

About

An interactive CLI for interacting with the Runloop.ai platform. Use it as an interactive command-line application with rich UI components, or as a traditional CLI for scripting and automation.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 9