5 releases (3 breaking)
Uses new Rust 2024
| 0.4.0 | Nov 17, 2025 |
|---|---|
| 0.3.1 | Nov 12, 2025 |
| 0.3.0 | Nov 12, 2025 |
| 0.2.0 | Nov 11, 2025 |
| 0.1.0 | Nov 11, 2025 |
#1494 in Command line utilities
270KB
1.5K
SLoC
alx
A simple alias manager for multiple shells written in Rust.
Features
- 🚀 Manage aliases across multiple shells (Bash, Zsh, Fish)
- 📦 Group aliases by category
- 🔍 Search aliases by keyword
- 💾 Import / Export aliases (JSON, TOML)
- 🔄 Automatic sync to shell configuration
Installation
Using Cargo install:
cargo install alx
Quick Start
Initialize
alx init
Choose your shell.
Initialized alx configuration at: "/your_alx_path/alx"
Select your shell:
> zsh (default)
bash
fis
Choose whether to write the 'alx' alias configuration to your shell file. The default is No.
To enable aliases, add the following line to your shell config:
# Add to '/your/.zshrc'
[ -f '/your_alx_path/alx/shell/aliases.sh' ] && source '/your_alx_path/alx/shell/aliases.sh'
Do you want to add this line to '/your/.zshrc' automatically? [y/N]
See below for manual setup.
# Bash (`~/.bashrc`):
[ -f ~/your_alx_path/aliases.sh ] && source ~/your_alx_path/aliases.sh
# Zsh (`~/.zshrc`):
[ -f ~/your_alias_path/aliases.sh ] && source ~/your_alias_path/aliases.sh
# Fish (`~/.config/fish/config.fish`):
source ~/your_alias_path/aliases.sh
Configuration
Initialization automatically creates the following structure in the alx directory.
~/your_alx_path/alx/
├── config.toml # Main configuration
├── aliases.toml # Aliases database
├── shell/
│ └── aliases.sh # Generated shell aliases
└── backups/ # Backup directory
Usage
Show info
alx info
Add an alias
alx add <name> <command> [--description] [--group]
# example
alx add ll "ls -la" --description "List all files" --group general
alx add gs "git status" --group git
List aliases
alx list [--group]
# List all aliases
alx list
# List aliases in a specific group
alx list --group git
Search aliases
alx search git
Edit an alias
alx edit <name> [--command] [--description] [--group]
# example
alx edit ll --command "ls -lah"
alx edit gs --description "Check git status"
Remove aliases
alx remove <name>
# example
alx remove ll gs
Export / Import
This is useful for migrating external files or registering aliases in bulk.
# Export to JSON
alx export --output aliases.json --format json
# Export to TOML
alx export --output aliases.toml --format toml
# Import from fi
alx import aliases.json
View groups
alx groups
Migration guide
You can automatically apply settings from your current Bash shell configuration to alx.
Run the alx migrate command. This command targets files such as .bashrc, .zshrc, and config.fish, specifically focusing on alias (ex: alias gs="git status") definitions within those files.
# Initialize alx
alx init
# Migrate your target shell
alx migrate or alx migrate --from "./.bashrc"
# Check if the aliases are applied correctly
alx list
Remove the aliases from the shell settings, if there are no issues.
Development
Build
cargo build
Run tests
cargo test
Run
cargo run -- <command>
License
MIT License.© hiro08gh
Dependencies
~5–8.5MB
~146K SLoC