Skip to content
💀 (deprecated) Bootstrap your bash/zsh/fish dotfiles in parallel!
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

dotstrap (legacy)

Gem Version Build Status Code Climate Inline docs Dependency Status

This repository has been deprecated. See: dotstrap/dotstrap for the newer version.

Downloads repositories from GitHub in parallel and symbolically links and/or creates a file to be sourced in your ~/.zshrc, ~/.bash_profile, or ~/.config/fish/

get it

gem install dotstrap

or stay on the bleeding edge:

requires bundler

git clone
rake install

use it

download (or update) and configure REPOs:

dotstrap install REPO|FILE

completely remove any symbolic links, source statements from dotstrap's config file, & the repository itself:

dotstrap uninstall REPO

list the URL and install path for all currently installed repositories:

dotstrap list [REPO]

REPO is a GitHub clone URL or repository slug like mwilliammyers/dotstrap-osx

FILE is a newline separated list of REPOS

how it works


add source "$XDG_CONFIG_HOME/dotstrap/config.bash" to your ~/.bash_profile or similar

  • *.bash files' paths are written to: $XDG_CONFIG_HOME/dotstrap/config.bash
  • *.sh files' paths are written to: $XDG_CONFIG_HOME/dotstrap/config.bash


add source "$XDG_CONFIG_HOME/dotstrap/dotstrap.zsh" to your ~/.zshrc

  • *.zsh files' paths are written to: $XDG_CONFIG_HOME/dotstrap/config.zsh
  • *.sh files' paths are written to: $XDG_CONFIG_HOME/dotstrap/config.zsh


add source "$XDG_CONFIG_HOME/dotstrap/" to your ~/.config/fish/

  • ./functions/*.fish are symbolically linked under ~/.config/fish/functions/
  • ./completions/*.fish are symbolically linked under ~/.config/fish/completions/
  • all other *.fish files' paths are written to: $XDG_CONFIG_HOME/dotstrap/

Note: if $XDG_CONFIG_HOME is not set, it defaults to ~/.config. Read about the XDG base directory spec.

in the wild

The entire purpose of dotstrap is to help you make your dotfiles modular while still keeping your prompt speedy. I also wanted to be able to use my dotfiles on bash, zsh and fish (yes I use all three on a daily basis).

There are many repositories out there that will work out of the box with dotstrap and many more that would only require minimal tweaking to get them to work.

Check out the wiki for a good list of repos to get you started.

similar projects

  • antibody: super fast, great app written in go. It only does ZSH and it is dynamic (it doesn't create a static file that can be sourced from your shell's init file), but man those microseconds are precious when it comes to loading my shell prompt. I still use it sometimes though because it is pretty dang cool.
You can’t perform that action at this time.