@runloop/rl-cli
v0.1.2
Published
Beautiful CLI for Runloop devbox management
Maintainers
Readme
Runloop CLI
A beautiful, interactive CLI for managing Runloop devboxes built with Ink and TypeScript.
Features
- 🎨 Beautiful terminal UI with colors and gradients
- ⚡ Fast and responsive with pagination
- 🔐 Secure API key management
- 📦 Manage devboxes, snapshots, and blueprints
- 🚀 Execute commands in devboxes
- 📤 Upload files to devboxes
- 🎯 Organized command structure with aliases
- 🤖 Model Context Protocol (MCP) server for AI integration
Installation
Install globally via npm:
npm install -g @runloop/rl-cliOr install from source:
git clone https://github.com/runloop/rl-cli-node.git
cd rl-cli-node
npm install
npm run build
npm linkSetup
Configure your API key using either method:
Option 1: Environment Variable (Recommended for CI/CD)
export RUNLOOP_API_KEY=your_api_key_hereOption 2: Interactive Setup
rli authGet your API key from https://runloop.ai/settings
Usage
Authentication
# Interactive setup (stores API key locally)
rli auth
# Or use environment variable
export RUNLOOP_API_KEY=your_api_key_hereThe CLI will automatically use RUNLOOP_API_KEY if set, otherwise it will use the stored configuration.
Devbox Commands
# Create devboxes
rli devbox create # Create with auto-generated name
rli devbox create --name my-devbox # Create with custom name
rli devbox create --template nodejs # Create from template
rli d create -n my-devbox # Short alias
# List devboxes (paginated)
rli devbox list # List all devboxes
rli devbox list --status running # Filter by status
rli d list # Short alias
# Execute commands
rli devbox exec <devbox-id> echo "Hello" # Run a command
rli devbox exec <devbox-id> ls -la # List files
rli d exec <id> <command> # Short alias
# Upload files
rli devbox upload <devbox-id> ./file.txt # Upload to home
rli devbox upload <id> ./file.txt -p /path # Upload to specific path
rli d upload <id> <file> # Short alias
# Delete devboxes
rli devbox delete <devbox-id> # Shutdown a devbox
rli devbox rm <devbox-id> # Alias
rli d delete <id> # Short aliasSnapshot Commands
# Create snapshots
rli snapshot create <devbox-id> # Create snapshot
rli snapshot create <id> --name backup-1 # Create with name
rli snap create <id> # Short alias
# List snapshots (paginated)
rli snapshot list # List all snapshots
rli snapshot list --devbox <id> # Filter by devbox
rli snap list # Short alias
# Delete snapshots
rli snapshot delete <snapshot-id> # Delete snapshot
rli snapshot rm <snapshot-id> # Alias
rli snap delete <id> # Short aliasBlueprint Commands
# List blueprints
rli blueprint list # List blueprints (coming soon)
rli bp list # Short aliasCommand Structure
The CLI is organized into command buckets:
devbox(alias:d) - Manage devboxescreate- Create new devboxeslist- List devboxes with paginationexec- Execute commandsupload- Upload filesdelete(alias:rm) - Shutdown devboxes
snapshot(alias:snap) - Manage snapshotscreate- Create snapshotslist- List snapshots with paginationdelete(alias:rm) - Delete snapshots
blueprint(alias:bp) - Manage blueprintslist- List blueprints (coming soon)
mcp- Model Context Protocol server for AI integrationinstall- Install MCP configuration in Claude Desktopstart- Start the MCP server (stdio or HTTP mode)
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 8080Documentation:
- CLAUDE_SETUP.md - Complete setup guide for Claude Desktop
- MCP_README.md - Full MCP documentation
- MCP_COMMANDS.md - Quick command reference
Interactive Features
- Pagination - Lists show 10 items per page with keyboard navigation
n- Next pagep- Previous pageq- Quit
- Beautiful UI - Gradient text, colored borders, Unicode icons
- Real-time Status - Spinners and progress indicators
- Summary Stats - Count running, stopped, and total resources
Development
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run dev
# Run CLI
npm start -- <command>Tech Stack
- Ink - React for CLIs
- Ink Gradient - Gradient text
- Ink Big Text - ASCII art
- Commander.js - CLI framework
- @runloop/api-client - Runloop API client
- TypeScript - Type safety
- Figures - Unicode symbols
Publishing
To publish a new version to npm:
npm run build
npm publishNote: Make sure you're logged in to npm with access to the @runloop organization.
License
MIT
