# 🗺️ Feature Roadmap

This document tracks features that are **not yet implemented** in OmniHost.

## 📋 Not Yet Implemented

### High Priority Features

#### 1. **Command History and Replay** ⏱️ ✅ IMPLEMENTED
- Track executed commands in a history file
- Replay previous commands
- Search history by command, server, or date
- Export history for audit purposes

**Use Cases:**
```bash
omnihost history                    # Show recent commands
omnihost history --server web01     # Filter by server
omnihost replay 42                  # Replay command #42
```

#### 2. **SSH Tunnel Management** 🔐 ✅ IMPLEMENTED
- Create and manage SSH tunnels/port forwarding
- Local, remote, and dynamic port forwarding
- Tunnel lifecycle management (start, stop, list)
- Auto-reconnect on tunnel failure

**Use Cases:**
```bash
omnihost tunnel create web01 -L 8080:localhost:80
omnihost tunnel list
omnihost tunnel stop web01
```

#### 3. **Jump Host / Bastion Support** 🚪 ✅ IMPLEMENTED
- Configure and use jump hosts for accessing private servers
- Automatic ProxyJump configuration
- Support for multiple hop scenarios

**Use Cases:**
```bash
omnihost add bastion -h bastion.example.com
omnihost add private-server -h 10.0.0.5 --jump-host bastion
```

### Medium Priority Features

#### 4. **Custom Command Templates** 📝
- Create reusable command templates with variables
- Store templates for common operations
- Variable substitution (server name, date, etc.)

**Use Cases:**
```bash
omnihost template add deploy "cd /app && git pull && sudo systemctl restart {service}"
omnihost template exec deploy --service nginx
```

#### 5. **Real-time Log Streaming** 📡
- Stream logs from remote servers in real-time
- Follow multiple log files simultaneously
- Filter and search while streaming

**Use Cases:**
```bash
omnihost stream web01 /var/log/nginx/access.log
omnihost stream-all /var/log/app.log --filter "ERROR"
```

#### 6. **Output Comparison Across Servers** 📊
- Compare command outputs from multiple servers side-by-side
- Highlight differences
- Generate diff reports

**Use Cases:**
```bash
omnihost compare "web01,web02,web03" "cat /etc/nginx/nginx.conf"
```

### Low Priority Features

#### 7. **Cloud Provider Integration** ☁️
- Auto-discover servers from AWS EC2, Azure VM, GCP Compute
- Sync server lists from cloud providers
- Tag-based filtering using cloud tags

**Use Cases:**
```bash
omnihost cloud sync aws --region us-east-1
omnihost cloud sync azure --resource-group production
```

#### 8. **Ansible Playbook Integration** 🎭
- Execute Ansible playbooks through OmniHost
- Integrate with existing Ansible inventories
- Run playbooks on OmniHost server groups

**Use Cases:**
```bash
omnihost ansible deploy.yml --group web
```

#### 9. **Web UI** 🌐
- Browser-based interface for server management
- Visual server status dashboard
- Web-based command execution

### Developer/Infrastructure Features

#### 10. **Man Page Generation** 📄 ✅ IMPLEMENTED
- Auto-generate man pages from command docstrings
- Install man pages on system installation
- Script: `scripts/generate_man_pages.py`

#### 11. **Comprehensive Test Suite** 🧪 ✅ IMPLEMENTED
- Unit tests for all modules
- Integration tests for SSH operations
- End-to-end tests for CLI commands
- Test runner: `tests/run_tests.py`

#### 12. **Performance Profiling** ⚡ ✅ IMPLEMENTED
- Built-in performance profiling tools
- Identify bottlenecks in bulk operations
- Optimization recommendations
- Commands: `omnihost profile list/show/clean`

---

## ✅ Already Implemented (For Reference)

- ✅ Server management (add, edit, remove, list, info)
- ✅ Remote command execution (exec, exec-all, exec-multi, exec-group)
- ✅ Interactive shell sessions (connect with PTY support)
- ✅ Bulk parallel operations with configurable parallelism
- ✅ Quick DevOps shortcuts (uptime, disk, memory, cpu, processes, restart, status, logs)
- ✅ Server grouping (group add/list/show/add-server/remove-server/remove)
- ✅ Command aliases (alias add/list/show/remove)
- ✅ File transfer (push/pull with SFTP, recursive support)
- ✅ Configuration management (config show/set-default/validate/export/import)
- ✅ Audit logging (automatic command logging)
- ✅ Dry-run mode (preview operations before execution)
- ✅ JSON output mode (machine-readable output)
- ✅ Retry logic with exponential backoff
- ✅ Environment variable support
- ✅ Shell completion
- ✅ Standardized exit codes
- ✅ Verbose/debug modes

---

## 🎯 Implementation Priority

1. **Command History** - High value for users, relatively simple to implement
2. **SSH Tunnel Management** - Important for many DevOps workflows
3. **Jump Host Support** - Essential for enterprise environments
4. **Custom Templates** - Improves productivity for repetitive tasks
5. **Real-time Log Streaming** - Useful for debugging and monitoring
6. **Output Comparison** - Nice-to-have for configuration management
7. **Cloud Integration** - Useful but requires external API dependencies
8. **Ansible Integration** - Niche use case, lower priority
9. **Web UI** - Major undertaking, consider separate project
10. **Man Pages** - Low priority, documentation improvement
11. **Test Suite** - Important for maintainability
12. **Performance Profiling** - Nice-to-have optimization tool

---

## 💡 Contributing

If you'd like to implement any of these features, please:
1. Check existing issues on GitHub
2. Open a new issue to discuss the implementation approach
3. Submit a pull request following our [Contributing Guidelines](../CONTRIBUTING.md)

