PCM è un Connection Manager avanzato per Linux, sviluppato in Python e PyQt6. Nasce come alternativa open-source a MobaXterm, con un'interfaccia a schede unificata per gestire connessioni remote multi-protocollo, trasferimenti file e terminali locali.
- Multi-protocollo: SSH, Telnet, SFTP, FTP/FTPS, RDP, VNC, Mosh, Seriale
- Terminale integrato:
xtermembedded nelle schede, con temi colore, font configurabili e scrollback - VNC integrato: sessioni VNC in scheda tramite noVNC (opzionale), oppure client esterno
- RDP avanzato: dominio Active Directory, pannello interno (rdesktop nativo con
-X, o xfreerdp3 via xdotool reparent) o finestra esterna; autenticazione NTLM o Kerberos selezionabile; solo client installati nel combo - Browser SFTP grafico: si apre in automatico per le sessioni SSH, con drag & drop
- Browser FTP: client FTP/FTPS integrato con interfaccia grafica tipo WinSCP
- Pannello sessioni: raggruppate per gruppo, ordinate per nome, con icone per protocollo e ricerca live
- Import da app esterne: importa connessioni da Remmina e Remote Desktop Manager (XML e JSON)
- Modalità Split: divide l'area di lavoro verticalmente o orizzontalmente (2 pannelli)
- Quick Connect: barra superiore per connessioni rapide (
utente@host:porta) - Gestione Tunnel SSH: tunnel SOCKS, locali e remoti con interfaccia grafica dedicata
- Multi-exec: invia lo stesso comando a più sessioni SSH contemporaneamente
- Variabili globali: sostituzioni
{NOME}nei comandi delle sessioni - Cifratura credenziali: utenti e password cifrati con AES-256 (Fernet/PBKDF2) — opzionale, con password master
- Server FTP locale: avvia un server FTP sulla macchina locale
- Modalità protetta: nasconde le password dall'interfaccia (
****) - System tray: minimizza in background, sessioni accessibili dal tray
- Interfaccia multilingua: Italiano, English, Deutsch, Français, Español
- Tema chiaro con icone PNG dedicate per ogni protocollo
- Backup sessioni:
connections.json— basta copiarlo per salvare tutte le sessioni (cifrato se attivata la protezione)
Per una panoramica visiva dell'interfaccia e delle funzionalità di PCM, guarda gli screenshot disponibili nella cartella immagini.
git clone <repo>
cd PCM
bash setup.sh
./run_pcm.shsetup.sh installa automaticamente tutte le dipendenze di sistema e Python,
crea il virtualenv con uv e crea il launcher.
1. Dipendenze di sistema
Debian/Ubuntu:
sudo apt install python3 xterm xdotool xwininfo openssh-client sshpass lftp \
freerdp3-x11 xfreerdp2-x11 rdesktop tigervnc-viewer libxcb-cursor0Arch/Manjaro:
sudo pacman -S python xterm xdotool xorg-xwininfo openssh sshpass lftp freerdp rdesktop tigervncFedora/RHEL:
sudo dnf install python3 xterm xdotool xorg-x11-utils openssh-clients sshpass lftp freerdp rdesktop tigervnc2. Virtualenv Python
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt3. Icone
Le icone PNG sono già incluse nella cartella icons/ del repository,
incluso checkmark.png per i checkbox dell'interfaccia.
3. Avvio
./run_pcm.sh
# oppure
.venv/bin/python PCM.pyPCM/
├── PCM.py # Finestra principale
├── config_manager.py # Gestione sessioni e impostazioni (connections.json)
├── session_panel.py # Sidebar sessioni
├── session_dialog.py # Dialog creazione/modifica sessione
├── session_command.py # Costruzione comandi shell per protocollo
├── themes.py # Tema UI e temi terminale
├── terminal_widget.py # Widget xterm embedded
├── sftp_browser.py # Browser SFTP (paramiko)
├── winscp_widget.py # Browser SFTP/FTP grafico
├── tunnel_manager.py # Gestore tunnel SSH
├── settings_dialog.py # Dialog impostazioni globali
├── importer.py # Import da Remmina e Remote Desktop Manager
├── ftp_server_dialog.py # Server FTP locale
├── vnc_widget.py # Widget VNC integrato (noVNC)
├── rdp_widget.py # Widget RDP pannello interno (rdesktop -X / xfreerdp3 xdotool)
├── crypto_manager.py # Cifratura AES-256 credenziali (Fernet/PBKDF2)
├── connections.json # Sessioni salvate (creato al primo avvio)
├── pcm_settings.json # Impostazioni globali (creato al primo avvio)
├── requirements.txt # Dipendenze Python
├── setup.sh # Installer automatico
├── run_pcm.sh # Launcher con virtualenv
└── icons/ # Icone PNG (incluso checkmark.png)
| Scorciatoia | Azione |
|---|---|
Ctrl+Shift+N |
Nuova sessione remota |
Ctrl+Alt+T |
Terminale locale |
Ctrl+Shift+B |
Mostra/Nascondi sidebar |
Ctrl+Shift+P |
Modalità protetta (toggle) |
Ctrl+Shift+M |
Multi-exec |
Ctrl+Shift+V |
Variabili globali |
Ctrl+Shift+F |
Server FTP locale |
Ctrl+Alt+1 |
Vista singola |
Ctrl+Alt+2 |
Split verticale |
Ctrl+Alt+3 |
Split orizzontale |
Ctrl+Alt+Q |
Chiudi tab corrente |
Ctrl+Alt+←/→ |
Tab precedente / successivo |
F11 |
Schermo intero |
Da Strumenti → Importa da applicazione esterna:
- Remmina — legge automaticamente
~/.local/share/remmina/o un file/cartella scelto - Remote Desktop Manager (XML) — file
.rdmesportato da RDM - Remote Desktop Manager (JSON) — file
.jsonesportato da RDM
Le password non vengono importate (sono cifrate nelle app sorgente). I gruppi RDM vengono mantenuti come gruppi PCM.
| Pacchetto | Uso |
|---|---|
PyQt6 |
Interfaccia grafica |
PyQt6-WebEngine |
VNC integrato via noVNC (opzionale) |
paramiko |
SSH/SFTP nativo, browser SFTP |
pyftpdlib |
Server FTP locale |
cryptography |
Cifratura AES-256 delle credenziali (opzionale ma consigliato) |
PCM è disponibile nelle seguenti lingue:
- Italiano 🇮🇹
- English 🇬🇧
- Deutsch 🇩🇪
- Français 🇫🇷
- Español 🇪🇸
La lingua può essere cambiata dalle impostazioni dell'applicazione (Strumenti → Impostazioni).
Questo progetto è licenziato sotto la European Union Public Licence v1.2 (EUPL).
L'EUPL è una licenza open-source approvata dall'Unione Europea che promuove il riutilizzo del software e garantisce la libertà di uso, modifica e distribuzione, mantenendo al contempo il copyleft.
Per maggiori dettagli, consulta il file LICENSE.
Se apprezzi questo progetto e vuoi supportare il suo sviluppo, considera una donazione via PayPal:
Sviluppato con ♥ per la community Linux.
PCM is an advanced Connection Manager for Linux, developed in Python and PyQt6. It is an open-source alternative to MobaXterm, with a unified tabbed interface for managing multi-protocol remote connections, file transfers, and local terminals.
- Multi-protocol: SSH, Telnet, SFTP, FTP/FTPS, RDP, VNC, Mosh, Serial
- Integrated Terminal:
xtermembedded in tabs, with configurable color themes, fonts and scrollback - Integrated VNC: VNC sessions in tabs via noVNC (optional), or external client
- Advanced RDP: Active Directory domain, internal panel (rdesktop native
-Xembedding, or xfreerdp3 via xdotool reparent) or external window; NTLM or Kerberos authentication; combo shows only installed clients - SFTP Browser: automatically opens for SSH sessions, with drag & drop
- FTP Browser: FTP/FTPS client with WinSCP-like graphical interface
- Session Panel: grouped by group, sorted by name, with protocol icons and live search
- Import from external apps: import connections from Remmina and Remote Desktop Manager (XML and JSON)
- Split Mode: divide workspace vertically or horizontally (2 panels)
- Quick Connect: top bar for quick connections (
user@host:port) - SSH Tunnel Management: SOCKS, local and remote tunnels with dedicated graphical interface
- Multi-exec: send the same command to multiple SSH sessions simultaneously
- Global Variables:
{NAME}substitutions in session commands - Credential encryption: usernames and passwords encrypted with AES-256 (Fernet/PBKDF2) — optional, with master password
- Local FTP Server: start an FTP server on the local machine
- Protected Mode: hide passwords from the interface (
****) - System Tray: minimize to background, sessions accessible from tray
- Multilingual UI: Italiano, English, Deutsch, Français, Español
- Light Theme with dedicated PNG icons for each protocol
For a visual overview of PCM's interface and features, check out the available screenshots in the immagini folder.
git clone <repo>
cd PCM
bash setup.sh
./run_pcm.shsetup.sh automatically installs all system and Python dependencies,
creates the virtualenv with uv and creates the launcher.
1. System Dependencies
Debian/Ubuntu:
sudo apt install python3 xterm xdotool xwininfo openssh-client sshpass lftp \
freerdp3-x11 xfreerdp2-x11 rdesktop tigervnc-viewer libxcb-cursor0Arch/Manjaro:
sudo pacman -S python xterm xdotool xorg-xwininfo openssh sshpass lftp freerdp rdesktop tigervncFedora/RHEL:
sudo dnf install python3 xterm xdotool xorg-x11-utils openssh-clients sshpass lftp freerdp rdesktop tigervnc2. Python Virtualenv
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt3. Icons
PNG icons are already included in the icons/ folder of the repository,
including checkmark.png for interface checkboxes.
3. Launch
./run_pcm.sh
# or
.venv/bin/python PCM.pyPCM/
├── PCM.py # Main window
├── config_manager.py # Session and settings management (connections.json)
├── session_panel.py # Sessions sidebar
├── session_dialog.py # Session creation/modification dialog
├── session_command.py # Shell command construction for protocol
├── themes.py # UI theme and terminal themes
├── terminal_widget.py # Embedded xterm widget
├── sftp_browser.py # SFTP browser (paramiko)
├── winscp_widget.py # Graphical SFTP/FTP browser
├── tunnel_manager.py # SSH tunnel manager
├── settings_dialog.py # Global settings dialog
├── importer.py # Import from Remmina and Remote Desktop Manager
├── ftp_server_dialog.py # Local FTP server
├── vnc_widget.py # Integrated VNC widget (noVNC)
├── rdp_widget.py # RDP internal panel widget (rdesktop -X / xfreerdp3 xdotool)
├── crypto_manager.py # AES-256 credential encryption (Fernet/PBKDF2)
├── connections.json # Saved sessions (created on first launch)
├── pcm_settings.json # Global settings (created on first launch)
├── requirements.txt # Python dependencies
├── setup.sh # Automatic installer
├── run_pcm.sh # Launcher with virtualenv
└── icons/ # PNG icons (including checkmark.png)
| Shortcut | Action |
|---|---|
Ctrl+Shift+N |
New remote session |
Ctrl+Alt+T |
Local terminal |
Ctrl+Shift+B |
Show/Hide sidebar |
Ctrl+Shift+P |
Protected mode (toggle) |
Ctrl+Shift+M |
Multi-exec |
Ctrl+Shift+V |
Global variables |
Ctrl+Shift+F |
Local FTP server |
Ctrl+Alt+1 |
Single view |
Ctrl+Alt+2 |
Vertical split |
Ctrl+Alt+3 |
Horizontal split |
Ctrl+Alt+Q |
Close current tab |
Ctrl+Alt+←/→ |
Previous / next tab |
F11 |
Full screen |
From Tools → Import from external application:
- Remmina — automatically reads
~/.local/share/remmina/or chosen file/folder - Remote Desktop Manager (XML) —
.rdmfile exported from RDM - Remote Desktop Manager (JSON) —
.jsonfile exported from RDM
Passwords are not imported (they are encrypted in the source apps). RDM groups are maintained as PCM groups.
PCM is available in the following languages:
- Italiano 🇮🇹
- English 🇬🇧
- Deutsch 🇩🇪
- Français 🇫🇷
- Español 🇪🇸
Language can be changed from application settings (Tools → Settings).
| Package | Use |
|---|---|
PyQt6 |
Graphical interface |
PyQt6-WebEngine |
Integrated VNC via noVNC (optional) |
paramiko |
Native SSH/SFTP, SFTP browser |
pyftpdlib |
Local FTP server |
cryptography |
AES-256 credential encryption (optional but recommended) |
This project is licensed under the European Union Public Licence v1.2 (EUPL).
EUPL is an open-source license approved by the European Union that promotes software reuse and guarantees freedom of use, modification and distribution, while maintaining copyleft.
For more details, see the LICENSE file.
If you appreciate this project and want to support its development, consider a donation via PayPal:
Developed with ♥ for the Linux community.