
Cmux
- 3.7k installs
- 1.1k repo stars
- Updated August 3, 2026
- manaflow-ai/manaflow
cmux is a CLI that provisions cloud development sandboxes, syncs local files to remote VMs, and provides browser automation via Chrome CDP.
About
cmux is a CLI tool for provisioning and managing remote cloud development sandboxes. Developers use it to spin up isolated VMs, sync local project directories to the cloud, and access environments via VS Code, VNC, or interactive terminal sessions. Key workflows include local-to-cloud directory sync with cmux start, bidirectional file transfer with upload/download commands, and headless browser automation via Chrome CDP using the cmux computer subcommand suite for navigation, element interaction, screenshots, and accessibility tree inspection. It supports Docker-enabled sandboxes, sandbox lifecycle management, and one-off command execution. The tool enforces security rules around E2B port-forwarded URLs, directing developers to use VNC for dev server access instead of raw public URLs. Provisions cloud sandboxes from local directories with cmux start, syncing files automatically and returning a sandbox ID Provides browser automation via Chrome CDP with commands for navigation, element clicking, form filling, screenshots, and accessibility snapshots
- Provisions cloud sandboxes from local directories with cmux start, syncing files automatically and returning a sandbox I
- Provides browser automation via Chrome CDP with commands for navigation, element clicking, form filling, screenshots, an
- Supports bidirectional file transfer with upload/download, including watch mode, exclusion patterns, and remote path tar
- Offers multiple access modes: VS Code in browser via cmux code, VNC desktop via cmux vnc, and interactive terminal via c
- Enforces security by prohibiting exposure of unauthenticated E2B port-forwarded URLs and routing dev server access throu
Cmux by the numbers
- 3,682 all-time installs (skills.sh)
- Ranked #45 of 1,437 DevOps & CI/CD skills by installs in the Skillselion catalog
- Security screen: HIGH risk (skills.sh audit)
- Data as of Aug 4, 2026 (Skillselion catalog sync)
cmux capabilities & compatibility
- Capabilities
- cloud sandbox provisioning · file sync · browser automation · terminal access · screenshot capture · accessibility tree inspection · docker support · sandbox lifecycle management
- Works with
- docker · chrome
- Use cases
- devops · web scraping · testing · debugging
- Platforms
- macOS · Windows · Linux
- Runs
- Remote server
- Pricing
- Bring your own API key
What cmux says it does
cmux manages cloud sandboxes for development. Use these commands to create, manage, and access remote development environments with built-in browser automation.
Control Chrome browser via CDP in the sandbox's VNC desktop.
npx skills add https://github.com/manaflow-ai/manaflow --skill cmuxAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 3.7k |
|---|---|
| repo stars | ★ 1.1k |
| Security audit | 1 / 3 scanners passed |
| Last updated | August 3, 2026 |
| Repository | manaflow-ai/manaflow ↗ |
What it does
Create and manage cloud development sandboxes via CLI, with file sync, terminal access, VS Code, and Chrome CDP browser automation.
Who is it for?
Developers building agents or CI workflows that require remote isolated environments with browser automation capabilities.
Skip if: Teams needing persistent production hosting or full container orchestration platforms.
When should I use this skill?
A developer needs to spin up a remote sandbox, sync project files to the cloud, or automate browser interactions like login flows or data scraping within an isolated environment.
What you get
Developers get on-demand cloud sandboxes accessible via VS Code, terminal, or VNC, with built-in browser automation for scraping, testing, and web interaction.
- Running cloud sandbox accessible via VS Code, VNC, or terminal
- Uploaded project files synced to remote /home/user/workspace
- Browser screenshots and accessibility snapshots from CDP automation
By the numbers
- Over 20 cmux subcommands documented across lifecycle, file transfer, access, and browser automation categories
- Browser automation supports 2 selector types: element refs from snapshot (@e1, @e2) and CSS selectors
- File upload supports 4 flags: -r for remote path, --watch for live sync, --delete for cleanup, -e for exclusion patterns
Files
cmux - Cloud Sandboxes for Development
cmux manages cloud sandboxes for development. Use these commands to create, manage, and access remote development environments with built-in browser automation.
Installation
npm install -g cmuxQuick Start
cmux login # Authenticate (opens browser)
cmux start ./my-project # Create sandbox, upload directory → returns ID
cmux start . # Or use current directory
cmux code <id> # Open VS Code
cmux pty <id> # Open terminal session
cmux upload <id> ./my-project # Upload files/directories to sandbox
cmux download <id> ./output # Download files from sandbox
cmux computer screenshot <id> # Take browser screenshot
cmux stop <id> # Stop sandbox
cmux delete <id> # Delete sandbox
cmux ls # List all sandboxesPreferred: Always usecmux start .orcmux start <local-path>to sync your local directory to a cloud sandbox. This is the recommended workflow over cloning from a git repo.
Commands
Authentication
cmux login # Login (opens browser)
cmux logout # Logout and clear credentials
cmux whoami # Show current user and teamSandbox Lifecycle
# Preferred: local-to-cloud (syncs your local directory to the sandbox)
cmux start . # Create sandbox from current directory (recommended)
cmux start ./my-project # Create sandbox from a specific local directory
cmux start -o . # Create from local dir and open VS Code immediately
# Alternative: clone from git
cmux start --git user/repo # Clone a git repo into sandbox
cmux start --docker # Create sandbox with Docker support
cmux ls # List all sandboxes
cmux status <id> # Show sandbox details and URLs
cmux stop <id> # Stop sandbox
cmux extend <id> # Extend sandbox timeout
cmux delete <id> # Delete sandbox permanently
cmux templates # List available templatesAccess Sandbox
cmux code <id> # Open VS Code in browser
cmux vnc <id> # Open VNC desktop in browser
cmux pty <id> # Interactive terminal sessionWork with Sandbox
cmux pty <id> # Interactive terminal session (use this to run commands)
cmux exec <id> <command> # Execute a one-off commandImportant: Prefercmux ptyfor interactive work. Usecmux execonly for quick one-off commands.
File Transfer
Upload and download files or directories between local machine and sandbox.
# Upload (local → sandbox)
cmux upload <id> # Upload current dir to /home/user/workspace
cmux upload <id> ./my-project # Upload directory to workspace
cmux upload <id> ./config.json # Upload single file to workspace
cmux upload <id> . -r /home/user/app # Upload to specific remote path
cmux upload <id> . --watch # Watch and re-upload on changes
cmux upload <id> . --delete # Delete remote files not present locally
cmux upload <id> . -e "*.log" # Exclude patterns
# Download (sandbox → local)
cmux download <id> # Download workspace to current dir
cmux download <id> ./output # Download workspace to ./output
cmux download <id> . -r /home/user/app # Download from specific remote pathBrowser Automation (cmux computer)
Control Chrome browser via CDP in the sandbox's VNC desktop.
Navigation
cmux computer open <id> <url> # Navigate to URL
cmux computer back <id> # Navigate back
cmux computer forward <id> # Navigate forward
cmux computer reload <id> # Reload page
cmux computer url <id> # Get current URL
cmux computer title <id> # Get page titleInspect Page
cmux computer snapshot <id> # Get accessibility tree with element refs (@e1, @e2...)
cmux computer screenshot <id> # Take screenshot (base64 to stdout)
cmux computer screenshot <id> out.png # Save screenshot to fileInteract with Elements
cmux computer click <id> <selector> # Click element (@e1 or CSS selector)
cmux computer type <id> "text" # Type into focused element
cmux computer fill <id> <sel> "value" # Clear input and fill with value
cmux computer press <id> <key> # Press key (Enter, Tab, Escape, etc.)
cmux computer hover <id> <selector> # Hover over element
cmux computer scroll <id> [direction] # Scroll page (up/down/left/right)
cmux computer wait <id> <selector> # Wait for element to appearElement Selectors
Two ways to select elements:
- Element refs from snapshot:
@e1,@e2,@e3... - CSS selectors:
#id,.class,button[type="submit"]
Sandbox IDs
Sandbox IDs look like cmux_abc12345. Use the full ID when running commands. Get IDs from cmux ls or cmux start output.
Common Workflows
Create and develop in a sandbox (preferred: local-to-cloud)
cmux start ./my-project # Creates sandbox, uploads files
cmux code cmux_abc123 # Open VS Code
cmux pty cmux_abc123 # Open terminal to run commands (e.g. npm install && npm run dev)File transfer workflow
cmux upload cmux_abc123 ./my-project # Push local files to sandbox
# ... do work in sandbox ...
cmux download cmux_abc123 ./output # Pull files from sandbox to localBrowser automation: Login to a website
cmux computer open cmux_abc123 "https://example.com/login"
cmux computer snapshot cmux_abc123
# Output: @e1 [input] Email, @e2 [input] Password, @e3 [button] Sign In
cmux computer fill cmux_abc123 @e1 "user@example.com"
cmux computer fill cmux_abc123 @e2 "password123"
cmux computer click cmux_abc123 @e3
cmux computer screenshot cmux_abc123 result.pngBrowser automation: Scrape data
cmux computer open cmux_abc123 "https://example.com/data"
cmux computer snapshot cmux_abc123 # Get structured accessibility tree
cmux computer screenshot cmux_abc123 # Visual captureClean up
cmux stop cmux_abc123 # Stop (can restart later)
cmux delete cmux_abc123 # Delete permanentlySecurity: Dev Server URLs
CRITICAL: NEVER share or output raw E2B port-forwarded URLs.
When a dev server runs in the sandbox (e.g., Vite on port 5173, Next.js on port 3000), E2B creates publicly accessible URLs like https://5173-xxx.e2b.app. These URLs have NO authentication — anyone with the link can access the running application.
Rules:
- NEVER output URLs like
https://5173-xxx.e2b.app,https://3000-xxx.e2b.app, or anyhttps://<port>-xxx.e2b.appURL - NEVER construct or guess E2B port URLs from sandbox metadata
- ALWAYS tell the user to view dev servers through VNC:
cmux vnc <id> - VNC is protected by token authentication (
?tkn=) and is the only safe way to view dev server output - Only VSCode URLs (
cmux code <id>) and VNC URLs (cmux vnc <id>) should be shared — these have proper token auth
When a dev server is started:
✓ Dev server running on port 5173
View it in your sandbox's VNC desktop: cmux vnc <id>
(The browser inside VNC can access http://localhost:5173)NEVER do this:
Frontend: https://5173-xxx.e2b.app ← WRONG: publicly accessible, no authTips
- Run
cmux loginfirst if not authenticated - Use
--jsonflag for machine-readable output - Use
-t <team>to override default team - Use
-vfor verbose output - Always run
snapshotfirst to see available elements before browser automation - Use element refs (
@e1) for reliability over CSS selectors
Related skills
How it compares
Use cmux for agent-friendly cloud dev sandboxes; use Docker-only workflows for local container isolation without remote VMs.
FAQ
How do I create a sandbox from my local project?
Run cmux start . or cmux start ./my-project to upload your local directory to a new cloud sandbox. The command returns a sandbox ID like cmux_abc12345.
How do I automate browser interactions in a sandbox?
Use cmux computer subcommands: open a URL, run snapshot to get element refs like @e1, then use click, fill, type, or press to interact with elements.
How do I safely view a dev server running in the sandbox?
Use cmux vnc <id> to open the VNC desktop, which is protected by token authentication. Never share raw E2B port-forwarded URLs like https://5173-xxx.e2b.app.