qali 0.3.6

QALI: Quick ALIasing in the terminal
Documentation

QALI (q)

Quick Aliasing

Crates.io Crates.io

asciicast

Purpose

QALI can...

  • Shorten long & complex commands
  • Act as a namespace for your custom scripts (stop worrying about conflicting names with system commands!)
  • Make you type less
  • Reduce your mental workload

Installation

Note: QALI is not gauranteed to work in Windows.

From source

download the latest release of your platform, unzip, and move q and qali binaries to your /usr/local/bin folder

Homebrew

brew tap JettChenT/qali
brew intall qali

Cargo

cargo install qali

This installs two separate binaries : q and qali.

The command q is meant for actions with the highest usage frequency, such as setting and alias or executing a command.

The command qali is meant as a companion allowing for subcommands and more functionality without influencing the namespace in q which is set reserved completly by the users.

Usage

q --help

qali --help

Supported alias types:

  • Command: one liners, eg. q -s hi "echo hi"
  • Shell: Shell scripts, eg. q -s hi hello.sh (EXPERIMENTAL)
  • Python: Python scripts, eg. q -s hi hello.py (EXPERIMENTAL)
  • URI: open URI in default application, eg. q -s hi https://beta.sayhello.so (EXPERIMENTAL)

Examples:

Set an alias

Example: set gs as git status

q -s gs "git status"

Set p as python if p doesn't exist

q p python 

Set hi to ./hi.py with qali

qali set hi ./hi.py

Execute aliases interactively (fuzzy select)

Method 1: q

Method 2: qali select

Execute aliases directly

Example: execute git status

q gs

Execute python --version (As of now, use -- when executing a command to stop flags meant for the program being parsed as flags for qali itself.)

q -- p --version

List all existing commands

qali list

Alternatively, you can set q -s ls "qali list" to shorten this.

Remove a command

Example: remove gs as git status:

qali remove gs

Alternatively, you can set q -s rm "qali remove" to shorten this.

Features to implement

  • Better output formatting
  • Subcommands
  • Change storage method to json or other serde formats
  • Allow users to set descriptions for each command
  • Linking to shell scripts
  • Linking to python scripts(support for python environments)
  • TUI to navigate existing commands
  • Implement fuzzy finding
  • More customizable options eg. print-only