One-shot Mac setup that mirrors Brandon's Ghostty + Claude Code + workspace configuration. Clone
it, run one script, then let Claude walk you through the choices that matter (colours, glass,
model, spinner, prompt stars, status line, banner, shortcuts). Your clone becomes your own
dotfiles repo: config edits land in it, and /setup copies the machine choices into local/
and commits, so a push of the clone is a complete backup.
Apple silicon (M1 or later), macOS 14+.
Open Terminal.app. First, the Apple developer tools (git lives there; a fresh Mac has none):
xcode-select --install
Click Install in the dialog and wait for it to finish (a few minutes). Then:
git clone https://github.com/brandon-stride/stride-mac-setup.git ~/stride-mac-setup
~/stride-mac-setup/bootstrap.sh
(Or unpack the zip you were
sent to ~/stride-mac-setup and run the same second line.)
bootstrap.sh installs Xcode Command Line Tools (if missing), Homebrew, the Brewfile
(Ghostty, starship, fzf, zoxide, eza, gh, fnm, the Nerd Fonts), node via fnm, Claude Code, links
the config into place, appends one block to ~/.zshrc, and opens Ghostty on the kit. Re-running
it is safe.
Then, in the Ghostty window that opens:
claude
Log in when it asks, then type /setup. Ten short topics, each with "keep it" as the first
option. About five minutes.
| Piece | Where it lives in the kit | Where it is linked |
|---|---|---|
Ghostty config: shared behaviour + 7 colour profiles, live-switchable with profile |
ghostty/ |
~/Library/Application Support/com.mitchellh.ghostty/ |
| Claude Code settings, keybindings, theme, hooks, rules | claude/ |
~/.claude/ |
| Status line: account · model · repo · branch ribbon, context bar, session time | claude/scripts/statusline.sh |
via settings |
| Tab spinner + prompt stars (binary patch, re-applied after every update) | claude/scripts/patch-claude-binary.* |
SessionStart hook |
/setup, /handoff, /catch skills |
claude/skills/ |
~/.claude/skills/ |
Shell: aliases, banner, cc, ws, scratch, profile, project shortcuts + registrar |
shell/ |
~/.config/stride/ |
| Starship prompt | starship/ |
~/.config/starship.toml |
| Global git hooks: tsc on commit, opt-in merge gate on push | git/hooks |
~/.git-hooks |
Workspace template: CLAUDE.md, .planning/, .claude/rules/, clients/ |
workspace/ |
~/<your workspace> |
Machine choices (workspace name, spinner, stars, status line style, banner words) live in
~/.config/stride/setup.env, written by /setup and mirrored to local/ in the clone. Secrets
go in ~/.secrets.env (mode 600), never in the repo.
wsjumps to the workspace,scratchto experiments,shortcutslists project jumps.cclaunches Claude Code here;cc <shortcut>jumps first.profilepicks a colour scheme for this tab;profile -n titaniumopens a new window in one./handoffat the end of a session with open work;/catchto resume next time.- New project shortcut:
~/.config/stride/kit/shell/register-project-shortcut.sh <dir> <word>.
Everything is a file in your clone. Edit, then: Ghostty colours reload with cmd+shift+, (new tab
to see font changes; full quit for opacity); shell changes need a new tab; Claude Code settings
apply on the next launch. /setup can be run again at any time and shows the current value of
every choice.
link.sh moved anything it replaced to <name>.pre-stride (or .pre-stride.<timestamp> when
that name was taken); nothing is ever deleted. Delete the symlinks it created, move those back,
remove the block between the stride-mac-setup markers in ~/.zshrc, and unset the global git
keys bootstrap wrote:
git config --global --unset core.hooksPath
git config --global --unset init.defaultBranch
# only if you chose HTTPS routing in /setup:
git config --global --unset-all url.https://github.com/.insteadOf
The Claude binary patch is undone by reinstalling Claude Code
(curl -fsSL https://claude.ai/install.sh | bash).