6a6865cbf3
Headless tmux-recorded demo of `super-man ai`: natural-language→bash via local NL2SH, the -q quiet/pipeable mode, and --compare (NL2SH vs qwen2.5-coder) side by side. Rendered gif+mp4 via the video-toolkit. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
75 lines
3.1 KiB
Markdown
75 lines
3.1 KiB
Markdown
# super-man
|
|
|
|
An interactive, fuzzy command + man-page flag browser for the terminal. Search
|
|
260+ commands, drill into any one to fuzzy-search its flags with live
|
|
descriptions, and jump back to the command list instantly.
|
|
|
|
## Demo
|
|
|
|

|
|
|
|
Video (MP4): [`demo/super-man-demo.mp4`](demo/super-man-demo.mp4) ·
|
|
asciinema cast: [`demo/super-man-demo.cast`](demo/super-man-demo.cast)
|
|
|
|
The clip shows opening an entry (`grep`), browsing its flags, then pressing
|
|
**Esc** to return straight to the home screen — no intermediary step — and
|
|
repeating with `tar`.
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
super-man # interactive home screen (fzf)
|
|
super-man <command> [filter] # jump straight to a command's flags
|
|
super-man -l, --list # list all known commands
|
|
super-man -h, --help # full help
|
|
|
|
# Natural-language modes (database-backed, needs jq)
|
|
super-man ask "find large files" # ask a question
|
|
super-man task "monitor cpu usage" # describe what you want to do
|
|
super-man category files # browse by category (files/text/network/system)
|
|
super-man explain "tar -czf" # explain what a command does
|
|
super-man ai "count lines in js files" # AI bash one-liner via local LLM (advanced)
|
|
```
|
|
|
|
### AI mode (local LLM via ollama)
|
|
|
|

|
|
|
|
`ai` generates a bash one-liner from plain English using a local [ollama](https://ollama.com)
|
|
model. The default is `westenfelder/NL2SH`, a model purpose-built for
|
|
natural-language-to-shell — in our 25-query benchmark it was the most accurate, the
|
|
only one that handled hard multi-stage tasks. The model is configurable, so you can
|
|
still A/B other local LLMs:
|
|
|
|
```bash
|
|
super-man ai "find python files modified last week" # default model (NL2SH)
|
|
super-man ai -q "list the 5 largest files" # quiet: print ONLY the command
|
|
super-man ai --model qwen2.5-coder:1.5b "count lines in js" # override model
|
|
super-man ai --compare "list the 5 largest files" # run several models side by side
|
|
```
|
|
|
|
The `-q` / `--quiet` / `--raw` flag prints only the generated command to stdout (errors
|
|
go to stderr), so it composes in scripts and pipelines:
|
|
|
|
```bash
|
|
cmd=$(super-man ai -q "compress the logs folder into a tarball")
|
|
echo "$cmd" # tar -czf logs.tar.gz logs/
|
|
```
|
|
|
|
| Env var | Purpose | Default |
|
|
|---------|---------|---------|
|
|
| `SUPERMAN_AI_MODEL` | Default model for `ai` | `westenfelder/NL2SH` |
|
|
| `SUPERMAN_AI_COMPARE_MODELS` | Space-separated list for `--compare` | `westenfelder/NL2SH qwen2.5-coder:1.5b` |
|
|
|
|
The purpose-built `westenfelder/NL2SH` model receives the raw query; general coder
|
|
models (e.g. `qwen2.5-coder`) are prompt-wrapped to emit a single bare command. Pull
|
|
either with `ollama pull <model>`. See the
|
|
[benchmark write-up](tests/performance/) for the full model comparison.
|
|
|
|
`Esc` in the flag browser returns to the command list; `Esc` on the home screen
|
|
exits.
|
|
|
|
**Requirements:** `jq` for the natural-language modes, `fzf` for interactive mode.
|
|
|
|
See [`docs/`](docs/) for design notes and the full feature history.
|