| Crates.io | sobriquet |
| lib.rs | sobriquet |
| version | 0.1.4 |
| created_at | 2026-01-24 21:22:29.440624+00 |
| updated_at | 2026-01-25 16:30:17.738917+00 |
| description | Fuzzy finder for shell aliases |
| homepage | |
| repository | https://github.com/benjaminch/sobriquet |
| max_upload_size | |
| id | 2067541 |
| size | 231,686 |
your shell aliases, but better
I have quite a few shell aliases, especially for my daily work dealing with a lot of Kubernetes clusters and configurations. Unfortunately, I don't always remember all of them.
I know they're there but always have a typo in them, and it's created a lot of frustration. I'd spend more time trying to recall or correct an alias than actually running the command.
sobriquet solves this.
sobriquet is a blazingly fast fuzzy finder for your shell aliases. It reads your aliases and presents them in a beautiful, full-screen interactive search interface. Just type to search, preview the exact command before executing it, and press Enter to run it.
Think of it like Atuin but for your aliases instead of shell history.
init command for easy setup$ sq
ββ sobriquet βββββββββββββββββββββββββββββββββββββββββ
β k8sββββββββββββββββββββββββββββ 3/150 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β > k8s_prod β
β > k8s_staging β
β > k8s_logs β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββ
β KUBECONFIG=~/.kube/prod.yaml kubectl β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Command: kubectl β
β Args: (none) β
β Source: ~/.zshrc:42 β
β Usage: 157 times (last used 2 hours ago) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Start typing to search, press Enter to select.
brew tap benjaminch/tap
brew install sobriquet
yay -S sobriquet
# or
paru -S sobriquet
Or manually:
git clone https://aur.archlinux.org/sobriquet.git
cd sobriquet
makepkg -si
cargo install sobriquet
This installs sobriquet globally and works on any system with Rust installed.
git clone https://github.com/benjaminch/sobriquet.git
cd sobriquet
cargo install --path .
Download the latest binary for your platform from the Releases page.
# Apple Silicon
curl -LO https://github.com/benjaminch/sobriquet/releases/latest/download/sobriquet-aarch64-apple-darwin.tar.gz
tar xzf sobriquet-aarch64-apple-darwin.tar.gz
mv sobriquet-aarch64-apple-darwin/sobriquet ~/.local/bin/
# Intel
curl -LO https://github.com/benjaminch/sobriquet/releases/latest/download/sobriquet-x86_64-apple-darwin.tar.gz
tar xzf sobriquet-x86_64-apple-darwin.tar.gz
mv sobriquet-x86_64-apple-darwin/sobriquet ~/.local/bin/
# x86_64
curl -LO https://github.com/benjaminch/sobriquet/releases/latest/download/sobriquet-x86_64-unknown-linux-musl.tar.gz
tar xzf sobriquet-x86_64-unknown-linux-musl.tar.gz
mv sobriquet-x86_64-unknown-linux-musl/sobriquet ~/.local/bin/
# ARM64
curl -LO https://github.com/benjaminch/sobriquet/releases/latest/download/sobriquet-aarch64-unknown-linux-gnu.tar.gz
tar xzf sobriquet-aarch64-unknown-linux-gnu.tar.gz
mv sobriquet-aarch64-unknown-linux-gnu/sobriquet ~/.local/bin/
Download sobriquet-x86_64-pc-windows-msvc.zip from the releases page and extract it to a directory in your PATH.
After installing, set up shell integration. The easiest way is to use the built-in init command:
Add this to your ~/.zshrc:
eval "$(sobriquet init zsh)"
Add this to your ~/.bashrc:
eval "$(sobriquet init bash)"
Add this to your ~/.config/fish/config.fish:
sobriquet init fish | source
Then restart your shell and you're ready to go!
# Run with Ctrl+S or just type:
sq
Just run sobriquet (or sq if you set up the alias):
sq
The full-screen search interface will open. Start typing to search, use arrow keys to navigate, and press Enter to execute.
sobriquet --list
Or with formatting:
sobriquet --list --format json
sobriquet --list --format json-pretty
sobriquet --query "git"
This opens the search interface with "git" pre-filled.
sobriquet stats
See your most-used aliases and usage patterns:
# Clear statistics
sobriquet stats clear
sobriquet audit
Scan for potential security issues:
# Check for secrets only
sobriquet audit secrets
# Check for duplicate commands
sobriquet audit duplicates
# Zsh
sobriquet generate complete-zsh > ~/.zsh/completions/_sobriquet
# Bash
sobriquet generate complete-bash > ~/.local/share/bash-completion/completions/sobriquet
# Fish
sobriquet generate complete-fish > ~/.config/fish/completions/sobriquet.fish
sobriquet looks for a config file in these locations (in order of priority):
~/.config/sobriquet/config.toml (recommended, XDG standard)~/.config/sobriquet.toml~/.sobriquet.tomlRun sobriquet config to see which config file is being used.
[ui]
height = "100%" # Full screen by default
prompt = "Select alias > " # Search prompt
preview = true # Show rich preview
preview_position = "right" # Preview position: right, up, down
[shell]
prefer = "zsh" # Preferred shell
cache_ttl = 300 # Cache validity in seconds (0 to disable)
[output]
color = "auto" # Color mode: auto, always, never
sobriquet, it launches a full-screen fuzzy finder using skimThe key difference from just typing an alias: you see the expanded command before execution, making it impossible to have typos frustrate you.
| Operation | Time |
|---|---|
| Cold start (no cache) | ~2s |
| Warm start (cached) | ~3ms |
| Search/Filter | <10ms |
| Shell startup overhead | <5ms |
sobriquet is carefully optimized to be invisible in your workflow.
sobriquet can audit your aliases for:
rm -rf, sudo rm, etc.All analysis happens locally on your machine. Nothing is sent anywhere.
A sobriquet is a nickname or epithet that describes someone or something. Your shell aliases are exactly thatβcustom nicknames for your commands. The tool helps you remember and use them effectively.
git clone https://github.com/benjaminch/sobriquet.git
cd sobriquet
# Build
cargo build --release
# Run tests
cargo test
# Run clippy
cargo clippy --all-targets
# Install
cargo install --path .
The minimum supported Rust version is 1.92.0.
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature)git push origin feature/amazing-feature)Please make sure to:
cargo fmt before committingcargo clippy --all-targets and fix any warningsThis project is licensed under the MIT License - see the LICENSE file for details.