Easy and modern interface to manage network devices — Serial, SSH, Telnet, IP Scanner and SNMP.
- Modern graphical interface with PyQt6
- Embedded terminal - No external terminal required
- Elegant and responsive design
- Automatic serial port detection with QSerialPortInfo
- Support for serial ports (/dev/ttyS*) and USB adapters (/dev/ttyUSB*)
- Complete serial parameter configuration:
- Baud rate - 300 to 921600 bps
- Data bits (5-8)
- Parity (None, Even, Odd)
- Stop bits (1-2)
- Flow control (None, Hardware, Software)
- Quick connect profiles with per-device vendor selection
- Root password request via sudo
- Real-time bidirectional communication
- Support for picocom control sequences (Ctrl+A, Ctrl+X, etc.)
- SSH Support - Secure remote connections with password or key authentication
- Telnet Support - Connect to network devices via Telnet protocol
- Connection profile management with per-device vendor selection
- Automatic protocol detection (SSH port 22, Telnet port 23)
- VT100/ANSI terminal emulation with pyte
- Syntax highlighting for network equipment commands
- Support for multiple vendors: Cisco, Huawei, H3C, Juniper, D-Link, Brocade, Datacom, Fortinet
- Vendor selection per profile - Automatically applies syntax highlighting on connect
- Search with scroll-to-match - Find text in terminal output (Ctrl+F)
- Context menu - Right-click for copy, paste, and export options
- Adjustable font size
- Full keyboard support including special keys and control sequences
- Network host discovery with ICMP, TCP and UDP scan methods
- Configurable subnet mask, ports, timeout and threads
- Real-time results with IP, status, latency and MAC vendor detection
- Sortable results table with export to CSV
- Progress indicator on the scan button
- SNMP GET and WALK operations (v1 and v2c)
- Real-time streaming results displayed in a sortable table (OID, Value, Type)
- Automatic SNMP value type classification (Integer, String, Counter, TimeTicks, etc.)
- Walk progress indicator on the execute button
- Limit of 1000 entries per walk to prevent UI overload
- Built-in TFTP server for firmware transfers
- Network interface auto-detection
- Configurable root directory
- Profile name banner with copy button for TFTP file names
- Python 3.8+
- PyQt6
- Qt6 SerialPort (optional, for advanced port detection)
- picocom (for serial connections)
- sudo configured
- pyte - Terminal emulator (VT100/ANSI)
- paramiko - SSH protocol support (optional, for SSH connections)
- pysnmp - SNMP protocol support (optional, for SNMP queries)
- standard-telnetlib - Telnet protocol support (Python 3.13+)
Security Note: Telnet transmits data without encryption, including passwords and sensitive information. Use SSH whenever possible for remote connections. Telnet should only be used in trusted, isolated networks or when connecting to devices that don't support SSH.
-
Download the latest .deb package from releases
-
Install the package:
sudo dpkg -i omnicom_1.3-1_all.deb
sudo apt-get install -f # Fix any missing dependencies- Launch from application menu or terminal:
omnicom- Install build dependencies:
sudo apt install debhelper dpkg-dev python3-pyqt6 picocom- Build the package:
chmod +x make-deb.sh
./make-deb.sh- Install the generated package:
sudo dpkg -i ../omnicom_1.3-1_all.debInstall using an AUR helper:
yay -S omnicom
# or
paru -S omnicom-
Download the latest
.pkg.tar.zstpackage from releases -
Install the package:
sudo pacman -U omnicom-1.3-1-any.pkg.tar.zst- Install from Flathub (when available):
flatpak install flathub io.github.benjamimgois.omnicom- Or build from source:
cd packaging/flatpak
flatpak-builder --install --user build io.github.benjamimgois.omnicom.yml- Run:
flatpak run io.github.benjamimgois.omnicom- Install dependencies (if not already installed):
# Arch Linux / Manjaro
sudo pacman -S python-pyqt6 qt6-serialport picocom
pip install pyte paramiko pysnmp
# Fedora / RHEL
sudo dnf install python3-pyqt6 python3-pyqt6-sip picocom
pip3 install pyte paramiko pysnmp
# Debian / Ubuntu (manual installation)
sudo apt install python3-pyqt6 python3-pyqt6.qtserialport picocom
pip3 install pyte paramiko pysnmp
# Python 3.13+ users also need:
pip3 install standard-telnetlib- Make scripts executable:
chmod +x omnicom- (Optional) Install system-wide:
./install.shRun the application:
# Recommended way
./omnicom
# Directly
./omnicom
# Or via Python
python3 omnicom- Select port type (Serial or USB)
- Choose specific port from the list
- Configure communication speed (main field)
- Adjust other parameters as needed
- Click "CONNECT"
- Enter root password when prompted in the embedded terminal
- The integrated terminal window will open with picocom running
- Click the SSH tab (computer icon)
- Select "SSH" protocol
- Enter host (IP address or hostname)
- Enter port (default: 22)
- Enter username
- Choose authentication method:
- Password: Enter password or leave blank to be prompted
- SSH Key: Browse and select your private key file
- (Optional) Save as profile for quick access
- Click "CONNECT SSH"
- Click the SSH tab (computer icon)
- Select "Telnet" protocol
- Enter host (IP address or hostname)
- Enter port (default: 23)
- Click "CONNECT TELNET"
Note: Telnet does not require authentication in the UI - credentials are typically requested by the remote device after connection.
- Click the IP Scan tab
- Enter target network (e.g. 192.168.1.0)
- Select subnet mask (default: /24)
- Choose scan method (ICMP, TCP or UDP)
- Click "SCAN" — the button shows progress as "Scanning X%"
- Results appear in real-time with IP, status, latency and MAC vendor
- Export results to CSV or right-click for options
- Click the SNMP tab
- Enter host IP address
- Select SNMP version (v1 or v2c)
- Enter community string (default: public)
- Select query type (snmpwalk or snmpget)
- Enter OID (optional for walk, defaults to .1.3.6.1.2.1)
- Click "EXECUTE QUERY" — the button shows progress as "Walking X%"
- Results stream in real-time to the table with OID, Value and Type columns
In the embedded terminal, use:
Ctrl+ACtrl+X- Exit picocomCtrl+ACtrl+H- Help with all commands
You can also click the "DISCONNECT" button to close the connection.
To avoid password prompts every time, add your user to the dialout group:
sudo usermod -a -G dialout $USERAfter this, logout and login again to apply changes.
- Check if the device is connected
- Run
ls -la /dev/ttyUSB* /dev/ttyS*to see available ports - May need to load kernel modules
- Make sure you're using sudo
- Check if your user has sudo permissions
- Or add your user to dialout group (see above)
- GitHub Repository: https://github.com/benjamimgois/omnicom
- AUR Package: https://aur.archlinux.org/packages/omnicom
- Flathub: https://flathub.org/apps/io.github.benjamimgois.omnicom
- Releases: https://github.com/benjamimgois/omnicom/releases
- Issues: https://github.com/benjamimgois/omnicom/issues
MIT License - see LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
Benjamim Gois