Skip to content
 
 

Repository files navigation

fleet-man

A CLI/TUI tool for managing fleets of devcontainers. Spawn, name, exec into, and manage multiple devcontainer instances easily

fleet-man screenshot

Install

sudo curl -sL https://raw.githubusercontent.com/BenjaminBenetti/fleet-man/main/install.sh | sh

To install a specific version:

sudo curl -sL https://raw.githubusercontent.com/BenjaminBenetti/fleet-man/main/install.sh | sh -s -- --version v0.2.0

Usage

Run 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

TUI Keybindings

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

Requirements

  • Linux, including Ubuntu on WSL2
  • Docker
  • devcontainer CLI (npm install -g @devcontainers/cli)

Windows WSL Setup

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/cli installed 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/cli

On 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=never

To persist that setting:

echo 'export FLEET_DEVCONTAINER_BUILDKIT=never' >> ~/.bashrc
echo 'export FLEET_DEVCONTAINER_UPDATE_REMOTE_USER_UID=never' >> ~/.bashrc

See Windows WSL notes for a full health check and disposable smoke-test workflow.

Devcontainer BuildKit

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=never

Accepted values are auto and never.

Devcontainer UID Rewrite

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=never

Accepted values are default, never, on, and off.

About

Fleet Manager for devcontainer workspaces - simple and easy.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages