updated

One curl. Then dc.

curl --with-cli installs the latest release: compiled dc-tui and dc-actions. A source install builds both when Go is on PATH; without Go, shell fallback. Then source ~/.bashrc or source ~/.zshrc.

Needs bash 4+. Docker can be missing at install time — helpers still install and print a Host Docker readiness block (never auto-installs an engine). Official @devcontainers/cli is required only for kind=devcontainer folders. Compose-only folders start via dc-up → Compose (docker compose or docker-compose). Release kits and Homebrew include the clickable TUI (logo splash, start/shell/stop first). A source install builds it when Go is on PATH; otherwise you get the bash menu. dc-actions (project actions) works the same way: compiled in release kits and Homebrew, built from source when Go is present; without Go only its --help works and other verbs say the compiled binary is required — every other command is unaffected.

Safer than piping curl: clone the repo, then bash install.sh. Each person needs their own Docker/Colima. Do not copy export DOCKER_HOST=unix://$HOME/.colima/default/docker.sock onto a laptop that uses Docker Desktop. dc-doctor reports the CLI engine and socket; two live engines block dc-up. dc-engine --fix prints how to pick one. No engine yet? See No Docker engine.

curl -fsSL https://raw.githubusercontent.com/Brasth/dc-cli/main/install.sh | bash -s -- --with-cli
source ~/.bashrc   # bash
source ~/.zshrc    # zsh

Or Homebrew (same kit, no Go):

brew tap Brasth/dc-cli
brew install dc-cli

Flags

Flag What you get
(default) wrappers generation only — not the official CLI
--with-cli official standalone CLI if missing (never npm)
--with-cli-npm explicit exact-pin npm fallback (host Node must meet that package’s engines.node)
--with-skill copy the agent skill into homes you already have
--full --with-cli + --with-skill
--ref v0.4.3 / main pin a tag or use HEAD
--no-yazi do not prefetch Linux yazi (DC_SKIP_YAZI=1)

The advertised curl passes --with-cli so devcontainer is on PATH via the upstream standalone installer (bundled Node major, mutable patch). npm is only --with-cli-npm with an exact qualified pin. The compatibility floor is unpublished (DC_DEVCONTAINER_MIN_VERSION / DC_DEVCONTAINER_NPM_VERSION empty) until docs/qualification/devcontainer-cli-floor.md has four platform result: pass rows — --with-cli-npm hard-rejects until then. Current registry 0.88.0 / Node 20 is candidate evidence, not a pre-approved floor. Clone or bash install.sh with no flags stays wrappers only.

Skill

--with-skill copies the devcontainer-cli-global skill into agent homes you already have. It does not install Claude / Codex / Cursor for you. Restart the agent after.

--full is --with-cli + --with-skill.

Homes: ~/.cursor, ~/.claude, ~/.codex, ~/.pi, ~/.gemini, ~/.opencode, ~/.agents/skills.

Confirm: dc --help or dc up --help. dc-up still works. Homebrew on an older tap: dc upgrade (or brew update && brew upgrade dc-cli).

Update

dc upgrade --check    # installed vs latest
dc upgrade            # prompt, then apply
dc upgrade --yes      # no prompt

Homebrew installs upgrade via brew. Curl / generation installs re-run install.sh --ref latest --with-cli. The TUI shows a banner when a newer release exists (U confirms).

Daily start

Run from this folder. .devcontainer → official CLI. Compose-only → Compose. Same verbs.

cd /path/to/your/project
dc

Or skip the board: dc up, then dc exec. Flags: dc --help.

Broke something?report it