My personal dotfiles. In my opinion, dotfiles are NOT meant to be forked. That being said, this repository contains lots of useful things (shell config, scripts, gitconfig) that you can add to your personal setup. As such, I encourage anyone that thinks these dotfiles look useful to try to understand them first and then copy the parts that stand out to them.
Install β’ Contents β’ Credits
git clone https://github.com/gideonshaked/dotfiles && cd dotfiles && ./install --profile <profile>Only git and python3 are needed to run the install.
Everything else the configuration depends on is installed by the run itself, including Claude Code.
Profiles are different versions of my dotfiles, so that they can be used across multiple differing machines (personal laptop, work laptop, linux servers, etc).
The chosen profile is remembered in ~/.dotfiles-profile, so a later bare ./install reinstalls the originally installed profile.
| Profile | For | Modules |
|---|---|---|
personal |
personal Mac (default) | settings-personal, core, macos |
work |
work Mac | settings-work, core, macos |
server |
headless Linux | settings-personal, core |
After install, use the dotfiles utility:
dotfiles update # Pull latest changes and run install
dotfiles brew # Install everything in the manifest
dotfiles dotbot # Update Dotbot submoduleβββ agents <- Claude config: memory, skills, commands, hooks, per-profile settings
βββ bin <- Commands meant to be typed (s, dotfiles)
βββ dotbot <- Dotbot installer submodule
βββ git <- Git configuration (gitconfig, global gitignore)
βββ manifest <- Brewfile: what this repo's configuration depends on
βββ setup <- The installer: modules/ compose profiles, scripts/ run after linking
βββ ssh <- SSH config; host files are gitignored and stay out of this repo
βββ terminal <- Shell and terminal config (one shellrc for zsh and bash, starship, cmux)
βββ vscode <- VS Code settings, keybindings and extension list
These dotfiles were inspired by Anish Athalye's dotfiles.