This is a collection of my personal dotfiles. I have machines running various flavors of Linux, MacOS and Win/WSL and I try to make all settings agnostic to the underlying OS. Configuration files live under etc/.
Automation agent guidance lives in AGENTS.md. Claude Code instructions are in CLAUDE.md.
Note
The self-contained tool Dotbot is used, linked as a submodule to this repo.
- Shell of choice
- Python
Warning
Do not install a strangers dotfiles onto your computer.
Main installation:
[./install](install)to symlink all the static and generated content into your home folder
- install: ensure git submodules are initialized and link all configuration files to
$HOME - bootstrap: creates
local/gitconfigfrom template if missing - update: update git submodules to latest commits
Dotbot uses etc/install.yml to define which files are symlinked into $HOME.
All symlinked files come from etc/. Platform-specific manifests are applied via etc/install.mac.extra.yml (Darwin) and etc/install.win.yml (Windows/WSL). Machine-local overrides live in local/ (not tracked).
The local/ directory (not tracked) holds machine-specific config that is never checked in:
| File | Purpose |
|---|---|
local/gitconfig |
Git identity (name, email); created by bootstrap from template |
local/zsh.zsh |
Extra zsh config, aliases, etc.; sourced at end of .zshrc |
local/install.yml |
Extra dotbot symlinks; applied at end of ./install |
- bin: scripts and binaries used in repo (or commonly by me)
- cfg: supporting configuration assets referenced by scripts/configs
- etc: configuration files
- ext: external files and folders (submodules like
Dotbot, for instance) - lib: helper libraries used by scripts
- local: machine-local overrides (not tracked, see above)
- llm: prompt templates and shared string mappings for LLM tooling
- sys: files to be installed on the system (not home folder)
- win: Windows/WSL specific assets and config