swe-swe
v2.24.0
Published
Your agent: containerized with browser, terminal, and parallel sessions
Readme
swe-swe
Your agent: containerized with its own browser for agentic testing. Your terminal: pair live or share recordings with teammates. Your sessions: run multiple in parallel, each on its own git worktree.
Works with Claude, Codex, OpenCode, Gemini, Aider, Goose, and Pi. Not listed? Let us know!

Features
- Containerized agent + browser: each session runs in its own container with a browser for agentic testing (Playwright MCP plus a live Agent View).
- Parallel sessions on git worktrees: run several agents at once, each isolated on its own worktree.
- Live pairing and recordings: pair on a live terminal, or share session recordings with teammates.
- Remote access via tunnel mode: reach a container over the public internet with no open ports and no TLS to manage -- the container dials out. See Tunnel mode explained, plus the runbooks for laptop, Fly.io, and PaaS.
- One-container deploy: ship to Fly.io / Railway / Render / Cloud Run, or join a Tailscale tailnet.
- SSH commit signing: sign commits with a per-session key that never touches disk.
- Skills from any git repo:
swe-swe init --with-skills <alias>@<url>clones external skill repos and surfaces them to the agent. - Built-in panes: live preview, a read-only Files browser, VS Code (code-server), and agent chat.
Quick Start
Install swe-swe
Option A: run via npx (requires Node.js)
alias swe-swe='npx -y swe-swe'Option B: install via curl
curl -fsSL https://raw.githubusercontent.com/choonkeat/swe-swe/main/install.sh | shGo to your project
cd /path/to/your/projectStart
swe-swe upOpen http://localhost:1977
Requirements
- Docker & Docker Compose installed
- Terminal access (works on macOS, Linux, Windows with WSL)
Commands
For the full command reference -- all flags, examples, environment variables, and architecture details -- see docs/cli-commands-and-binary-management.md. For configuration options, see docs/configuration.md.
Quick reference:
# Native commands
swe-swe init [options] # Initialize a project (advanced; `up` does this interactively)
swe-swe list # List initialized projects
swe-swe proxy <command> # Bridge host commands into containers
# Docker Compose pass-through (all other commands)
swe-swe up # Start the environment (runs interactive setup on first use)
swe-swe down # Stop the environment
swe-swe build # Rebuild Docker images
swe-swe ps / logs / exec ... # Any docker compose commandUse --project-directory to specify which project (defaults to current directory). The port defaults to 1977 and can be customized via SWE_PORT.
Documentation
- Configuration Reference - all init flags, environment variables, and config files
- CLI Commands and Build Architecture - full command reference, troubleshooting, build system
- Browser Automation - Chrome CDP and MCP Playwright
- WebSocket Protocol - terminal communication protocol
- Tunnel mode - reach a container from the public internet: explained, laptop, Fly.io, PaaS
Development
make build # Build CLI binaries for all platforms
make test # Run testsSee docs/cli-commands-and-binary-management.md for build architecture and troubleshooting.
License
See LICENSE file for details.
