Skip to content

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

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.