Make every Linux box feel like home.#
Homie is a single binary that turns a fresh Linux install into your Linux install — dotfiles, packages, setup scripts, all from one repo you own. One command from a bare box to a working environment.
curl https://raw.githubusercontent.com/you/dotfiles/main/bootstrap.sh | bashThat’s it. That’s the whole setup story.
What you get#
- Symlinks, not copies. Edit
~/.zshrcand you’re editing the file in your repo.git diffshows what changed. Nochezmoi editindirection. - One repo, three jobs. Dotfiles + system packages + setup scripts, declared in one
homie.toml. No glue between separate tools. - No state file. Every
hm applyis a full reconciliation. Idempotent by construction — re-running is always safe. - Static binary. No Python, no Ruby, no daemon. ~3 MB, single file.
- Charm-powered TUI. Spinners, progress, a friendly summary at the end. Plain output in CI.
How it looks#
# homie.toml
[user]
name = "Scout Homes"
email = "scout@homie.sh"
[profile]
name = "personal"
default_shell = "zsh"
[packages]
all = ["git", "zsh", "neovim", "tmux", "ripgrep", "fd", "fzf"]
fedora = ["util-linux-user"]
ubuntu = ["fd-find"]
[vars]
EDITOR = "nvim"dotfiles/
homie.toml
bootstrap.sh
dotfiles/ ← symlinked into $HOME
.zshrc
.gitconfig
templates/ ← rendered into $HOME with var-sub + conditionals
.gitconfig.tmpl
scripts/ ← ordered setup steps
01-shell.sh
02-tools.shWhy not just…?#
| Homie | chezmoi | Ansible | Stow | Nix | |
|---|---|---|---|---|---|
| Dotfile model | 🔗 symlink | 📋 copy + indirection | 📋 copy / template | 🔗 symlink | ❄️ declarative store |
| Provisioning | ✅ | ❌ | ✅ | ❌ | ✅ |
| State file | ❌ | ✅ | ❌ | ❌ | ✅ |
| Runtime | ⚡ Native | ⚡ Native | 🐍 Python | 🐪 Perl | ❄️ Nix |
| Weight | 🐁 | 🐕 | 🐘 | 🐁 | 🐘 |
Get started#
- Grab the latest binary from Releases.
hm init ~/dotfilesto scaffold a starter repo.- Edit
homie.toml, commit, push. - On any other Linux box:
curl …/bootstrap.sh | bash.
