Dynamic, contextual bash aliases that adapt to your current directory and support advanced features like confirmations and conditionals.
Aliases is a command-line tool that creates dynamic, context-aware aliases for the bash shell. It solves the limitation of static global aliases by allowing directory-specific aliases that activate based on your current working directory, with support for advanced features like confirmations, conditionals, and positional arguments.
Developers and system administrators who frequently use the bash shell and want to streamline their workflow with intelligent, context-sensitive command shortcuts.
It offers a more flexible and powerful alternative to traditional bash aliases by making them dynamic, shareable, and feature-rich, reducing the need to remember complex commands or create numerous similar functions.
Contextual, dynamic aliases for the bash shell
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Aliases activate automatically based on the current directory, reducing cognitive load. For example, typing 'server' in different directories can trigger different commands without manual switching.
Supports per-alias confirmations, backout timers, and conditionals for safer command execution. The YAML config allows settings like 'confirm: true' or 'backout_seconds: 3' to prevent mistakes.
Aliases can be checked into version control or cloned from GitHub via 'aliases clone', facilitating team-wide adoption. This enables seamless sharing of shell workflows across developers.
Allows defining user-specific aliases with priority merging, useful for multi-user environments. Users can be added with 'aliases init --user' and prioritized via config or env vars.
Currently hardcoded to bash shell, with future plans for other shells like zsh. This restricts usability for developers on alternative shells, as noted in the 'Possible future features' section.
Requires initialization in each directory and adding to .bashrc, which can be tedious. The Linux installation involves multiple steps, including manual package installation and shell config updates.
The README admits bugs like unhandled process signals and non-running unit tests, indicating instability. Features like positional arguments have limitations, such as requiring continuous keys (e.g., $0, $1, but not $0, $5).