218 lines
6.2 KiB
Markdown
218 lines
6.2 KiB
Markdown
# Enhanced Terminal v3.0
|
|
|
|
A feature-rich macOS terminal emulator built with Swift and Cocoa.
|
|
|
|
## ✨ New Features in v3.0
|
|
|
|
### 🔍 Command History Search (Cmd+R)
|
|
- **Fuzzy search** through your entire command history
|
|
- Search as you type with instant results
|
|
- Navigate through thousands of previous commands
|
|
- Double-click or press Enter to use a command
|
|
|
|
### 📑 Multiple Tabs (Cmd+T)
|
|
- Open multiple terminal sessions in tabs
|
|
- Easy tab switching with mouse clicks
|
|
- Each tab maintains its own shell session
|
|
- Close tabs with Cmd+W
|
|
|
|
### 💡 Auto-suggestions
|
|
- **Fish-shell style** command suggestions
|
|
- Suggestions appear as you type based on history
|
|
- Press **Tab** to accept a suggestion
|
|
- Toggle on/off in Settings
|
|
|
|
### 🎨 Enhanced Themes
|
|
- **Dracula** - Modern dark purple theme (default)
|
|
- **Solarized Dark** - Popular low-contrast theme
|
|
- **Nord** - Beautiful arctic-inspired theme
|
|
- **Classic** - Retro green-on-black terminal
|
|
|
|
### 🤖 AI Command Generation (Cmd+K)
|
|
Generate terminal commands from natural language descriptions.
|
|
|
|
**Supported AI Providers:**
|
|
- **OpenAI** (GPT-3.5-turbo) - Requires API key
|
|
- **Ollama** (Local, Free) - Requires Ollama running locally
|
|
|
|
**Examples:**
|
|
- "find all PDF files larger than 10MB"
|
|
- "show me disk usage sorted by size"
|
|
- "list all running docker containers"
|
|
|
|
### 📚 Command Snippets (Cmd+P)
|
|
Pre-configured useful commands organized by category:
|
|
- **Files**: List files, find large files, disk usage
|
|
- **Git**: Status, log, commit commands
|
|
- **Docker**: Container and image management
|
|
- **Network**: Port management, connections
|
|
- **System**: Process list, system info
|
|
- Add your own custom snippets!
|
|
|
|
### ⚙️ Better Shell Integration
|
|
- Fixed "fg: no job control" messages
|
|
- Cleaner prompt display
|
|
- Proper environment variable handling
|
|
- Better ANSI escape code filtering
|
|
|
|
## 🚀 Quick Start
|
|
|
|
### Building
|
|
```bash
|
|
./build.sh
|
|
```
|
|
|
|
This will compile all Swift files and create `EnhancedTerminal.app`.
|
|
|
|
### Running
|
|
```bash
|
|
open EnhancedTerminal.app
|
|
```
|
|
|
|
Or double-click `EnhancedTerminal.app` in Finder.
|
|
|
|
## ⚙️ AI Setup
|
|
|
|
### Option 1: Ollama (Recommended - Free & Local)
|
|
1. Install Ollama from https://ollama.ai
|
|
2. Pull a model: `ollama pull llama3.2:latest`
|
|
3. Ollama runs automatically in the background
|
|
4. Press `Cmd+,` to open Settings
|
|
5. Select "Ollama" as AI Provider
|
|
6. Verify URL is `http://localhost:11434`
|
|
7. Set model to `llama3.2:latest`
|
|
8. Press `Cmd+K` to use AI command generation
|
|
|
|
### Option 2: OpenAI
|
|
1. Get an API key from https://platform.openai.com/api-keys
|
|
2. Press `Cmd+,` to open Settings
|
|
3. Select "OpenAI" as AI Provider
|
|
4. Enter your API key
|
|
5. Press `Cmd+K` to use AI command generation
|
|
|
|
## ⌨️ Keyboard Shortcuts
|
|
|
|
### Tabs & Navigation
|
|
- `Cmd+T` - New tab
|
|
- `Cmd+W` - Close current tab
|
|
- Click tab buttons to switch between tabs
|
|
|
|
### Search & Tools
|
|
- `Cmd+R` - Search command history (fuzzy search)
|
|
- `Cmd+K` - AI Command Generator
|
|
- `Cmd+P` - Command Snippets
|
|
- `Tab` - Accept auto-suggestion
|
|
|
|
### View
|
|
- `Cmd+Plus` - Increase font size
|
|
- `Cmd+Minus` - Decrease font size
|
|
- `Cmd+0` - Reset font size
|
|
- `Cmd+F` - Toggle fullscreen
|
|
|
|
### Settings & Help
|
|
- `Cmd+,` - Settings
|
|
- `Cmd+Q` - Quit
|
|
- Type `help` - Show help in terminal
|
|
|
|
## 💻 Built-in Commands
|
|
|
|
- `clear` - Clear the screen
|
|
- `help` - Show help and keyboard shortcuts
|
|
- `exit` - Quit the application
|
|
|
|
All standard shell commands work as expected!
|
|
|
|
## 📋 Requirements
|
|
|
|
- macOS 10.15 (Catalina) or later
|
|
- Swift compiler (comes with Xcode Command Line Tools)
|
|
- Optional: OpenAI API key or Ollama for AI features
|
|
|
|
## 📁 Project Structure
|
|
|
|
```
|
|
.
|
|
├── EnhancedTerminal.app/ # Built application
|
|
├── EnhancedTerminalApp.swift # Main entry point
|
|
├── Settings.swift # Settings & theme management
|
|
├── HistoryManager.swift # Command history with fuzzy search
|
|
├── SnippetManager.swift # Command snippets library
|
|
├── AIManager.swift # AI service integration
|
|
├── TerminalSession.swift # Terminal session & auto-suggestions
|
|
├── Panels.swift # UI panels (history, snippets, AI, settings)
|
|
├── MainWindowController.swift # Main window with tabs
|
|
├── build.sh # Build script
|
|
└── README.md # This file
|
|
```
|
|
|
|
## ✅ Features Implemented
|
|
|
|
### Core Terminal
|
|
- ✅ Real zsh shell integration with proper environment
|
|
- ✅ Multiple tabs support
|
|
- ✅ Scrollable output with proper text handling
|
|
- ✅ Clean ANSI escape code filtering
|
|
- ✅ Copy/paste support
|
|
|
|
### Advanced Features
|
|
- ✅ **Command history search** with fuzzy matching (Cmd+R)
|
|
- ✅ **Auto-suggestions** based on history (Tab to accept)
|
|
- ✅ **Multiple tabs** for parallel sessions
|
|
- ✅ **AI command generation** (OpenAI & Ollama)
|
|
- ✅ **Command snippets** with categories
|
|
- ✅ **Multiple themes** (Dracula, Solarized, Nord, Classic)
|
|
- ✅ **Customizable settings** (font size, AI provider, etc.)
|
|
- ✅ **Better shell integration** (no job control errors)
|
|
|
|
### UI/UX
|
|
- ✅ Clean, modern interface
|
|
- ✅ Keyboard shortcuts for all features
|
|
- ✅ Resizable windows
|
|
- ✅ Fullscreen support
|
|
- ✅ Font size adjustment
|
|
- ✅ Theme switching
|
|
|
|
## 🔮 Future Enhancements
|
|
|
|
Potential features for future versions:
|
|
- Split panes (vertical/horizontal) - UI framework ready
|
|
- Session save/restore
|
|
- Custom key bindings
|
|
- Syntax highlighting for output
|
|
- Hyperlink support (clickable URLs)
|
|
- Image display (Sixel protocol)
|
|
- Git integration in prompt
|
|
- Performance monitoring overlay
|
|
- Notifications for long-running commands
|
|
- Command completion suggestions
|
|
- Tmux/Screen integration
|
|
|
|
## 🐛 Known Issues
|
|
|
|
- Split panes feature is planned but not yet implemented
|
|
- Some complex ANSI sequences may not render perfectly
|
|
- Very long output may cause slight performance degradation
|
|
|
|
## 🤝 Contributing
|
|
|
|
This is an open-source project. Feel free to:
|
|
- Report bugs
|
|
- Suggest features
|
|
- Submit pull requests
|
|
- Fork and modify for your needs
|
|
|
|
## 📝 License
|
|
|
|
Open source - feel free to modify and enhance!
|
|
|
|
## 🙏 Acknowledgments
|
|
|
|
- Built with Swift and Cocoa
|
|
- Inspired by iTerm2, Hyper, and other modern terminals
|
|
- AI integration powered by OpenAI and Ollama
|
|
|
|
---
|
|
|
|
**Enjoy your enhanced terminal experience! 🚀**
|
|
|