Minimal. Fast. Opinionated.
A shell environment for developers who value speed and simplicity.
source <(curl -sL dotfiles.download/install)One command. Full setup. Works on macOS and Linux.
Most dotfiles are either too minimal or bloated with features you'll never use. This project is different:
| Problem | Solution |
|---|---|
| Oh-My-Zsh loads 100+ files on startup | We use Sheldon + zsh-defer for lazy loading |
| Complex plugin managers (zinit ice modifiers) | Sheldon: simple TOML config |
| Prompt slows down shell | Warp native prompt / Starship only when needed |
| Hard to sync across machines | Chezmoi templates + single install command |
| Version managers conflict | ASDF handles all runtimes |
This is for you if:
- You use Warp, iTerm, or Alacritty
- You want sub-200ms shell startup
- You hate bloat but love productivity
- You work across macOS and Linux
Shell startup time comparison:
| Setup | Cold Start | Warm Start |
|---|---|---|
| Oh-My-Zsh + p10k | ~800ms | ~400ms |
| Prezto | ~500ms | ~250ms |
| ~(iam) | ~150ms | ~80ms |
How to measure
# Cold start (clear cache)
for i in {1..5}; do time zsh -i -c exit; done
# Or use hyperfine
hyperfine --warmup 3 'zsh -i -c exit'| Tool | Purpose |
|---|---|
| Chezmoi | Dotfiles manager with templating |
| Sheldon | Fast Rust-based zsh plugin manager |
| Starship | Cross-shell prompt (fallback for non-Warp) |
| ASDF | Multi-language version manager |
| fzf | Fuzzy finder + history search |
| Zoxide | Smart cd with frecency |
| eza | Modern ls replacement |
| bat | cat with syntax highlighting |
| ripgrep | Fast grep |
| fd | Fast find |
| fzf | Fuzzy finder |
.
βββ dot_zshrc # Main zsh config
βββ dot_zshrc.d/ # Modular zsh configs
β βββ alias.zsh # Aliases (git, navigation, tools)
β βββ completions.zsh # Completion setup
β βββ functions.zsh # Utility functions
β βββ keybindings.zsh # Key bindings
β βββ plugins.zsh.tmpl # Sheldon + deferred tool inits
β βββ prompt.zsh # Prompt configuration
βββ dot_config/
β βββ sheldon/ # Sheldon plugin config
β βββ starship.toml # Starship prompt config
βββ scripts/
β βββ dotfiles/ # Install/update scripts
βββ Dockerfile # Test environment
# Daily
dotfiles-update # Update packages, plugins, everything
dotfiles-help # Show help and status
# Plugins
sheldon lock --update # Update zsh plugins
# Dotfiles
chezmoi apply # Apply config changes
chezmoi diff # Preview changes before applying
chezmoi edit ~/.zshrc # Edit and auto-applyAfter install, your config lives at ~/.config/chezmoi/chezmoi.toml:
[data]
fname = "Your"
lname = "Name"
email = "you@example.com"
github_login = "username"
gpgsign = false
extra_zsh_plugins = falseEdit and run chezmoi apply to regenerate all configs.
docker build -t dotfiles-test .
docker run -it dotfiles-test- Fork the repo
- Create a branch:
git checkout -b feature/awesome - Make changes and test:
chezmoi apply && exec zsh - Commit:
git commit -m "feat: add awesome feature" - Push and open PR
Please follow Conventional Commits.
Check issues or propose:
- New aliases / functions
- Performance optimizations
- Tool integrations
- Documentation improvements
MIT β Use it, fork it, make it yours.
Built with obsessive attention to startup time.
