CmdFinder
CmdFinder is a handy terminal-based user interface (TUI) that lets you fuzzy-search, browse, and execute commands from your shell history. It’s built with Textual and RapidFuzz.
Features
- 🔍 Fuzzy Search: Quickly find commands even if you don’t remember the exact syntax.
- 🐚 Shell Support:
- Zsh:
~/.zsh_history - Bash:
~/.bash_history
- Zsh:
- ⚡ Instant Execution: Pick a command and run it straight away in your shell.
- 🧭 Vim-like Navigation: Move around with
j/k. - 🕒 Timestamps: Toggle timestamps on or off.
- 🎨 Modern Interface: Built with Textual for a clean look.
Requirements
- Python 3.10+
- Bash/Zsh or compatible shell
- Read access to history files
Installation
1. Install via pip
pip install cmdfinder
2. Setup Background Service (One-time)
Run this after installation:
cmdfinder-setup
3. Run the App
cmdfinder
or simply:
cf
Troubleshooting
If your system can't find cmdfinder or cf, add ~/.local/bin to your PATH.
Bash:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Zsh:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
Install from Source
git clone https://github.com/pranav5127/CmdFinder.git
cd cmdfinder
Optional: Create Virtual Environment
python -m venv .venv
source .venv/bin/activate
Install in Editable Mode
pip install -e .
After installing from source, run:
cmdfinder-setup
Usage
Start the TUI with:
cmdfinder
Key Bindings
| Key | Action |
|---|---|
| j | Move down |
| k | Move up |
| ↓ / ↑ | Move cursor |
| Ctrl+s | Focus search |
| l / Ctrl+l | Focus list |
| t | Toggle timestamps |
| Enter | Run selected command |
| q | Quit |
License
CmdFinder is released under the MIT License. Enjoy!
Metadata
Release files for cmdfinder 2.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cmdfinder-2.3.0.tar.gz | 11.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cmdfinder-2.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.2 kB
Release files / cmdfinder-2.3.0.tar.gz
| Download URL | cmdfinder-2.3.0.tar.gz |
|---|---|
| Size | 11.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0bab90460bafa96068930689b4fce24b3885a51baba471f6586fc22497a25f08
|
|
BLAKE2b-256 checksum How to use checksums |
79e7ac69cdb1ad5bb942c02471080d06d60c034ce44d9ed10ea13badd09d2b25
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Release files / cmdfinder-2.3.0-py3-none-any.whl
| Download URL | cmdfinder-2.3.0-py3-none-any.whl |
|---|---|
| Size | 12.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4b72a17bf5bcba95a4be450098b98a1ff3b39153b8e4dc4051d0860b47fa921a
|
|
BLAKE2b-256 checksum How to use checksums |
eff49171def86eddc4b191e8aa5b05052573a84c818448677f3ec701fb21c6ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|