Cross-platform dotfiles for macOS and Linux with:
stowfor symlink managementbrew bundlefor tool installation- agent CLI bootstrap for tools not fully covered by brew on every OS
- local override files for machine-specific settings
git clone <your-repo-url> ~/dotfiles
cd ~/dotfiles
./script/bootstrapThis will:
- install Homebrew if needed
- install the tools declared in
Brewfile - install Node through
nvmusing.nvmrc - install agent desktop/CLI tools and skills
- apply tracked agent config defaults without overwriting local customizations
- symlink configs into
$HOMEwithstow
Each top-level package is managed by stow:
home-> files in$HOMEghostty->~/.config/ghosttynvim->~/.config/nvimstarship->~/.config/starship.toml
Install packages and link configs:
./script/bootstrapLink configs only:
./script/installRemove linked configs:
./script/uninstallKeep machine-specific settings out of shared files.
Supported local overrides:
~/.zshrc.local~/.tmux.local.conf~/.wezterm.local.lua
Typical override examples:
- machine-specific
PATHentries - local integrations such as iTerm shell integration
- version-pinned binaries that are not shared across every machine
- experimental aliases or secrets
- agent auth tokens, local MCP paths, and machine-specific trusted-project entries
./script/install does not delete existing files. It runs a stow preflight first and exits on conflicts so you can back up or remove existing dotfiles manually.
- create a new top-level package directory
- place files in their final target layout inside that package
- add the package name in
script/common.sh - add the package install entry in
Brewfileif needed
Bootstrap currently restores:
codexclaude-codeopencodecursor-agent- skills listed in
agents/.agents/skills/manifest.txt
Tracked agent config defaults live in:
agents/.codex/config.tomlagents/.claude/settings.jsonagents/.config/opencode/opencode.json
These files are copied only when missing. Existing local agent config is not overwritten.
Only safe agent config is tracked. Auth files, history, caches, logs, session state, and trusted-project data are intentionally not stored in git.
Bootstrap installs the Docker CLI and docker-compose.
- On Linux, that may be enough if a Docker daemon is already available.
- On macOS, this does not install a container runtime by itself.
If you want to run containers locally on macOS, also install and start one of:
- Docker Desktop
- Colima
- OrbStack
Bootstrap now prints:
- each major phase before it runs
- verbose Homebrew bundle output
- planned
stowchanges before applying them - actual
stowlink operations - a final tool summary showing what commands are available on
PATH