A personal machine setup script. Run it on a fresh system and it walks you through installing configs one step at a time — no surprises, no silent overwrites.
bash setup.sh
Each step tells you what it will do, then asks before doing it. Skip anything you don't want. Re-running is safe: already-installed steps are detected and skipped automatically.
To force a step to reinstall (e.g. after updating a config file):
bash setup.sh --force
You approve every change. Nothing is installed silently. Each step describes what it does and requires a y/n confirmation. You can run the script and say no to everything.
Safe to re-run. Installed steps are detected via marker comments so
re-running never piles on duplicates or overwrites your changes. Prompts show
[already installed] when a step has already been applied.
Non-destructive. RC files (.bashrc, .zshrc) are append-only. Existing
files like .tmux.conf are backed up with a timestamp before being replaced.
Works across Mac and Linux, bash and zsh. The script detects your OS and active shell at runtime and adjusts paths and commands accordingly. Clipboard integration, RC file location, and platform-specific tooling are all handled automatically.
| Step | What it installs |
|---|---|
| 1 | ~/.tmux.conf — vi keys, mouse, true colour, clipboard integration, persistent pane paths |
| 2 | Shell aliases — tmux shortcuts (tma, tmn, tml, tmp, tmr) and clawde |
- Add any config/snippet files to
configs/if needed. - In
setup.sh, follow the existing pattern — check CLAUDE.md for the template.