# helpme
A minimal terminal UI for storing, searching, and running shell commands you don't want to forget.
## Features
- Fuzzy search across commands and descriptions
- Execute commands directly from the TUI
- Copy commands to clipboard (`wl-copy`, `xclip`, `pbcopy`, or `xsel`)
- Placeholder support — `<name>` tokens prompt for input before running
- Notes panel for inline documentation (lines starting with `# `)
- Confirmation prompt before any command runs
## Installation
```bash
cargo install helpme
```
Requires Rust 1.75+. The binary is placed in `~/.cargo/bin/helpme`.
## Usage
```bash
helpme
```
By default, commands are read from `~/.config/helpme/commands`. Override with:
```bash
CMDS_FILE=~/my-commands helpme
```
If no file is found, a default command to create the directory is shown.
## Commands file format
One command per line. Add a description with ` # `:
```
# Docker
docker ps -a # list all containers
docker exec -it <container> bash # open shell in container
docker system prune -f # remove unused data
# Files
ls -lah <dir> # list directory contents
tar -czf <archive>.tar.gz <dir> # compress a directory
```
Lines beginning with `# ` are treated as notes and shown in a separate panel.
Use `<placeholder>` syntax to mark values that should be filled in at runtime.
## Keybindings
| `↑` / `↓` or `Ctrl+k` / `Ctrl+j` | Navigate |
| Type anything | Filter commands |
| `Backspace` | Clear filter |
| `Enter` | Execute selected command |
| `y` | Copy selected command to clipboard |
| `y` / `Enter` at confirm prompt | Confirm and run |
| `n` / `Esc` at confirm prompt | Cancel |
| `Esc` | Quit |
## License
MIT