_ _ __ _ _
__| | ___ | |_ / _(_) | ___ ___
/ _` |/ _ \| __| | |_| | |/ _ \/ __|
| (_| | (_) | |_ | _| | | __/\__ \
\__,_|\___/ \__| |_| |_|_|\___||___/
A collection of shell and git configuration files to maintain a consistent development environment across machines.
The setup.sh script handles the installation process:
- Updates the repository with the latest changes
- Copies configurations to
$HOME
shell/- Shell configuration filesgit/- Git configuration filesclaude/- Claude Code configuration files
Both .gitconfig and .zshrc support machine-specific overrides via local files that are not tracked in the repo. Create these on each machine as needed.
For machine-specific environment variables, aliases, or tool configuration:
# ~/.zshrc.local (example: use 1Password SSH agent)
export SSH_AUTH_SOCK=~/Library/Group\ Containers/2BUA8C4S2C.com.1password/t/agent.sockThe shared .gitconfig enables SSH commit signing and includes ~/.gitconfig.local for machine-specific overrides.
# ~/.gitconfig.local
[user]
signingkey = ~/.ssh/id_ed25519.pubTo use a different email for repos in a specific directory, add an includeIf rule and a matching config file:
# ~/.gitconfig.local
[user]
signingkey = ~/.ssh/id_ed25519.pub
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig-work# ~/.gitconfig-work
[user]
email = you@work.comEach machine's SSH public key must be added to GitHub as a Signing Key (separate from Authentication):
- Copy your public key:
cat ~/.ssh/id_ed25519.pub - Go to GitHub → Settings → SSH and GPG keys → New SSH key
- Set Key type to Signing Key and paste the key