The Ultimate Shell Alias Manager.
Manage, share, and sync shell aliases across your machines with conflict detection, live updates, and zero bloat.
Most alias tools are just "dotfile managers" or heavy frameworks like Oh-My-Zsh. ah is different:
- Live Updates: Install an alias in one terminal tab, and it works in all other open tabs instantly. No
source ~/.zshrcneeded. - Daemon-less: We don't run a background process. We use a lightweight "Stat-Check Hook" that costs microseconds.
- Central Registry: Secure packages from a curated repository.
- Conflict Resolution UI: A beautiful web interface (
ah resolve) to handle alias collisions properly. - Strict Security: Aliases are parsed and sanitized; no arbitrary code execution allowed.
- Atomic Operations: Zero race conditions during concurrent installs.
- Zero Dependency: Single binary, works on macOS and Linux.
- Conflict Safety: Used
gforgit?ahwon't let you install a package that setsgtogrepwithout a warning. - Performance: Compiles all active aliases into a single O(1) source file.
brew tap sarkartanmay393/ah https://github.com/sarkartanmay393/ah
brew install ahcurl -sL https://raw.githubusercontent.com/sarkartanmay393/ah/main/install.sh | bashgo install github.com/sarkartanmay393/ah@latest# Clone and Build
git clone https://github.com/sarkartanmay393/ah
cd ah
go build -o ah main.goInitialize ah (Automatically updates .zshrc/.bashrc)
ah initInstall any package from the registry.
ah install clawdbotPrompts you to review aliases before enabling.
ah disable my-package
# Aliases gone instantly in all tabs
ah enable my-package
# Aliases back instantlyFind packages in the registry.
ah search gitah list # List installed packages
ah remove my-package # Delete package & symlinks
ah doctor --fix # Fix broken paths/permissions- Storage: Packages are cloned to
~/.ah/packages. - Activation: Enabled packages are symlinked to
~/.ah/active. - Compilation:
ahcompiles all active scripts into~/.ah/aliases.compiled.sh. - Live Sync: Your shell prompt checks the timestamp of
~/.ah/state. If it changed, it re-sources the compiled file.
~/.ah/
├── active/ # Symlinks to enabled packages
├── packages/ # Git clones of installed repos
├── aliases.compiled.sh # The single file your shell sources
└── state # 0-byte timestamp file for sync