Fuzzy search
RapidFuzz scoring that's word-order-agnostic and substring-friendly — "git amend" finds git commit --amend.
history | fuzzy | inject
CmdPop is a floating picker for your command history — like Win+V, but for the terminal. It reads bash, zsh, fish and PowerShell history directly, with zero shell plugins, and types the command you pick straight back into your prompt.
this demo is live — click it, type to filter, ↑↓ to move, Enter to inject
cmdpop start
CmdPop never hooks your shell. It reads the history files your shells already write, keeps one deduplicated database, and puts keystrokes back into whatever terminal you're focused on.
Native parsers for .bash_history (with timestamps), zsh EXTENDED_HISTORY and multi-line commands, fish's YAML log, PSReadLine, and Clink. No plugins, no RC edits.
One local database at ~/.cmdpop/history.db. Run counts, last-used times, favorites. Commands containing password, token, secret… are never stored.
Hit Ctrl+Alt+H anywhere, fuzzy-find, press Enter. CmdPop injects the command into your active terminal via SendKeys, xdotool/ydotool, or AppleScript — clipboard as a last resort.
--features
Version 0.1.1 ships with 115 automated tests, an 81% coverage gate in CI, and strict typing across the codebase.
RapidFuzz scoring that's word-order-agnostic and substring-friendly — "git amend" finds git commit --amend.
No network calls, no telemetry, no cloud. Your history stays in one SQLite file you own.
Configurable exclude patterns drop sensitive commands before they ever touch the database.
Star the commands you live by; everything else sorts by score, then by when you last ran it.
Search, navigate, favorite, delete and insert without leaving the home row — even while typing in the search box.
~/.cmdpop/config.toml — hotkey, popup size, exclude patterns. Sensible defaults, zero setup.
echo $SHELL
History support is a parser, not an integration — adding a shell means one small reader class.
| Shell | Platforms | Source | Support |
|---|---|---|---|
| bash | Linux · macOS · WSL | ~/.bash_history | ✓ full, with timestamps |
| zsh | Linux · macOS | ~/.zsh_history | ✓ full, EXTENDED_HISTORY + multi-line |
| fish | Linux · macOS | fish_history | ✓ full, with timestamps |
| PowerShell | Windows · Linux · macOS | PSReadLine ConsoleHost_history | ✓ full |
| CMD | Windows | Clink .history | △ requires Clink |
man cmdpop
Every shortcut works while you're typing in the search box.
pip install
Python 3.11+ on Windows, macOS, or Linux. Grab the wheel from the latest GitHub release, or install from source.
MIT licensed. Issues and PRs welcome on GitHub.