dotfiles

Linux

Debian/Ubuntu via setup.sh.

macOS → Fresh Mac. Linux → thin ./setup.sh → rig/bootstrap/linux.sh. just bootstrap on Linux now dispatches to the same script.

Default is mutate. There is no --apply flag. Pass --dry-run to plan.

just bootstrap --dry-run --verbose
./setup.sh --dry-run --verbose
./setup.sh
exec zsh -l
FlagEffect
--dry-runPlan only
--verboseDebug log
--smoke-checkVerify only (no setup mutations)

Do not pass Darwin --apply / --with-dev-env here — those are unknown options and fail.

Needs: Linux x86_64/arm64, bash/git/curl, sudo, apt, network. Dots from rig/dots/ are linked before Oh My Zsh (KEEP_ZSHRC=yes cannot plant a real ~/.zshrc). OMZ then clones Linux custom plugins (p10k, autosuggestions, syntax-highlighting) under $ZSH_CUSTOM. chsh is skipped in Codespaces or non-interactive sessions. setup.sh also links ~/.zsh/aliases.zsh from rig/home/dot_zsh/aliases.zsh. npm CLIs: claude, copilot, codex (no Gemini CLI) plus ~/.local/bin shims. App aliases (opa, cda) need macOS open; CLI aliases (opc, cdx, grk, agt) work wherever those binaries exist.

After CLI shims, setup delegates the agent stack to rig/bootstrap/dev-env.sh (just bootstrap-dev) with --skip-mcphub. Apply fail-closes if the wrapper is missing or the installer exits non-zero. Dry-run warns and continues. --smoke-check fails if the wrapper file is missing. It does not run a hardcoded npx skills add list. Harness/MCP JSON stays in agents.

Linux bootstrap stays a thin subset. apt installs shellcheck, shfmt, and bats when missing. Optional extras (lnav, mtr-tiny, hyperfine, jc, visidata, atuin, mq) are command -v guarded in zshrc — install them yourself if needed. Do not add Atuin/mq/Agent Deck GitHub-binary sprawl here. Do not apt install yq: Debian's yq is not mikefarah yq (Homebrew SSOT). See AI and Shell.