CLI Reference
Every stack subcommand. Flags shown in [brackets] are optional.
Project lifecycle
stack new <name> / stack new .
Interactive scaffolding. stack new . targets the current directory and refuses to run if a stack.toml is already there.
stack up [dir] [--prompt]
Clones anything declared in [[clone]] that's missing, activates languages, starts declared services, spawns [run], and routes the domain. Defaults to the current directory. --prompt allows interactive prompting for unresolved command placeholders.
stack down [project] [--all]
Stops that project's [run] process and removes its route. Shared services keep running for other projects unless --all is passed, which stops every project and every shared service — the true end-of-day shutdown.
stack status alias: stack ps
Lists every running project, service, and Caddy's own liveness/route count. Self-healing — drops entries whose process is no longer alive.
stack stats [--no-stream]
Continuously-refreshing CPU/memory view, docker stats-style. --no-stream for a single snapshot.
stack logs <name> [--tail N] [-f/--follow]
Reads a project's or service's log file directly — works even after it's stopped, since it doesn't depend on the running-state list.
Manifest editing
stack add <kind> <name> [version] [options]
kind is language, service, or tool. Format-preserving — existing comments and key order in stack.toml survive untouched.
stack remove <kind> <name>
Removes one entry, same format-preserving guarantee.
Diagnostics & registry
stack doctor [--fix]
Checks vfox/uv/Caddy are present at compatible versions, and that every registered service/tool path still exists on disk. --fix installs vfox/uv/Caddy at stack's pinned versions. Also scans for pre-existing Windows Services (MySQL, MongoDB, PostgreSQL) worth registering as external.
stack register <kind> <name> <version> <path>
kind is service, tool, or language — makes a BYO install reusable by any project, without repeating the path in every stack.toml. stack register service <name> <version> --external --port <port> registers an already-running instance instead of a path.
stack list
Live-merged view of everything installed — vfox, uv, and the registry — queried fresh each time, never cached.
stack prune [--yes] [--purge-data]
Reports language/service versions installed but no longer referenced by any known project. Dry-run by default; --yes uninstalls orphaned language SDKs and drops orphaned registry pointers only — a service's actual data directory is never touched without the separate, explicit --purge-data.
Shell integration
stack setup [--shell]
One-time bootstrap: wires the shell hook into your profile and runs doctor --fix. Idempotent — safe to run again.
stack hook <shell>
Prints the bootstrap script your shell profile evaluates once at startup. You won't normally call this directly — stack setup wires it for you.
stack activate <shell>
Called by the hook on every prompt — resolves the current directory's stack.toml (if any) and prints the PATH changes for that shell to apply. Silent, no-op output when no manifest is found.
stack load-env [path]
Loads a .env-style file for the current shell session only (defaults to .env in the current directory). Confirms which variable names were loaded — never the values.