2fb20b0682
Rename bash-helper.sh -> super-man.sh and update all docs/tests to the super-man name and alias. In interactive mode, pressing Esc in the flag browser now returns directly to the home menu, removing the intermediary "Press Enter to search another command" prompt. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
295 lines
6.5 KiB
Markdown
295 lines
6.5 KiB
Markdown
# Super Man v2.1.0 - AI-Powered Release 🤖
|
|
|
|
## What's New
|
|
|
|
### 🤖 AI Mode (NEW!)
|
|
|
|
Integrated **NL2SH model** for advanced natural language understanding:
|
|
|
|
```bash
|
|
super-man ai "find all python files modified in last week"
|
|
# Generated: find /path/to/directory -type f -name "*.py" -mtime -7
|
|
|
|
super-man ai "count lines in all javascript files"
|
|
super-man ai "compress all log files older than 30 days"
|
|
```
|
|
|
|
**Features:**
|
|
- Uses your installed `westenfelder/NL2SH:latest` model
|
|
- Generates bash commands from complex natural language
|
|
- Shows command info and safety warnings
|
|
- Works offline with local Ollama
|
|
|
|
### 📚 90+ Commands in Interactive Mode
|
|
|
|
Expanded from 11 to **90+ commands** organized by category:
|
|
|
|
**File Operations (18):** ls, cd, pwd, cp, mv, rm, mkdir, rmdir, touch, cat, less, head, tail, chmod, chown, ln, file, stat
|
|
|
|
**Text Processing (9):** grep, sed, awk, cut, sort, uniq, tr, wc, diff
|
|
|
|
**File Search (4):** find, locate, which, whereis
|
|
|
|
**Compression (5):** tar, gzip, gunzip, zip, unzip
|
|
|
|
**Network (9):** ping, curl, wget, ssh, scp, netstat, ss, ip, ifconfig
|
|
|
|
**System Info (8):** top, htop, ps, df, du, free, uname, uptime
|
|
|
|
**Process Management (6):** kill, pkill, killall, bg, fg, jobs
|
|
|
|
**System Control (5):** sudo, systemctl, service, reboot, shutdown
|
|
|
|
**Package Management (4):** apt, apt-get, dpkg, snap
|
|
|
|
**User Management (7):** useradd, userdel, passwd, su, whoami, w, who
|
|
|
|
**Misc Utilities (9):** echo, date, cal, history, alias, export, env, man, watch
|
|
|
|
### 🔧 Fixed Interactive Mode
|
|
|
|
**Problem:** Filtering didn't work properly - `-v` flag wouldn't show
|
|
|
|
**Solution:** Completely rewrote `show_flags()` function:
|
|
- Better OPTIONS section extraction from man pages
|
|
- Improved filtering logic
|
|
- Proper fallback when OPTIONS section not found
|
|
- Now correctly shows filtered flags
|
|
|
|
**Before:**
|
|
```
|
|
Filter: -v
|
|
[empty or wrong output]
|
|
```
|
|
|
|
**After:**
|
|
```
|
|
Filter: -v
|
|
-v, --invert-match
|
|
Invert the sense of matching, to select non-matching lines.
|
|
-V, --version
|
|
Print the version number of grep to standard output.
|
|
```
|
|
|
|
## All Modes
|
|
|
|
### 1. AI Mode (NEW!) 🤖
|
|
```bash
|
|
super-man ai "find large files in home directory"
|
|
super-man ai "get network interface information"
|
|
```
|
|
|
|
### 2. Natural Language Queries
|
|
```bash
|
|
super-man ask "compress folder" # Database search
|
|
super-man task "disk usage" # Task search
|
|
```
|
|
|
|
### 3. Category Browsing
|
|
```bash
|
|
super-man category files
|
|
super-man category network
|
|
```
|
|
|
|
### 4. Command Explanation
|
|
```bash
|
|
super-man explain "tar -czf archive.tar.gz folder/"
|
|
```
|
|
|
|
### 5. Interactive Mode (Enhanced!)
|
|
```bash
|
|
super-man # Browse 90+ commands with fzf
|
|
# Select command → Enter filter → See flags
|
|
```
|
|
|
|
### 6. Direct Flag Lookup
|
|
```bash
|
|
super-man grep -v # Show grep flags with 'v'
|
|
super-man ls size # Show ls flags about size
|
|
```
|
|
|
|
## Performance
|
|
|
|
| Mode | Speed | Status |
|
|
|------|-------|--------|
|
|
| Database search | ~50ms | ⚡ Fast |
|
|
| Interactive mode | Instant | ⚡ Instant |
|
|
| Category browse | ~30ms | ⚡ Fast |
|
|
| Direct lookup | ~100ms | ✅ Good |
|
|
| AI mode (first) | 5-15s | 🤖 Processing |
|
|
| AI mode (loaded) | 1-3s | 🤖 Fast |
|
|
|
|
## Improvements Summary
|
|
|
|
### Interactive Mode Fixes
|
|
✅ Fixed flag filtering (now works correctly)
|
|
✅ Better OPTIONS section parsing from man pages
|
|
✅ 90+ commands (up from 11)
|
|
✅ Organized by category
|
|
✅ Improved error messages
|
|
|
|
### AI Integration
|
|
✅ NL2SH model support
|
|
✅ Complex query handling
|
|
✅ Safety warnings
|
|
✅ Command explanation
|
|
✅ Model detection
|
|
|
|
### Code Quality
|
|
✅ Better function organization
|
|
✅ Improved man page parsing
|
|
✅ Enhanced error handling
|
|
✅ Clearer code comments
|
|
|
|
## How to Use
|
|
|
|
### Try AI Mode
|
|
```bash
|
|
source ~/.bashrc # Reload alias if needed
|
|
super-man ai "find files larger than 100MB"
|
|
```
|
|
|
|
### Try Enhanced Interactive
|
|
```bash
|
|
super-man # Opens fzf with 90+ commands
|
|
# Type to filter (e.g., "net" for network commands)
|
|
# Select → Enter filter term → See relevant flags
|
|
```
|
|
|
|
### All Commands Available
|
|
```bash
|
|
super-man --help # See all modes
|
|
super-man --list # List all 90+ commands
|
|
```
|
|
|
|
## Installation
|
|
|
|
Already installed! Just reload your bash config:
|
|
|
|
```bash
|
|
source ~/.bashrc
|
|
```
|
|
|
|
Or open a new terminal.
|
|
|
|
## Examples
|
|
|
|
### AI Mode Examples
|
|
|
|
**Find Python files:**
|
|
```bash
|
|
$ super-man ai "find python files modified this week"
|
|
Generated: find /path/to/directory -type f -name "*.py" -mtime -7
|
|
```
|
|
|
|
**Count lines:**
|
|
```bash
|
|
$ super-man ai "count lines in all javascript files"
|
|
Generated: find . -name "*.js" -exec wc -l {} + | awk '{sum+=$1} END {print sum}'
|
|
```
|
|
|
|
**Network info:**
|
|
```bash
|
|
$ super-man ai "show my IP address"
|
|
Generated: ip addr show | grep 'inet ' | grep -v 127.0.0.1
|
|
```
|
|
|
|
### Interactive Mode Example
|
|
|
|
```bash
|
|
$ super-man
|
|
# Type "tar" → Select "tar:Archive files"
|
|
# Enter filter: "extract"
|
|
|
|
Flags for: tar
|
|
Filter: extract
|
|
|
|
-x, --extract, --get
|
|
Extract files from an archive.
|
|
--extract-over-symlinks
|
|
During extraction, follow symlinks.
|
|
```
|
|
|
|
## Models Available
|
|
|
|
Your Ollama models:
|
|
- ✅ `westenfelder/NL2SH:latest` (6.2GB) - Natural Language to Shell ⭐
|
|
- ✅ `llama3.2:3b` (2.0GB) - General purpose
|
|
- ✅ `qwen2.5:3b` (1.9GB) - General purpose
|
|
- ✅ `qwen2.5:1.5b` (986MB) - Fast, lightweight
|
|
|
|
**Default:** NL2SH (specialized for shell commands)
|
|
|
|
To switch models, edit `mode_ai()` function in super-man.sh
|
|
|
|
## Troubleshooting
|
|
|
|
### AI Mode Not Working?
|
|
|
|
Check Ollama is running:
|
|
```bash
|
|
ollama list
|
|
```
|
|
|
|
If NL2SH not found:
|
|
```bash
|
|
ollama pull westenfelder/NL2SH
|
|
```
|
|
|
|
### Interactive Mode Filters Not Working?
|
|
|
|
This is now fixed in v2.1.0! The flag extraction has been completely rewritten.
|
|
|
|
### Want More Commands in Interactive Mode?
|
|
|
|
Edit the `COMMANDS` array in super-man.sh and add:
|
|
```bash
|
|
"yourcommand:Description of what it does"
|
|
```
|
|
|
|
## Version History
|
|
|
|
**v2.1.0** (Current)
|
|
- Added AI mode with NL2SH model
|
|
- Expanded to 90+ commands
|
|
- Fixed interactive mode filtering
|
|
- Improved OPTIONS parsing
|
|
|
|
**v2.0.0**
|
|
- Natural language queries
|
|
- 20-task database
|
|
- Category browsing
|
|
- ASCII banner
|
|
|
|
**v1.0.0**
|
|
- Interactive fzf mode
|
|
- Direct flag lookup
|
|
- 11 basic commands
|
|
|
|
## Repository
|
|
|
|
**Location:** `~/coding/bash/super-man/`
|
|
|
|
**Gitea:** http://localhost:3030/trill-technician/super-man
|
|
|
|
**Latest commit:** 3e5e431
|
|
|
|
## What's Next?
|
|
|
|
**Possible Future Enhancements:**
|
|
- Response caching for AI queries
|
|
- Command history integration
|
|
- Custom prompt templates for AI
|
|
- Expand database to 100+ tasks
|
|
- Multi-step command generation
|
|
- Interactive command builder
|
|
|
|
---
|
|
|
|
**Super Man v2.1.0** - Now with AI! 🚀🤖
|
|
|
|
Try it now:
|
|
```bash
|
|
super-man ai "your complex query here"
|
|
```
|