Hola
Zero-dependency macOS setup tool. Combines Brewfile, mise, and dotfiles management into a single binary.
Install / Use
/learn @ratazzi/HolaREADME
Hola
Brewfile + mise.toml + dotfiles = Done
Set up your Mac in minutes. Hola is a single-binary configuration manager written in Zig. It installs Homebrew packages, sets up dotfiles, and configures macOS defaults—all from a single command.
What You Need
Create username/dotfiles on GitHub with three simple files:
1. 🍺 ~/.Brewfile (Homebrew's native format)
brew "tmux"
brew "neovim"
cask "ghostty"
cask "zed@preview"
cask "orbstack"
Homebrew integration.
2. 🛠️ mise.toml (mise's native format)
[tools]
node = "24"
python = "3.14"
Lock your tool versions. Never drift.
3. 📂 ~/.dotfiles/ (your dotfiles)
dotfiles/.zshrc → ~/.zshrc
dotfiles/.gitconfig → ~/.gitconfig
Symlink mapping. Dead simple.
No custom syntax. No learning required.
Installation
Quick Install (Recommended)
curl -fsSL https://hola.ac/install | bash
This downloads the binary for your architecture (arm64/x86_64) and installs it to the current directory.
Homebrew
brew install ratazzi/hola/hola
Manual Download
Download the latest release from GitHub Releases:
# macOS (Apple Silicon)
curl -fsSL https://github.com/ratazzi/hola/releases/latest/download/hola-macos-aarch64 -o hola
chmod +x hola
xattr -d com.apple.quarantine hola
sudo mv hola /usr/local/bin/
# Linux (x86_64)
curl -fsSL https://github.com/ratazzi/hola/releases/latest/download/hola-linux-x86_64 -o hola
chmod +x hola
sudo mv hola /usr/local/bin/
Why Hola?
Convention Over Configuration
- Zero learning curve: Use Brewfile and mise.toml you already know
- No custom syntax: No templates, no special comments, no magic
- Native integration: First-class Homebrew and mise support
- macOS declarative: Configure Dock and system preferences as code
- Tool version locking: Reproducible environments across machines
It Just Works™
# One command to set up everything
hola apply
# Packages, tools, dotfiles, and system settings - all done
Advanced: ~/.config/hola/provision.rb (Optional)
90% of users only need Brewfile + mise.toml + dotfiles/.
For the other 10% who need complex logic, we provide a beautiful Ruby DSL:
# resources.rb - reads like English, because it's Ruby
file "/etc/hosts" do
content "127.0.0.1 local.dev"
end
execute "install-oh-my-zsh" do
command 'sh -c "$(curl -fsSL https://ohmyz.sh/install.sh)"'
not_if { Dir.exist?("~/.oh-my-zsh") }
end
macOS Native Integration
Configure macOS settings declaratively with full type safety:
# Configure macOS Dock
macos_dock do
apps [
'/Applications/Google Chrome.app/',
'/Applications/Zed Preview.app/',
'/Applications/Ghostty.app/',
]
orientation "bottom"
autohide false
magnification true
tilesize 50
largesize 40
end
# Keyboard repeat rate (lower = faster)
macos_defaults 'keyboard repeat rate' do
global true
key 'KeyRepeat'
value 1
end
macos_defaults 'initial key repeat delay' do
global true
key 'InitialKeyRepeat'
value 15
end
macos_defaults 'show all file extensions' do
domain 'com.apple.finder'
key 'AppleShowAllExtensions'
value true
end
Features:
- ✅ Type-safe: Boolean, Integer, Float, String - automatically handled
- ✅ Idempotent: Only updates when values differ
- ✅ Auto-restart: Automatically restarts Finder/Dock/SystemUIServer when needed
- ✅ No manual
defaultscommands: Just declare what you want
No YAML hell. No cryptic property lists. Just readable code.
If you know Ruby, you already know this. If you don't, you can still read it.
Performance
Built with Zig. Stupid Fast.
- ~6 MB - Single static binary with embedded Ruby interpreter
- 8ms - Cold start time
- Zero dependencies - No runtime required
- Native code - Compiled for your architecture
Commands
hola apply # Run Brewfile + mise.toml + symlinks
hola provision # Run provision.rb (advanced)
License
MIT
Stop learning tools. Start coding.
Related Skills
node-connect
352.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
352.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
352.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
