---
visibility: public
---

# Dotfiles

**repo:** [webpro/awesome-dotfiles](https://github.com/webpro/awesome-dotfiles)  
**category:** [[development-environment|Development Environment]]
**related:** [[dev-env|Dev Env]] · [[shell|Shell]]

---

# Awesome Dotfiles [![Awesome][2]][1]

A curated list of dotfiles resources. Inspired by the [awesome][3] list thing. Note that some articles or tools may look
old or old-fashioned, but this usually means they're battle-tested and mature (like dotfiles themselves). Feel free to
propose new articles, projects or tools!

## Articles

### Introductions

- [Getting started with dotfiles][4], [Lars Kappert][5]
- [Getting started with dotfiles][6], [Dries Vints][7]
- [Managing your dotfiles][8], [Lars Kappert][5]
- [Dotfiles Are Meant to Be Forked][9], [Zach Holman][10]
- [Dotfile discovery][11], [Wynn Netherland][12]
- [I do Dotfiles!][13], [Jogendra][14]

### Tutorials

- [Setting up a new (OS X) development machine: Part 3 - Dotfiles and custom SSH config][15]
- [Setting Up a Mac Dev Machine From Zero to Hero With Dotfiles][16]
- [Using Git and [GitHub](/@harrisonqian/awesome/wiki/development-environment/github) to manage your dotfiles][17]
- [conf.d like directories for zsh/bash dotfiles][18]
- [Managing your dotfiles][19]
- [The best way to store your dotfiles: A bare Git repository][20]
- [Dotfiles Management][21]

### Shell startup

- [Shell startup scripts][22]
- [Zsh/Bash startup files loading order][23]

### Using specific tools

- [Using GNU Stow to manage your dotfiles][24]
- [Managing Dotfile Symlinks with GNU Stow][25]
- [Dotfiles and dev tools provisioned by Ansible][26]

## Find dotfiles repos

There are many great dotfiles repos out there, each containing their own inspiration and gems. One way to go through
them is to [search GitHub for "dotfiles"][27].

Also see:

- [Google for "dotfiles"][28]
- [Archlinux collection][29]
- Tip: search for a filename on [GitHub](/@harrisonqian/awesome/wiki/development-environment/github), e.g. [path:\*\*/.gitconfig][30].

## Example dotfiles repos

A collection of the most popular, well-maintained, and collaborative dotfiles repositories & frameworks. Some projects
contain just the dotfiles. Others go further by allowing you to easily add your own custom dotfiles, and some include
scripts to manage dotfiles and plugins.

### Bash

| Title                         | Description                                  | Focus                                                                                                                        |
| :---------------------------- | :------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------- |
| [Bash it][31]                 | Community bash framework.                    | Autocompletion, themes, aliases, custom functions. Well-structured framework                                                 |
| [Mathias’s dotfiles][32]      | Sensible hacker defaults for macOS           | 🔧 .files, including \~/.macos — sensible hacker defaults for macOS                                                          |
| [webpro's dotfiles][33]       | macOS dotfiles                               | Bash, Homebrew, Brew Cask, Git, Node.js, Hammerspoon.                                                                        |
| [rootbeersoup's dotfiles][34] | Effortless Bash, Vim and macOS configuration | A `curl \| sh` installer and a Makefile offer portable and effortless setup for either permanent or temporary configuration. |

### Zsh

| Title                      | Description                                                                                                         | Focus                                                                                                                                            |
| :------------------------- | :------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------- |
| [Nick Khan's dotfiles][35] | Personal dotfiles for configuring macOS environment with Zsh and Homebrew. No fluff, only the stuff I actually use. | Zsh, Git (w/ aliases), Visual Studio Code, Ghostty, shell aliases, sensible macOS defaults, custom CLI script, etc.                              |
| [thoughtbot dotfiles][36]  | Set of vim, zsh, git, and tmux configuration files                                                                  | Zsh, vim, tmux, git, homebrew. Uses [rcm][37].                                                                                                   |
| [oh-my-zsh][38]            | Community-driven framework for managing your zsh configuration.                                                     | Oh My Zsh is an open source, community-driven framework for managing your Zsh configuration                                                      |
| [Prezto][39]               | The configuration framework for Zsh.                                                                                | Enriches the command line interface environment with sane defaults, aliases, functions, auto completion, and prompt themes.                      |
| [Dries's dotfiles][40]     | Simplified approach to dotfiles for macOS                                                                           | Zsh, Oh My Zsh, macOS, Homebrew, Mackup                                                                                                          |
| [sobolevn's dotfiles][41]  | Dotfiles for the developer happiness                                                                                | macOS, zsh, brew, vscode, codespaces, python, node, elixir                                                                                       |
| [yutkat's dotfiles][42]    | Well-maintained dotfiles that use CI to test and measure startup speeds.                                            | Zsh, Neovim, Wezterm, swaywm working on Arch/Ubuntu/Fedora Linux.                                                                                |
| [Luke's voidrice][43]      | My dotfiles (deployed by LARBS)                                                                                     | Zsh, vim/nvim, zsf                                                                                                                               |
| [2KAbhishek's dots2k][44]  | Passionately crafted, extensible dotfiles with multi platform support                                               | CLI tools at core, with extensions for different platforms (windows/mac/android), editors and window managers                                    |
| [Zim][45]                  | Modular, customizable, and blazing fast Zsh framework                                                               | Zim is a Zsh configuration framework that bundles a plugin manager, useful modules, and a wide variety of themes, without compromising on speed. |

### Fish

| Title                 | Description                                           | Focus                                                                            |
| :-------------------- | :---------------------------------------------------- | :------------------------------------------------------------------------------- |
| [oh-my-fish][46]      | The Fish Shell Framework                              | Core infrastructure to allow you to install packages to extend/modify your shell |
| [Paul's dotfiles][47] | paul's fish, bash, git, etc config files. good stuff. | Fish, macOS, Homebrew, Custom Shell functions                                    |

### Ansible

| Title                   | Description                                  | Focus                                                                           |
| :---------------------- | :------------------------------------------- | :------------------------------------------------------------------------------ |
| [.dots][48]             | New and upgraded dotfiles, now with Ansible! | Completely automated desktop setup, configuration and maintenance using Ansible |
| [Mac Dev Playbook][49]  | Mac setup and configuration via Ansible      | Full macOS dev machine setup including Homebrew, dotfiles, apps, and OS config  |
| [sloria's dotfiles][50] | sloria's dotfiles as Ansible roles           | Sets up a full local development environment with a single command              |

## Tools

- [Ansible][51] - Radically simple configuration-management, application deployment, task-execution, and multinode
  orchestration engine.
- [chezmoi][52] - Manage your dotfiles securely across multiple machines.
- [comtrya][53] - Configuration management for localhost, written in [Rust](/@harrisonqian/awesome/wiki/programming-languages/rust), for [Linux](/@harrisonqian/awesome/wiki/platforms/linux), BSD, macOS, and [Windows](/@harrisonqian/awesome/wiki/platforms/windows).
- [dotbot][54] - Tool that bootstraps your dotfiles.
- [dotdrop][55] - Save your dotfiles once, deploy them everywhere.
- [dotter][56] - A dotfile manager and templater written in [Rust](/@harrisonqian/awesome/wiki/programming-languages/rust).
- [dots][57] - Opinionated dotfiles generator that allows quick configuration of different window managers in multiple
  OSs!
- [Fisher][58] - A package manager for [Fish](/@harrisonqian/awesome/wiki/development-environment/fish).
- [fresh][59] - Keep your dotfiles fresh. Fresh is a tool to source [shell](/@harrisonqian/awesome/wiki/development-environment/shell) configuration (aliases, functions, etc) from
  others into your own configuration files.
- [GNU Stow][60] - Symlink farm manager which takes distinct packages of software and/or data located in separate
  directories on the filesystem, and makes them appear to be installed in the same place.
- [home-manager][61] - Manage a user environment using Nix.
- [homeshick][62] - Git dotfile synchronizer written in Bash.
- [lnk][63] - Git-native dotfiles management without extra config.
- [mackup][64] - Keep your application settings in sync (macOS/Linux).
- [OpenBoot][65] - Mac dev environment manager that captures and restores Homebrew packages, dotfiles, [shell](/@harrisonqian/awesome/wiki/development-environment/shell)
  configuration, and macOS preferences via interactive TUI.
- [rcm][37] - rc file (dotfile) management.
- [rotz][66] - Fully [cross-platform](/@harrisonqian/awesome/wiki/platforms/cross-platform) dotfile manager and dev environment bootstrapper written in [Rust](/@harrisonqian/awesome/wiki/programming-languages/rust).
- [themer][67] - Manage and generate themes across your development tools from within your dotfiles.
- [toml-bombadil][68] - Templatize and manage your dotfiles.
- [xdg-ninja][69] - A [shell](/@harrisonqian/awesome/wiki/development-environment/shell) script which checks your $HOME for unwanted files and directories.
- [yadm][70] - Tool for managing a collection of files across multiple computers, using a shared Git repository and some
  additional features.
- [yolk][71] - Dotfile manager with inline templating via comments, so files stay valid even un-deployed.

### macOS

- [dockutil][72] - Command line tool for managing dock items.
- [mas][73] - Mac App Store command line interface.

## Miscellaneous

- [dotfiles.[github](/@harrisonqian/awesome/wiki/development-environment/github).io][74] - Your unofficial guide to dotfiles on [GitHub](/@harrisonqian/awesome/wiki/development-environment/github).
- [Filesystem Hierarchy Standard][75] - Directory structure and directory contents in [Linux](/@harrisonqian/awesome/wiki/platforms/linux) distributions.
- [XDG Base Directory Specification][76] - [Summary][77]
- [A lesson in shortcuts][78] - How the idea of "hidden" or "dot" files was born, by Rob Pike (originally posted on
  Google+).

## Related Lists

- [Awesome Dev Env][79] - Curated list of [awesome](/@harrisonqian/awesome/wiki/miscellaneous/awesome) tools, resources and workflow [tips](/@harrisonqian/awesome/wiki/programming-languages/tips) making an [awesome](/@harrisonqian/awesome/wiki/miscellaneous/awesome) development
  environment.
- [Awesome Fish][80] - Curated list of packages, prompts, and resources for the [fish](/@harrisonqian/awesome/wiki/development-environment/fish) [shell](/@harrisonqian/awesome/wiki/development-environment/shell).
- [Awesome Shell][81] - Curated list of [awesome](/@harrisonqian/awesome/wiki/miscellaneous/awesome) command-line [frameworks](/@harrisonqian/awesome/wiki/front-end-development/frameworks), toolkits, guides and gizmos.
- [Awesome Sysadmin][82] - A curated list of amazingly [awesome](/@harrisonqian/awesome/wiki/miscellaneous/awesome) open source sysadmin resources.
- [Awesome Zsh Plugins][83] - List of [Zsh plugins](/@harrisonqian/awesome/wiki/development-environment/zsh-plugins) suitable for use with oh-my-zsh, antigen & Prezto.
- [Terminals Are Sexy][84] - A curated list of Terminal [frameworks](/@harrisonqian/awesome/wiki/front-end-development/frameworks), plugins & resources for CLI lovers.

## Archive/abandoned projects

- [antigen][85]
- [bashdot][86]
- [Bashstrap][87]
- [battleschool][88]
- [Bork][89]
- [Cider][90]
- [dev-setup][91]
- [dotbare][92]
- [dotfiles][93]
- [dotstow][94]
- [Eduardo's dotfiles][95]
- [ellipsis][96]
- [emplace][97]
- [holman does dotfiles][98]
- [homesick][99]
- [Kevin's dotfiles][100]
- [kody][101]
- [macOS Defaults][102]
- [osxc][103]
- [Pearl][104]
- [rkalis's dotfiles][105]
- [vcsh][106] ([article][107], [article][108])
- [YADR][109]
- [Zero.sh][110]

## License

[![CC0][112]][111]

To the extent possible under law, [Lars Kappert][113] has waived all copyright and related or neighboring rights to this
work.

[1]: https://awesome.re
[2]: https://awesome.re/badge.svg
[3]: https://github.com/sindresorhus/awesome
[4]: https://www.webpro.nl/articles/getting-started-with-dotfiles
[5]: https://github.com/webpro
[6]: https://driesvints.com/blog/getting-started-with-dotfiles/
[7]: https://github.com/driesvints
[8]: https://www.webpro.nl/articles/managing-your-dotfiles
[9]: https://zachholman.com/2010/08/dotfiles-are-meant-to-be-forked/
[10]: https://zachholman.com
[11]: https://wynnnetherland.com/journal/dotfiles-discovery/
[12]: https://wynnnetherland.com
[13]: https://jogendra.dev/i-do-dotfiles
[14]: https://jogendra.dev
[15]: https://mattstauffer.com/blog/setting-up-a-new-os-x-development-machine-part-3-dotfiles-rc-files-and-ssh-config/
[16]: https://code.tutsplus.com/setting-up-a-mac-dev-machine-from-zero-to-hero-with-dotfiles--net-35449t
[17]: http://blog.smalleycreative.com/tutorials/using-git-and-github-to-manage-your-dotfiles/
[18]: https://chr4.org/blog/2014/09/10/conf-dot-d-like-directories-for-zsh-slash-bash-dotfiles/
[19]: https://www.anishathalye.com/2014/08/03/managing-your-dotfiles/
[20]: https://www.atlassian.com/git/tutorials/dotfiles
[21]: https://mitxela.com/projects/dotfiles_management
[22]: https://blog.flowblok.id.au/2013-02/shell-startup-scripts.html
[23]: https://shreevatsa.wordpress.com/2008/03/30/zshbash-startup-files-loading-order-bashrc-zshrc-etc/
[24]: http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html
[25]: https://spin.atomicobject.com/manage-dotfiles-gnu-stow/
[26]: http://palcu.blogspot.com/2014/06/dotfiles-and-dev-tools-provisioned-by.html
[27]: https://github.com/search?q=dotfiles&type=Repositories
[28]: https://www.google.nl/search?q=dotfiles
[29]: https://wiki.archlinux.org/index.php/Dotfiles
[30]: https://github.com/search?type=code&q=path%3A**%2F.gitconfig
[31]: https://github.com/Bash-it/bash-it
[32]: https://github.com/mathiasbynens/dotfiles
[33]: https://github.com/webpro/dotfiles
[34]: https://github.com/darrylabbate/dotfiles
[35]: https://github.com/nicksp/dotfiles/
[36]: https://github.com/thoughtbot/dotfiles
[37]: https://github.com/thoughtbot/rcm
[38]: https://ohmyz.sh
[39]: https://github.com/sorin-ionescu/prezto
[40]: https://github.com/driesvints/dotfiles
[41]: https://github.com/sobolevn/dotfiles
[42]: https://github.com/yutkat/dotfiles
[43]: https://github.com/LukeSmithxyz/voidrice
[44]: https://github.com/2KAbhishek/dots2k
[45]: https://github.com/zimfw/zimfw
[46]: https://github.com/oh-my-fish/oh-my-fish
[47]: https://github.com/paulirish/dotfiles
[48]: https://github.com/Addvilz/dots
[49]: https://github.com/geerlingguy/mac-dev-playbook
[50]: https://github.com/sloria/dotfiles
[51]: https://www.ansible.com
[52]: https://github.com/twpayne/chezmoi
[53]: https://github.com/comtrya/comtrya
[54]: https://github.com/anishathalye/dotbot
[55]: https://github.com/deadc0de6/dotdrop
[56]: https://github.com/SuperCuber/dotter
[57]: https://github.com/ulises-jeremias/dotfiles
[58]: https://github.com/jorgebucaran/fisher
[59]: https://freshshell.com
[60]: http://www.gnu.org/software/stow/
[61]: https://github.com/nix-community/home-manager
[62]: https://github.com/andsens/homeshick
[63]: https://github.com/yarlson/lnk
[64]: https://github.com/lra/mackup
[65]: https://github.com/openbootdotdev/openboot
[66]: https://github.com/volllly/rotz
[67]: https://github.com/themerdev/themer
[68]: https://github.com/oknozor/toml-bombadil
[69]: https://github.com/b3nj5m1n/xdg-ninja
[70]: https://github.com/TheLocehiliosan/yadm
[71]: https://github.com/elkowar/yolk
[72]: https://github.com/kcrawford/dockutil
[73]: https://github.com/mas-cli/mas
[74]: https://dotfiles.github.io/
[75]: https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
[76]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
[77]: https://wiki.archlinux.org/title/XDG_Base_Directory
[78]: https://web.archive.org/web/20180827160401/https://plus.google.com/+RobPikeTheHuman/posts/R58WgWwN9jp
[79]: https://github.com/jondot/awesome-devenv
[80]: https://github.com/jorgebucaran/awsm.fish
[81]: https://github.com/alebcay/awesome-shell
[82]: https://github.com/awesome-foss/awesome-sysadmin
[83]: https://github.com/unixorn/awesome-zsh-plugins
[84]: https://github.com/k4m4/terminals-are-sexy
[85]: http://antigen.sharats.me
[86]: https://github.com/bashdot/bashdot
[87]: https://github.com/barryclark/bashstrap
[88]: https://github.com/spencergibb/battleschool
[89]: https://github.com/mattly/bork
[90]: https://github.com/msanders/cider
[91]: https://github.com/donnemartin/dev-setup
[92]: https://github.com/kazhala/dotbare
[93]: https://github.com/jbernard/dotfiles
[94]: https://github.com/clayrisser/dotstow
[95]: https://github.com/eduardolundgren/dotfiles
[96]: https://github.com/ellipsis/ellipsis
[97]: https://github.com/tversteeg/emplace
[98]: https://github.com/holman/dotfiles
[99]: https://github.com/technicalpickles/homesick
[100]: https://github.com/kdeldycke/dotfiles
[101]: https://github.com/jh3y/kody
[102]: https://github.com/kevinSuttle/macOS-Defaults
[103]: http://osxc.github.io
[104]: https://github.com/pearl-core/pearl
[105]: https://github.com/rkalis/dotfiles
[106]: https://github.com/RichiH/vcsh
[107]: https://blog.tfnico.com/2014/03/managing-dot-files-with-vcsh-and-myrepos.html
[108]: https://www.kunxi.org/blog/2014/02/manage-dotfiles-using-vcsh-and-mr/
[109]: http://skwp.github.io/dotfiles/
[110]: https://github.com/zero-sh/zero.sh
[111]: https://creativecommons.org/publicdomain/zero/1.0/
[112]: https://licensebuttons.net/p/zero/1.0/88x31.png
[113]: https://www.webpro.nl
