SSHplex is a Python-based SSH connection multiplexer that provides a modern Terminal User Interface (TUI) for selecting and connecting to multiple hosts simultaneously using tmux. Built with simplicity and extensibility in mind, SSHplex integrates with NetBox as a Source of Truth and creates organized tmux sessions for efficient multi-host management.
Features:
- Interactive Host Selection: Modern TUI built with Textual for intuitive host selection
- NetBox Integration: Automatic host discovery from NetBox with configurable filters
- Ansible Integration: Support for Ansible YAML inventories with group filtering
- Static Host Lists: Define custom host lists directly in configuration
- Multiple Sources of Truth: Use NetBox, Ansible inventories, and static lists together or separately
- Multi-Provider Support: Configure multiple instances of the same provider type (e.g., multiple NetBox instances)
- Provider Identification: Each host includes source provider information in the UI
- Intelligent Caching: Local host caching for lightning-fast startup (configurable TTL)
- tmux Integration: Creates organized tmux sessions with panes or windows for each host
- Flexible Configuration: YAML-based configuration with automatic setup on first run
- XDG Compliance: Configuration stored in ~/.config/sshplex/ by default
- Multiple Layout Options: Support for tiled, horizontal, and vertical tmux layouts
- Broadcasting Support: Sync input across multiple SSH connections (optional)
- Rich Terminal Output: Beautiful, colored output with optional logging
- Host Filtering: Search and filter hosts in the TUI interface
- Group-based Filtering: Filter hosts by Ansible groups or NetBox roles/clusters
- SSH Key Authentication: Secure key-based authentication support
- Provider Fallback: Graceful handling when one SoT provider fails