CLI Reference

Global Flags

The flags every uxd command accepts — config-dir override, ref disambiguation, dry runs, JSON output, and log verbosity.
FlagEffect
--config-dir <dir>Override the config directory
--pr / --branch / --path <v>Force how the ref is interpreted
--dry-runPrint what would run; change nothing
--jsonMachine-readable stdout (checkout, list, info, projects, doctor)
-q, --quietSuppress step logs
-v, --verbosePrint external commands
-y, --yesAssume "yes" for prompts
--no-colorDisable ANSI color

--config-dir

The config directory is resolved in this order:

--config-dir → $UXD_CONFIG_DIR → ~/.uxd

uxd config path prints the winner.

Ref disambiguation

42 is a PR number and main is a branch, but some names are genuinely ambiguous. Force the interpretation:

uxd my-project --branch 42        # a branch literally named "42"
uxd my-project --pr 42            # PR #42
uxd my-project --path ./checkout  # adopt an existing working tree

See Refs.

--dry-run

Available on every mutating command. For run, exec and shell it prints the computed environment as export lines followed by the shell-quoted command:

uxd my-project 42 run dev --dry-run
uxd my-project 42 sync --discard --dry-run
uxd my-project 42 diff --dry-run

--json

Supported by checkout, list, info, projects and doctor. Progress and warnings stay on stderr, so $(uxd … --json) captures clean JSON. See Script with uxd.

--quiet and --verbose

-q suppresses the step logs, leaving only the result on stdout:

uxd my-project feat/login checkout -q
~/dev/uxd/my-project/trees/feat-login

-v adds a · -prefixed line on stderr for every external command:

→ fetching origin/feat/login
· git -C ~/dev/uxd/my-project/repo fetch origin feat/login --no-tags
· git -C ~/dev/uxd/my-project/repo worktree add ~/dev/uxd/my-project/trees/feat-login -B feat/login --track origin/feat/login
→ worktree ready: ~/dev/uxd/my-project/trees/feat-login

--yes

Skips confirmation prompts. Required for clean and rm in any non-interactive context — without it they exit 2.