A CLI/TUI tool for managing fleets of devcontainers. Spawn, name, exec into, and manage multiple devcontainer instances easily
sudo curl -sL https://raw.githubusercontent.com/BenjaminBenetti/fleet-man/main/install.sh | shTo install a specific version:
sudo curl -sL https://raw.githubusercontent.com/BenjaminBenetti/fleet-man/main/install.sh | sh -s -- --version v0.2.0Run fleet with no arguments to launch the interactive TUI, or use subcommands directly:
# Launch TUI
fleet
# Spawn instances from the current repo
fleet up agent-1
fleet up agent-2
# Stop and restart an existing instance without removing it
fleet stop agent-1
fleet start agent-1
# List instances
fleet ls
# Exec into an instance
fleet exec agent-1 bash
# Open VS Code on an instance
fleet code agent-1
# View logs
fleet logs agent-1
# Remove an instance
fleet down agent-1
# Remove a fleet and all its instances
fleet destroy my-project
# Spawn from anywhere with explicit repo
fleet up agent-1 --repo git@github.com:org/my-project.git
# Reference an existing fleet from anywhere
fleet up my-project/agent-3| Key | Action |
|---|---|
j/k |
Navigate |
space |
Expand/collapse fleet |
enter/e |
Exec into instance |
s |
Stop/start instance |
o |
Open instance in new terminal |
a |
Add instance |
n |
New fleet |
d |
Delete instance/fleet |
c |
Open VS Code |
l |
View logs |
r |
Refresh |
q |
Quit |
- Linux, including Ubuntu on WSL2
- Docker
- devcontainer CLI (
npm install -g @devcontainers/cli)
Fleet is a Linux CLI, but it can run on Windows through WSL2. The confirmed setup is:
- Ubuntu on WSL2
- Docker Desktop with WSL integration enabled for the Ubuntu distro
- Node installed with
nvm @devcontainers/cliinstalled under the nvm-managed Node- Fleet installed somewhere on the WSL
PATH, such as~/.local/bin/fleet
Inside WSL:
nvm install 22
nvm alias default 22
nvm use default
npm install -g @devcontainers/cliOn Docker Desktop plus WSL, if devcontainer startup fails while building the
UID-adjustment or feature image, disable BuildKit for Fleet-managed
devcontainers. If the failure is specifically in updateUID.Dockerfile,
disable the devcontainer CLI's remote user UID rewrite as well:
export FLEET_DEVCONTAINER_BUILDKIT=never
export FLEET_DEVCONTAINER_UPDATE_REMOTE_USER_UID=neverTo persist that setting:
echo 'export FLEET_DEVCONTAINER_BUILDKIT=never' >> ~/.bashrc
echo 'export FLEET_DEVCONTAINER_UPDATE_REMOTE_USER_UID=never' >> ~/.bashrcSee Windows WSL notes for a full health check and disposable smoke-test workflow.
Fleet uses the devcontainer CLI's default BuildKit behavior unless explicitly configured. If Docker Desktop on WSL fails while building the devcontainer UID-adjustment image, disable BuildKit for Fleet-managed devcontainers:
export FLEET_DEVCONTAINER_BUILDKIT=neverAccepted values are auto and never.
Fleet uses the devcontainer CLI's default remote-user UID/GID rewrite behavior
unless explicitly configured. On Docker Desktop plus WSL, that rewrite can fail
while building updateUID.Dockerfile. To disable it for Fleet-managed
devcontainers:
export FLEET_DEVCONTAINER_UPDATE_REMOTE_USER_UID=neverAccepted values are default, never, on, and off.
