Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

hiro08gh/alx

Repository files navigation

alx

top image

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

About

A simple alias manager for multiple shells written in Rust.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /