Personal dev environment. macOS, zsh, Rust tooling.
curl -fsSL https://raw.githubusercontent.com/radiosilence/dotfiles/main/setup-macos | bash12 lines of shell that bootstraps go-task into a tmpdir, curls the Taskfile, and runs task converge. The Taskfile DAG handles everything — xcode, brew, mise, 1Password, gh auth, symlinks, Rust binaries, completions, fonts. Idempotent — re-running skips what's already done.
Run upd (or converge) anytime to update everything. Tasks that need 1Password or gh auth poll silently until ready — no interactive prompts.
- Shell configs — Modular zsh setup with 30+ config files, 80+ git aliases, fzf-tab completions
- Rust binaries — System maintenance, git workflow, media processing, file operations
- Taskfile.yml — DAG-based system management (bootstrap, update, completions, fonts)
- Tool management — mise for runtimes, role-based Brewfile for system packages (
brewfiles.d/) - Terminal configs — tmux, ghostty, starship prompt
- Editor configs — helix (LSP, tree-sitter, formatters for 15+ languages), zed
| Doc | Description |
|---|---|
| cheatsheet.md | Complete reference — all commands, aliases, functions |
| new-tools.md | Modern CLI replacements (dust, procs, delta, xh, oha, tokei) |
| tmux-cheatsheet.md | tmux keybindings and usage reference |
| fzf-tab-completions.md | Fuzzy completion setup with previews |
| CHANGELOG.md | Full history from 2018 to present |
System
upd/converge— Converge system to desired state (bootstrap + update in one command)task --list— See all available taskskill-port <port>— Kill process on portprune— Find and delete small directories
Git workflow
git sync— Delete merged local branchesgit squash— Squash commits for clean PRsgit trigger— Re-trigger CI with amend + force pushgit conf-dir— Set per-directory git config (email, signing, etc.)fm/fr— Fuzzy merge/rebase with fzf
Media
to-audio opus|flac— Parallel audio conversionembed-art— Embed cover art into FLACsimp— Download + extract + beets import
Files
vimv— Batch rename in $EDITORclean-dls— Remove scene release garbage
All binaries support --help and have shell completions.
Set git config overrides for all repos under a directory:
cd ~/workspace/surgeventures/any-repo
git conf-dir user.email james.cleveland@fresha.com
git conf-dir user.name "James Cleveland (Fresha)"Stores config in ~/.local/git.d/<path>.conf and adds an includeIf to ~/.gitconfig. Idempotent.
Git signing — Commit signing via 1Password SSH agent. user.signingkey is per-machine (local git config).
Tool duplication — Some tools exist in both brew and mise intentionally:
sheldon— brew for Intel (no arm64 binary), mise for Apple Siliconuv— brew only (system-wide Python tooling)
brew services start syncthingWeb UI at http://localhost:8384. Stop: brew services stop syncthing.
- browser-schedule — Time-based browser switching for macOS
- gastown — Multi-agent workspace orchestrator (setup guide)