Files
super-man/docs/VERSION-2.1-RELEASE.md
T
Trilltechnician 3ce1d2ec1f feat(ui): Enhanced flag display with color coordination and clean separation
Display Enhancements:
• Added color-coordinated flag lines (bold yellow flags, dim separator)
• Enhanced bottom preview panel (3 lines → 8 lines)
• Implemented bordered box design with flag 🏴 and description 📝 emojis
• Added clean flag/description separation using AWK-based parsing
• Flag section shows ONLY bash input (e.g., -s sig)
• Description section shows ONLY explanation text
• Cyan bold for flags, green for descriptions in preview
• Handles missing descriptions with dimmed "(No description available)"

Technical Improvements:
• Modified extract_all_flags() to add ANSI color codes to output
• Enhanced browse_flags_fuzzy() preview with intelligent parsing
• Uses AWK field separator on em dash (—) for robust splitting
• Replaced xargs with sed for trimming to avoid flag interpretation
• Added fallback handling for flags without descriptions

Project Organization:
• Moved documentation files to docs/ directory for better structure

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-01 13:22:46 -07:00

6.5 KiB

Bash Buddy v2.1.0 - AI-Powered Release 🤖

What's New

🤖 AI Mode (NEW!)

Integrated NL2SH model for advanced natural language understanding:

bhelper ai "find all python files modified in last week"
# Generated: find /path/to/directory -type f -name "*.py" -mtime -7

bhelper ai "count lines in all javascript files"
bhelper 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!) 🤖

bhelper ai "find large files in home directory"
bhelper ai "get network interface information"

2. Natural Language Queries

bhelper ask "compress folder"      # Database search
bhelper task "disk usage"          # Task search

3. Category Browsing

bhelper category files
bhelper category network

4. Command Explanation

bhelper explain "tar -czf archive.tar.gz folder/"

5. Interactive Mode (Enhanced!)

bhelper                  # Browse 90+ commands with fzf
# Select command → Enter filter → See flags

6. Direct Flag Lookup

bhelper grep -v          # Show grep flags with 'v'
bhelper 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

source ~/.bashrc  # Reload alias if needed
bhelper ai "find files larger than 100MB"

Try Enhanced Interactive

bhelper           # Opens fzf with 90+ commands
# Type to filter (e.g., "net" for network commands)
# Select → Enter filter term → See relevant flags

All Commands Available

bhelper --help    # See all modes
bhelper --list    # List all 90+ commands

Installation

Already installed! Just reload your bash config:

source ~/.bashrc

Or open a new terminal.

Examples

AI Mode Examples

Find Python files:

$ bhelper ai "find python files modified this week"
Generated: find /path/to/directory -type f -name "*.py" -mtime -7

Count lines:

$ bhelper ai "count lines in all javascript files"
Generated: find . -name "*.js" -exec wc -l {} + | awk '{sum+=$1} END {print sum}'

Network info:

$ bhelper ai "show my IP address"
Generated: ip addr show | grep 'inet ' | grep -v 127.0.0.1

Interactive Mode Example

$ bhelper
# 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 bash-helper.sh

Troubleshooting

AI Mode Not Working?

Check Ollama is running:

ollama list

If NL2SH not found:

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 bash-helper.sh and add:

"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/bash-buddy/

Gitea: http://localhost:3030/trill-technician/bash-buddy

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

Bash Buddy v2.1.0 - Now with AI! 🚀🤖

Try it now:

bhelper ai "your complex query here"