Shed¶
Shed is a lightweight tool for managing persistent, containerized development environments across multiple servers. It enables developers to spin up isolated coding sessions with AI tools (Claude Code, OpenCode) pre-installed, disconnect, and reconnect later to continue work.
Features¶
- Simple CLI - Create and manage dev environments with minimal commands
- Session Persistence - Containers keep running after disconnect
- Multi-Server - Manage sheds across home servers and cloud VPS instances
- IDE Integration - Native Cursor/VS Code support via SSH Remote
- AI-Ready - Pre-configured for Claude Code and OpenCode workflows
- Multiple Backends - Docker containers, Firecracker microVMs (Linux), or Apple VZ virtual machines (macOS Apple Silicon)
Architecture¶
Shed consists of two binaries:
shed- CLI for developer machines (macOS, Linux)shed-server- Server daemon exposing HTTP API (port 8080) and SSH server (port 2222)
The server supports three backends (enabled per server configuration):
- Docker (default) - Uses Docker containers with bind mounts
- Firecracker - Uses microVMs with vsock communication (Linux only)
- VZ - Uses Apple Virtualization.framework VMs via vfkit (macOS Apple Silicon only)
You can set a server default backend and optionally override it per shed with shed create --backend=... when that backend is enabled on the server.
flowchart LR
subgraph client["Developer Machine"]
CLI["shed CLI"]
end
subgraph server["Remote Server"]
SERVER["shed-server"]
subgraph backends["Backends"]
subgraph docker["Docker"]
SHED1["container"]
end
subgraph fc["Firecracker"]
VM1["microVM"]
end
subgraph vz["VZ"]
VM2["Linux VM"]
end
end
SERVER --> backends
end
CLI -->|"HTTP (8080)"| SERVER
CLI -->|"SSH (2222)"| SERVER
Requirements¶
| Component | Requirements |
|---|---|
| Client | macOS or Linux with Go 1.24+ |
| Server (Docker) | Linux with Docker installed |
| Server (Firecracker) | Linux with KVM support |
| Server (VZ) | macOS 13+ (Ventura) on Apple Silicon (arm64) |
| Network | Tailscale (or any private network) connecting all machines |
Quick Links¶
- Quick Start - Get up and running
- CLI Reference - All commands and options
- Configuration - Client and server config
- Server Setup - Install shed-server
- Firecracker Installation - Set up Firecracker backend
- Firecracker Operations - Using Firecracker sheds
- VZ Setup - Set up VZ backend (macOS)
- VZ Operations - Using VZ sheds
- Roadmap - Future enhancements
Security Model¶
Shed is designed for single-user scenarios where:
- All machines are connected via Tailscale (or similar private network)
- The developer owns/controls all machines
- Network access implies trust
Not suitable for: Multi-tenant environments, public internet exposure, or untrusted network access.