1 unstable release
Uses new Rust 2024
| 0.1.0 | Sep 1, 2025 |
|---|
#5 in #terminal-command
22KB
417 lines
🍱 bento-cli
A unified command organizer that searches across all your installed commands, packages, aliases, and functions in one place.
Description
Bento is a Rust-based command-line tool that provides a centralized search interface for discovering commands across your entire system. Instead of trying to remember whether that utility you installed was a homebrew formula, an npm package, or a shell alias, Bento searches everything simultaneously and presents results with clear categorization and color coding. It supports fuzzy matching, making it easy to find commands even when you only remember part of the name.
Bento searches across:
- System binaries in your PATH
- Homebrew packages (formulae and casks)
- Python packages (pip)
- Node.js packages (npm and yarn)
- Rust packages (cargo)
- Go modules
- Shell aliases
- Shell functions
Getting Started
Dependencies
- Operating System: macOS or Linux (Unix-like system required for file permissions check)
- Rust: Version 1.70.0 or higher
- Optional package managers (Bento will gracefully skip any that aren't installed):
- Homebrew (
brew) - Python pip (
pip) - Node.js npm (
npm) - Yarn (
yarn) - Cargo (comes with Rust)
- Go (
go)
- Homebrew (
Installing
Option 1: Install from crates.io (Recommended)
cargo install bento
Option 2: Install from GitHub using Cargo
cargo install --git https://github.com/00msjr/bento.git
Option 3: Build from source
- Clone the repository
git clone https://github.com/00msjr/bento.git
cd bento
- Build from source using Cargo
cargo build --release
- Install the binary
# Option 1: Install to cargo bin directory
cargo install --path .
# Option 2: Copy to a location in your PATH
sudo cp target/release/bento /usr/local/bin/
- Verify installation
bento --help
Executing program
Basic search across all sources:
bento git
Search with category filters:
# Search only homebrew packages
bento --homebrew python
# Search only aliases
bento --alias ls
# Search only npm packages
bento --npm react
View available commands and statistics:
bento
Example outputs:
- Yellow text: Aliases
- Green text: Functions
- Blue text: Binary commands
- Cyan text: Homebrew formulae
- Bright cyan: Homebrew casks
- Red text: Python packages
- Magenta text: NPM packages
- Bright magenta: Yarn packages
- Bright red: Cargo packages
- Bright blue: Go packages
Help
Common issues and solutions:
-
No aliases or functions showing up
- Bento attempts to read from multiple shells (zsh, bash, sh)
- Ensure your shell configuration files are properly sourced
- Try running with your specific shell:
SHELL=/bin/zsh bento
-
Permission denied errors
- Ensure the binary has execute permissions:
chmod +x /usr/local/bin/bento
- Ensure the binary has execute permissions:
-
Package manager commands not found
- Bento gracefully skips package managers that aren't installed
- Install the relevant package manager to search its packages
-
Too many results
- Use category filters to narrow down results
- Results are limited to top 15 matches by fuzzy search score
For more help:
bento --help
Authors
Contributors and maintainers:
License
This project is licensed under the MIT License - see the LICENSE.md file for details
Acknowledgments
- Inspired by the need for a unified command discovery tool
- Built with clap for CLI parsing
- Uses colored for terminal colors
- Special thanks to @dompizzie for the README template
Dependencies
~0.9–3MB
~52K SLoC