- Python 98.7%
- Shell 1.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .github | ||
| debian | ||
| documentation | ||
| flatpak | ||
| packaging | ||
| screenshots | ||
| scripts | ||
| src/sshpilot_dnd | ||
| sshpilot | ||
| sshpilot.egg-info | ||
| tests | ||
| tests_e2e | ||
| .gitignore | ||
| AGENTS.md | ||
| build_gresource.sh | ||
| hook-gtk_runtime.py | ||
| IMPLEMENTATION_SUMMARY.md | ||
| IMPORT_EXPORT_IMPLEMENTATION.md | ||
| io.github.mfat.sshpilot.desktop | ||
| io.github.mfat.sshpilot.metainfo.xml | ||
| LICENSE | ||
| MANIFEST.in | ||
| pyinstaller.sh | ||
| pyproject.toml | ||
| pytest.ini | ||
| README.md | ||
| REFACTORING_PLAN.md | ||
| requirements.txt | ||
| run.py | ||
| sshpilot-agent | ||
| sshpilot.spec | ||
| test-flatpak.sh | ||
| test_complete.log | ||
| test_file_manager.py | ||
| test_output.log | ||
| test_run.log | ||
| test_run_new.log | ||
| test_serialized.log | ||
| test_sftp_comprehensive.py | ||
SSH Pilot is a user-friendly, modern and lightweight SSH connection manager for Linux and macOS, with an integrated terminal and a file manager. It's an alternative to Termius, Putty, Mobaxterm and similar apps.
Table of Contents
- Features
- Download
- Minimum Requirements
- Run from Source
- Runtime Dependencies
- Documentation
- Telegram Channel
- Third-Party Libraries
- Special Thanks
- Support Development
![]() Start Page |
![]() Main Window with Tabs |
![]() Tab Overview |
![]() SSH Copy ID |
Features
- Tabbed interface
- Intuitive, minimal UI with keyboard navigation and shortcuts
- File management using SFTP
- Organize servers in groups
- Option to use the built-in terminal or your favorite one
- Broadcast commands to all open tabs
- Full support for Local, Remote and Dynamic port forwarding
- SCP support for quickly uploading or downloading files to/from remote servers
- Keypair generation and copying to remote servers (ssh-copy-id)
- Support for running remote and local commands upon login
- Secure storage for credentials via libsecret on Linux; no secret (password or passphrase) is copied to clipboard or saved to plain text
- Privacy toggle to show/hide ip addresses/hostnames in the main window
- Light/Dark interface themes
- Customizable terminal font and color schemes
- Load/save standard .ssh/config entries (Or use dedicated configuration file)
- Free software (GPL v3 license)
Download
Debian/Ubuntu APT Repository
Installation
- Add the GPG key:
curl -fsSL https://mfat.github.io/sshpilot-ppa/pubkey.gpg | sudo gpg --dearmor -o /usr/share/keyrings/sshpilot-ppa.gpg
- Add the repository:
echo "deb [signed-by=/usr/share/keyrings/sshpilot-ppa.gpg arch=amd64] https://mfat.github.io/sshpilot-ppa any main" | sudo tee /etc/apt/sources.list.d/sshpilot-ppa.list
- Update and install:
sudo apt update
sudo apt install sshpilot
For more information, visit: https://mfat.github.io/sshpilot-ppa/
Debian/Ubuntu (Manual Install)
Latest release can be downloaded from here: https://github.com/mfat/sshpilot/releases/
Fedora/RHEL/openSUSE COPR Repository
This repository provides automatic updates for SSH Pilot on RPM-based distributions.
dnf copr enable mahdif62/sshpilot
dnf install sshpilot
Fedora/RHEL/openSUSE (Manual Install)
Latest release can be downloaded from here: https://github.com/mfat/sshpilot/releases/
Flatpak
Available on Flathub
OR in a terminal type:
flatpak install flathub io.github.mfat.sshpilot
Arch Linux
Arch Linux package via AUR: https://aur.archlinux.org/packages/sshpilot
# replace yay with your AUR helper of choice, e.g. paru
yay -S sshpilot
OR
Nightly Arch Linux package via AUR (community maintained): https://aur.archlinux.org/packages/sshpilot-git
# replace yay with your AUR helper of choice, e.g. paru
yay -S sshpilot-git
macOS (aarch64)
Download the dmg file from the releases section https://github.com/mfat/sshpilot/releases/
For development on macOS:
brew install gtk4 libadwaita pygobject3 py3cairo vte3 gobject-introspection adwaita-icon-theme pkg-config glib graphene icu4c sshpass gtksourceview5
Note: webkitgtk is Linux-only and not available on macOS via Homebrew. The PyXterm.js backend will not be available on macOS; the application will use the VTE backend instead.
Minimum Requirements
| Component | Minimum Version |
|---|---|
| GTK 4 | 4.6 |
| libadwaita | 1.4 |
| VTE (GTK4) | 0.70 |
| PyGObject | 3.42 |
| pycairo | 1.20.0 |
| Paramiko | 3.4 |
| cryptography | 42.0 |
| keyring | 24.3 |
| psutil | 5.9.0 |
| GtkSourceView | 5.0 |
💻 Run from Source
You can also run the app from source. Install the modules listed in requirements.txt and a fairly recent version of GNOME and it should run.
python3 run.py
To enable verbose debugging output, run the app with the --verbose flag:
python3 run.py --verbose
Runtime Dependencies
Install system GTK/libadwaita/VTE GI bindings (do not use pip for these).
Debian/Ubuntu (minimum versions)
sudo apt update
sudo apt install \
python3 python3-gi python3-gi-cairo \
libgtk-4-1 gir1.2-gtk-4.0 \
libadwaita-1-0 gir1.2-adw-1 \
libvte-2.91-gtk4-0 gir1.2-vte-3.91 \
libgtksourceview-5-0 gir1.2-gtksource-5 \
libsecret-1-0 gir1.2-secret-1 \
python3-paramiko python3-cryptography sshpass ssh-askpass \
gir1.2-webkit-6.0
Fedora / RHEL / CentOS
sudo dnf install \
python3 python3-gobject \
gtk4 libadwaita \
vte291-gtk4 \
gtksourceview5 \
libsecret \
python3-paramiko python3-cryptography sshpass openssh-askpass \
webkitgtk6
libsecret handles secure credential storage on Linux via the Secret Service API.
Run from source
python3 run.py
Enable verbose debugging with:
python3 run.py --verbose
Documentation
https://github.com/mfat/sshpilot/wiki
Telegram Channel
Third-Party Libraries
SSH Pilot uses the following third-party libraries:
- pyxtermjs - A fully functional terminal in your browser, used as an alternative terminal backend (MIT License)
Special Thanks
- Elibugy as the primary sponsor of the project
- Behnam Tavakkoli, Chalist and Kalpase, Ramin Najjarbashi, Farid and Narbeh for testing
- Icon designed by Blisterexe
Support Development
Ko-fi: https://ko-fi.com/newmfat
Bitcoin:
bc1qqtsyf0ft85zshsnw25jgsxnqy45rfa867zqk4t
Doge:
DRzNb8DycFD65H6oHNLuzyTzY1S5avPHHx
USDT (TRC20)
TAvQWVD83DB3QuDspnMh4uiJ7hi4Jzcr6X




