homeshick
Manage dotfiles across multiple machines
TLDR
Create a new castle
Add a file to your castle
Go to a castle
Clone a castle
Symlink all files from a castle
SYNOPSIS
homeshick [command] [options] [arguments]
PARAMETERS
clone URL [CASTLE]
Clone castle from URL into $HOMESICK, name it CASTLE if specified.
generate [SHELL] [CASTLES...]
Generate shell code for autocompletion and cd integration (supports sh, bash, zsh, fish).
list [-u]
List installed castles (-u shows upstream changes).
symlink [CASTLE]
Create symlinks from castle(s) to $HOME (all if no CASTLE).
track FILE [CASTLE]
Symlink FILE into castle and add to Git.
untrack FILE [CASTLE]
Remove symlink and Git tracking for FILE.
remove CASTLE
Remove castle directory and symlinks.
-h, --help
Show help.
-v, --version
Show version.
DESCRIPTION
Homeshick is a POSIX shell tool for managing dotfiles by organizing them into separate Git repositories called castles. Each castle is cloned into $HOMESICK (default $HOME/.homesick) and symlinked into your home directory.
It simplifies dotfile management by allowing you to track configurations per project or tool, avoiding a monolithic repo. Key features include cloning castles, generating shell integration, symlinking files, tracking/untracking specific files, and listing available castles.
Unlike heavier tools, homeshick is fast, dependency-free (pure shell), and focuses on simplicity. It's ideal for users wanting modular dotfiles without Ruby or other runtimes required by predecessors like homesick. Usage starts with cloning a castle, symlinking, and adding shell hooks for autocompletion and cd integration.
CAVEATS
Requires $HOMESICK env var or defaults to $HOME/.homesick.
Run homeshick generate after install for shell integration.
Conflicts possible with existing dotfiles; use track selectively.
INSTALLATION
git clone https://github.com/andsens/homeshick.git $HOME/.homeshick
homeshick --sh >> ~/.profile # or ~/.bashrc, ~/.zshrc
EXAMPLE USAGE
homeshick clone https://github.com/user/dotfiles vim
homeshick symlink vim
homeshick generate bash
HISTORY
Created in 2013 by Tor Hediger (@andsens) as a faster, shell-only alternative to Ruby-based homesick. Actively maintained on GitHub with focus on speed and POSIX compliance.


