TerminalTelemetry is a modern, cyberpunk-inspired terminal emulator and network telemetry platform built with PyQt6. It combines powerful SSH terminal capabilities with real-time network device monitoring in a sleek, themeable interface.
pip install TerminalTelemetry
termtel-con
termtel
git clone https://github.com/scottpeterman/terminaltelemetry.git
cd terminaltelemetry
pip install -e .
termtel
- Python 3.9+
- PyQt6, netmiko, textfsm (automatically installed with pip)
- 20+ built-in themes (Cyberpunk, Dark Mode, Retro Green, Neon Blue, etc.)
- Dynamic JSON-based themes with hot-reload capability
- Live theme switching across all components without restart
- Per-tab theme customization via right-click context menu
- Individual terminal theming - different theme for each tab
- Theme editor with real-time preview and custom theme creation
- Consistent theming across terminals, telemetry widgets, and UI components
- Tab management with rename functionality and clean context menus
- Tabbed SSH terminals with xterm.js backend
- Session management with YAML-based configuration
- Per-tab customization - individual themes and renamed tab labels
- Context menu controls - close, rename, and theme individual tabs
- Quick Connect interface for rapid device access
- Cross-platform terminal support (Windows, macOS, Linux)
- Install via pip:
pip install TerminalTelemetry
- Launch:
termtel
- Create SSH sessions via File → Open Sessions or use Quick Connect
- Open Telemetry Dashboard via Tools → Telemetry Dashboard
- Connect to devices and view real-time monitoring data
- Customize themes via View → Theme menu and Theme Editor
- Right-click tab labels to rename tabs or set individual themes
- Global themes: Use View → Theme menu to change all components
- Individual tab themes: Right-click any tab label → Terminal Theme → select theme
- Custom themes: Use View → Theme → Theme Editor to create new themes
- Theme files: Drop JSON theme files in the
themes/
directory for instant availability
- Tabbed SSH terminals with xterm.js backend
- Session management with YAML-based configuration
- Quick Connect interface for rapid device access
- Cross-platform terminal support (Windows, macOS, Linux)
- Live device monitoring via SSH (no SNMP required)
- Multi-vendor support (Cisco IOS/IOS-XE/NX-OS, Arista EOS, Linux)
- Real-time data collection:
- System information (hostname, version, uptime, hardware)
- CPU and memory utilization with progress bars
- CDP/LLDP neighbor discovery
- ARP table monitoring
- Routing table with VRF support
- Live system log streaming
- Threaded data collection keeps UI responsive
- Template-based parsing with 200+ TextFSM templates
- CSV export for all telemetry data tables
- Built-in template editor with syntax highlighting
- 200+ pre-configured TextFSM templates for network devices
- Live template testing against real device output
- Field mapping validation with coverage reports
- Template debugging with detailed error reporting
- Package resource management - templates included in installation
- Encrypted credential storage with Fernet (AES-128-CBC) + HMAC
- PBKDF2-HMAC-SHA256 key derivation (480,000 iterations)
- Platform-specific secure storage locations
- Machine-specific credential binding
- Rate-limited authentication prevents brute force
- Zero plaintext storage of sensitive data
- NetBox Integration:
- Import devices directly from NetBox instances
- Site-based organization and grouping
- Automatic credential mapping
- LogicMonitor Integration:
- SDK-based device discovery
- Progress feedback and error handling
- SSL certificate validation support
- Text Editor with syntax highlighting
- Diff Tool for configuration comparison
- Space Debris Game (Asteroids clone)
- Doom (WebAssembly port)
- Serial Terminal for console connections
- Universal compatibility - works with any SSH-accessible device
- No agent installation required on target devices
- Leverages existing access - uses SSH credentials you already have
- Zero infrastructure - no monitoring servers or databases needed
- 200+ TextFSM templates packaged with the application
- Live template editing with syntax highlighting and testing
- Field normalization across different vendors
- Package resource system - templates accessible in any environment
- User-customizable - fix parsing issues yourself
- Qt6-based UI with native performance
- Threaded data collection prevents UI blocking
- Signal-based communication between components
- Modular widget system for easy extension
- Package-aware resource management for pip installations
- Install via pip:
pip install TerminalTelemetry
- Launch:
termtel-con
- themes will bootstrap
- run
termtel
ortermtel-con
- For Windows, venv\Scripts will contain .exe files you can create shortcuts to termtel.exe to feel more native.
- Create SSH sessions via File → Open Sessions or use Quick Connect
- Open Telemetry Dashboard via Tools → Telemetry Dashboard
- Connect to devices and view real-time monitoring data
- Customize themes via View → Theme menu and Theme Editor
- Click "Quick Connect" in the bottom panel
- Enter device IP, credentials, and select platform (cisco_ios, arista_eos, etc.)
- Click "Connect" - terminal tab opens automatically
- Open Tools → Telemetry Dashboard to see real-time monitoring
- Use the gear buttons in widgets to customize TextFSM templates
- Connect to a device and open telemetry dashboard
- Click the ⚙️ gear button on any widget (neighbors, routes, etc.)
- Template editor opens with current template and sample data
- Edit template using TextFSM syntax
- Click "RUN TEST" to validate against live device output
- Save template - changes apply immediately
- No vendor lock-in - works with any SSH device
- Instant deployment -
pip install
and run anywhere - Full customization - templates, themes, everything is editable
- Cost effective - no licensing fees or subscription costs
- Engineer friendly - shows actual commands and output
- Self-contained - no external dependencies or servers
- Uses familiar SSH access you already have configured
- Command-line transparency - see exactly what commands are run
- Template debugging - fix parsing issues when vendors change output
- Portable - runs on your laptop without server infrastructure
- Export capability - CSV export for further analysis
- Cisco IOS/IOS-XE: System info, CDP neighbors, ARP table, routing table, CPU/memory utilization, system logs, VRF support
- Cisco NX-OS: System info, CDP neighbors, ARP table, routing table, VRF support (missing CPU/memory/logs)
- Arista EOS: System info, LLDP neighbors, ARP table, routing table, CPU/memory, temperature, logs, VRF support (uses LLDP instead of CDP)
- Aruba AOS-S/CX: System info, LLDP neighbors, ARP table, routing table (missing CPU/memory/logs)
- HP ProCurve: System info, LLDP neighbors, ARP table, routing table (legacy switch support)
- Juniper JunOS: System info, LLDP neighbors, ARP table (minimal support)
- Linux: System info, ARP table, routing table (basic networking commands)
Based on your actual TextFSM template library:
- 200+ templates total across all vendors
- Cisco IOS: 100+ templates (most comprehensive)
- Arista EOS: 45+ templates (good coverage)
- Cisco NX-OS: 15+ templates (basic coverage)
- HP ProCurve: 7 templates (legacy support)
- Juniper JunOS: 3 templates (minimal)
- Linux: Basic networking templates
- Aruba: Basic switch templates
- Cisco NX-OS: Missing CPU/memory utilization and system log templates
- Aruba platforms: No CPU/memory monitoring templates available
- HP ProCurve: Legacy platform with limited template coverage
- Juniper JunOS: Minimal template support (contributions welcome)
- Linux: Basic networking only (no system monitoring templates)
- Cisco IOS/IOS-XE has the most comprehensive template coverage
- Arista EOS has good coverage but uses LLDP instead of CDP for neighbors
- Other platforms have basic connectivity but may lack advanced telemetry features
- Missing templates can be created using the built-in template editor
- Single-device monitoring per telemetry tab (multi-device dashboard planned)
- No historical data storage (trending features planned)
- Template editor requires platform connection for live testing
- Multi-device dashboards for network-wide monitoring
- Historical data collection with basic trending graphs
- Enhanced error handling and automatic reconnection
- Template sharing and import/export functionality
- Custom command execution with ad-hoc template creation
- Network topology discovery and visualization
- Configuration backup and change detection
- Alert system for threshold monitoring
- Plugin architecture for community extensions
- REST API for external integrations
- Distributed monitoring across multiple instances
- Community template repository with automatic updates
- Advanced analytics and machine learning insights
- Mobile companion app for alerts and basic monitoring
SSH Connection → Command Execution → TextFSM Parsing → Field Normalization → UI Display
↓ ↓ ↓ ↓ ↓
netmiko show commands Package Templates Platform Maps PyQt6 Widgets
- Resource Manager: Package-aware template and config loading
- Platform Config Manager: JSON-driven platform definitions
- Threaded Telemetry Controller: Non-blocking data collection
- Template Editor: Live template editing and testing
- Theme System: JSON-based UI customization
- Credential encryption using Fernet with PBKDF2 key derivation
- No network exposure - purely SSH client connections
- Local data storage with machine-specific encryption keys
- Memory-safe credential handling with automatic cleanup
Found an issue? Please report it with:
- Device platform and software version
- Command output that failed to parse
- Steps to reproduce the issue
- Expected vs actual behavior
- Use the built-in template editor to create/fix templates
- Test against multiple software versions when possible
- Follow TextFSM best practices for field naming
- Submit templates for new platforms or commands
git clone https://github.com/scottpeterman/terminaltelemetry.git
cd terminaltelemetry
pip install -e .
# Edit code, templates, themes
python -m pytest tests/ # Run tests
Terminal sessions alongside real-time telemetry monitoring
Live monitoring of Cisco devices showing neighbors, ARP, routing, and system metrics
Real-time template customization with live preview
TerminalTelemetry is licensed under the GPLv3 License. See the LICENSE file for details.
- Built on PyQt6 and the Python ecosystem
- Network automation powered by netmiko and TextFSM
- Terminal functionality via xterm.js
- Template system inspired by ntc-templates
- Packaging system using modern Python setuptools
- Inspired by cyberpunk aesthetics and retro computing
- GitHub Issues: Bug reports and feature requests
- Documentation: Comprehensive guides and API reference
- Template Library: Community-contributed TextFSM templates
"The best network monitoring tool is the one that gets out of your way and shows you what you need to know."
- ✅ Package resource system - pip installable with embedded templates
- ✅ Template editor integration - live editing and testing
- ✅ CSV export functionality for all telemetry tables
- ✅ Enhanced platform support with JSON configuration
- ✅ Threaded telemetry collection for responsive UI
- ✅ Improved error handling and connection management