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>
7.7 KiB
Local AI Model Integration Options for Super Man
Overview
This document outlines options for integrating local AI models into Super Man for advanced natural language to bash command translation.
Why Local AI Models?
- Privacy: All processing happens on your machine
- Offline: Works without internet connection
- Fast: No API latency once model is loaded
- Free: No API costs
- Customizable: Can fine-tune for specific use cases
Recommended: Ollama (Best for Super Man)
Why Ollama?
- ✅ Easy to install and use
- ✅ Runs locally with simple API
- ✅ Multiple model options (CodeLlama, Mistral, Llama 3)
- ✅ Good balance of speed and quality
- ✅ Active development and community
- ✅ Already mentioned in Phase 3 proposal
Installation
# Install Ollama
curl -fsSL https://ollama.com/install.sh | sh
# Pull a code-focused model (7B parameter - good balance)
ollama pull codellama:7b
# Or use Llama 3 (better general understanding)
ollama pull llama3:8b
# Or use smaller/faster model
ollama pull codellama:7b-code
Model Comparison
| Model | Size | RAM Needed | Speed | Code Quality | NL Understanding |
|---|---|---|---|---|---|
| codellama:7b | 4GB | 8GB | Fast | Excellent | Good |
| codellama:13b | 7GB | 16GB | Medium | Excellent | Very Good |
| llama3:8b | 4.7GB | 8GB | Fast | Very Good | Excellent |
| deepseek-coder:6.7b | 3.8GB | 8GB | Fast | Excellent | Good |
Integration Example
# Query Ollama for bash command
query_ollama() {
local user_query="$1"
local prompt="Convert this request into a bash command. Only output the command, no explanation:
Request: $user_query
Bash command:"
curl -s http://localhost:11434/api/generate -d '{
"model": "codellama:7b",
"prompt": "'"$prompt"'",
"stream": false
}' | jq -r '.response'
}
# Usage
super-man ai "find all python files modified in last week"
Performance
- First query: 1-5 seconds (model loading + generation)
- Subsequent queries: 0.5-2 seconds
- With caching: <100ms for repeated queries
Alternative Options
1. ShellGPT with Local Models
GitHub: https://github.com/TheR1D/shell_gpt
# Install
pip install shell-gpt
# Configure for local model (Ollama)
sgpt --model ollama/codellama:7b "find large files"
Pros:
- Purpose-built for shell commands
- Good prompt engineering
- Shell integration
Cons:
- Requires Python
- Another dependency layer
- Less control over prompts
2. LocalAI
GitHub: https://github.com/mudler/LocalAI
# Docker installation
docker run -p 8080:8080 --name local-ai \
-v /path/to/models:/models \
localai/localai:latest
Pros:
- OpenAI-compatible API
- Multiple model backends
- REST API
Cons:
- Requires Docker
- More complex setup
- Heavier than Ollama
3. LM Studio
Website: https://lmstudio.ai/
Pros:
- GUI for model management
- Easy to use
- Local API server
- Cross-platform
Cons:
- GUI application (not CLI-first)
- Closed source
- Requires more resources
4. llama.cpp (Direct)
GitHub: https://github.com/ggerganov/llama.cpp
# Build llama.cpp
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make
# Download model
wget https://huggingface.co/TheBloke/CodeLlama-7B-GGUF/resolve/main/codellama-7b.Q4_K_M.gguf
# Run inference
./main -m codellama-7b.Q4_K_M.gguf -p "Convert to bash: find large files"
Pros:
- Pure C++ (fast)
- Minimal dependencies
- Full control
Cons:
- Manual model management
- More complex integration
- Requires building from source
5. GPT4All
Website: https://gpt4all.io/
# Install
pip install gpt4all
# Python script
from gpt4all import GPT4All
model = GPT4All("orca-mini-3b.ggmlv3.q4_0.bin")
output = model.generate("Convert to bash: find large files")
Pros:
- Easy Python integration
- Multiple models
- GUI available
Cons:
- Python dependency
- Smaller model selection
- Less actively developed than Ollama
Specialized NL2Bash Models
1. NL2Bash Research Models
Paper: https://arxiv.org/abs/1802.08979 GitHub: https://github.com/TellinaTool/nl2bash
Note: Research project, requires training data and model setup. Not production-ready for direct integration.
2. AI-Shell
GitHub: https://github.com/BuilderIO/ai-shell
npm install -g @builder.io/ai-shell
Note: Requires OpenAI API key (not fully local), but excellent prompt engineering. Could adapt prompts for local models.
Recommendation for Super Man
Use Ollama with CodeLlama 7B
Reasons:
- Easy Setup: Single command installation
- Good Performance: Fast enough for interactive use
- Quality Results: CodeLlama trained specifically for code
- Active Development: Regular updates and improvements
- Community Support: Large user base, good documentation
- Flexible: Easy to swap models for experimentation
Implementation Plan (Phase 3)
# New mode in super-man.sh
super-man ai "find all log files modified today and compress them"
# Workflow:
# 1. Check if Ollama is running
# 2. Send query with optimized prompt
# 3. Parse response for bash command
# 4. Validate command exists
# 5. Show command with explanation
# 6. Optional: Ask user to execute or copy
# 7. Cache response for future identical queries
Prompt Engineering Template
You are a bash command expert. Convert natural language requests into bash commands.
Rules:
- Output ONLY the bash command, nothing else
- Use common, widely available commands
- Include necessary flags for safety
- Make commands portable (work on most Linux systems)
- Add brief inline comments for complex commands
Request: {user_query}
Bash command:
Caching Strategy
# Cache location
~/.cache/super-man/ai-responses/
# Cache key: MD5 of query
# Cache value: JSON with command, explanation, timestamp
# Cache duration: 30 days
# Cache invalidation: Manual or by version update
Performance Targets (Phase 3)
| Metric | Target | Expected with Ollama |
|---|---|---|
| First query | <5s | 2-4s |
| Cached query | <100ms | 10-50ms |
| Model load time | <10s | 3-8s |
| Memory usage | <2GB | 1-1.5GB |
Testing Models
To test different models for bash command generation:
# Test script
for model in codellama:7b llama3:8b deepseek-coder:6.7b; do
echo "Testing $model..."
time ollama run $model "Convert to bash: find files larger than 100MB"
echo "---"
done
Future Enhancements
- Multi-Step Commands: Break complex requests into multiple steps
- Validation: Check if generated command is safe to run
- Learning: Remember user preferences and common patterns
- Explanation: Always explain what the command does
- Interactive: Ask for clarification on ambiguous requests
Security Considerations
- Validate Generated Commands: Never auto-execute AI-generated commands
- Sandbox Testing: Consider dry-run mode
- User Confirmation: Always show command and ask before execution
- Dangerous Command Detection: Warn on
rm -rf,dd, etc. - Path Validation: Ensure generated paths are safe
Conclusion
For Phase 3 implementation, use Ollama with CodeLlama 7B
It provides the best balance of:
- Easy setup and maintenance
- Good performance (1-5s first query, <100ms cached)
- High quality bash command generation
- Local operation (privacy + offline)
- Reasonable resource usage (~1.5GB RAM)
The current Phase 1 keyword-based search handles 80% of use cases in <100ms. Phase 3 AI integration will handle the remaining 20% of complex queries that need true natural language understanding.
Ready to implement when Phase 3 is requested!