| Feature | Description |
|---|---|
| 🔍 Searchable Alias List | Sort by name, command, or scope. Filter with ⌘F instant search. |
| 🏆 Usage Ranking | Aliases ranked by a smart scoring algorithm — prioritizes recently and frequently used commands. |
| 📚 Alias Library | Browse 270+ predefined aliases from GitAlias. Search, filter by category, and add with one click. |
| 💡 Alias Suggestions | Auto-generates alias name candidates using 5 intelligent schemes when creating new aliases. |
| ✏️ Create & Edit | Modal form with real-time validation, live command preview, and smart suggestions. |
| 🗑 Safe Delete | Confirmation dialog before every destructive action. |
Flags push --force, rm -rf, reset --hard, and shell aliases. |
|
| 🌐 Scope Toggle | Switch between Global, Local, and All scopes. |
| 📦 Import / Export | Share alias collections as JSON files. |
| 🛡 Auto-Backup | Backs up ~/.gitconfig before every write operation. |
| ⌨️ Keyboard Shortcuts | ⌘F to search, Escape to close modals. |
| 🚀 Ultra Modern UI | Deep space gradients, dynamic glassmorphism, animated glow effects, and smooth micro-animations. |
GAM uses a scoring algorithm (inspired by alman) to rank aliases by how useful they are to you:
Score = TimeMultiplier × Length^(3/5) × Frequency
| Recency | Multiplier |
|---|---|
| ≤ 1 hour | 4.0× |
| ≤ 1 day | 2.0× |
| ≤ 1 week | 0.5× |
| > 1 week | 0.25× |
- Frequency — More frequently used aliases score higher
- Recency — Recently used aliases get a significant boost
- Length — Longer commands score slightly higher (saving more keystrokes)
- Auto-Reset — When total score exceeds 70,000, all frequencies are halved to prevent inflation
Toggle between A-Z (alphabetical) and 🏆 Rank sorting in the alias list. Usage is tracked automatically when you copy an alias command.
When creating a new alias, type your command first and GAM will suggest alias names using 5 intelligent strategies:
| Scheme | Example | Result |
|---|---|---|
| 🎯 Semantic | checkout |
co |
| ✂️ Abbreviation | log oneline graph |
log |
| 🔤 Vowel Removal | checkout |
chc |
| 🔡 First-Letter Combo | checkout branch |
cbranch |
| 📏 Smart Truncation | checkout |
ch, che, chec |
Suggestions automatically filter out names that conflict with your existing aliases and are sorted by effectiveness. Click any suggestion chip to use it.
Download the latest release for your platform from the GitHub Releases page:
| Platform | File |
|---|---|
| macOS (Apple Silicon) | GAM_x.x.x_aarch64.dmg |
| macOS (Intel) | GAM_x.x.x_x64.dmg |
| Windows | GAM_x.x.x_x64-setup.exe |
| Linux | GAM_x.x.x_amd64.AppImage |
brew install --cask zintaen/tap/gamAuto-Update: GAM checks for updates on every launch and lets you update in-place with one click.
# Clone the repository
git clone https://github.com/zintaen/gam.git
cd gam
# Install dependencies
pnpm install
# Start the app in development mode
pnpm devThe Tauri window opens automatically (first run compiles Rust backend ~2-3 min).
# Run all tests (229 tests: 174 frontend + 55 Rust)
pnpm test
# Run with coverage report
pnpm test -- --coverage
# Run Rust tests
cd src-tauri && cargo test
# Run in watch mode
pnpm test:watchTest coverage (22 suites, 174 frontend + 55 Rust tests):
| Suite | Tests | Covers |
|---|---|---|
types.test.ts |
6 | TypeScript interface verification |
suggestion-service.test.ts |
18 | All 5 suggestion schemes, conflict filtering, edge cases |
gitalias-library.test.ts |
14 | Library data integrity, search, category filtering |
App.test.tsx |
2 | Main application integration layout |
AliasForm.test.tsx |
13 | Form validation, library picker, textarea, edit mode |
AliasList.test.tsx |
6 | Table rendering, sort/filter logic, scope interactions |
useGroups.test.ts |
7 | Group CRUD, active filter, non-Tauri fallbacks |
| + 15 more hook/component suites | 108 | Hooks, components, error boundary, updater |
| Rust unit tests | 55 | git_service, settings, repos, groups, ranking parsers |
See CODEBASE.md for full architecture details including IPC commands, Rust services, frontend hooks, theme system, app data paths, and file dependency map.
Key design decisions:
- CLI-first — All Git operations delegate to
git configCLI rather than parsing.gitconfigfiles - Lightweight — Tauri uses the OS webview (~3–6 MB) instead of bundling Chromium (~150 MB)
- Secure — Uses
std::process::Commandin Rust to prevent command injection - Cross-platform — Supports zsh, bash (plain + timestamped), Fish, and PowerShell shell histories
| Document | Description |
|---|---|
| 📖 User Manual | Full walkthrough of every feature |
| 🧠 Codebase | Architecture, IPC commands, services, file dependencies |
| 🚀 Releasing | Build scripts, CI/CD pipeline, and release checklist |
| 🤝 Contributing | How to contribute, coding standards, and PR guidelines |
| 📜 Code of Conduct | Community expectations |
If GAM saves you time and brainpower, give it a star on GitHub, and consider fueling its development with a banana!
Or scan the QR Code:
This project is licensed under the MIT License.
- Tauri — Lightweight cross-platform desktop framework
- React — UI component library
- Vite — Lightning-fast dev server
- Vitest — Unit testing framework
- GitAlias — Curated collection of 270+ Git aliases powering the Alias Library
- alman — Inspiration for ranking algorithm & alias suggestion schemes



