Skip to content

Plugins

Mehdi edited this page Sep 3, 2026 · 5 revisions

Plugins

SSH Pilot has a plugin system that lets you add new features, protocols, and tools to the application.


What Can Plugins Do?

Plugins can:

  • Add new connection protocols (Telnet, Serial, Mosh, Docker/Podman, Kubernetes)
  • Add new UI pages and tabs (like the Docker Console)
  • Add tools to the Tools menu
  • React to events (when you connect, disconnect, or change settings)
  • Run commands on your server
  • Create custom connection types

Built-in Plugins

SSH Pilot ships with these built-in plugins:

Plugin What it does Default
SSH Protocol Standard SSH connections (required) Always on
Telnet Protocol Telnet connections On
Serial Protocol Serial port connections On
Mosh Protocol Mobile Shell (UDP-based, works on poor connections) On
Docker/Podman Protocol Exec sessions into containers On
Kubernetes Protocol kubectl exec sessions On
Docker Console Local/remote Docker/Podman management GUI Off (opt-in)

Built-in plugins cannot be uninstalled. You can disable optional ones in Settings > Plugins. The SSH protocol cannot be disabled.

Docker Console is off by default. Enable it under Settings > Plugins, then see Docker Console. For Telnet, Serial, Mosh, Docker exec, and Kubernetes connections, see Protocols.


Installing a Plugin

Step 1 -- Get the plugin

Plugin files are typically .zip or .py packages. You can find community plugins or create your own.

Step 2 -- Open Plugins settings

  1. Open Settings (Ctrl+, / Cmd+,)
  2. Go to Plugins

Step 3 -- Install

  1. Click Install from File
  2. Select the plugin package
  3. The plugin appears in the list

Step 4 -- Enable

Toggle the switch next to the plugin to enable or disable it.


Managing Plugins

From Settings > Plugins, you can:

Action How
Enable a plugin Toggle the switch to ON
Disable a plugin Toggle the switch to OFF
View plugin info Click the info button
Remove a plugin Click the remove button (user-installed plugins only)
Install a new plugin Click Install from File

Security Warning

Plugins run Python code with your user permissions. Only install plugins from sources you trust.


Developing a Plugin

If you know Python, writing a plugin is straightforward. A plugin is a Python package with a manifest file and a main class.

Basic structure

my-plugin/
    plugin.json
    __init__.py

plugin.json

{
    "name": "My Custom Plugin",
    "description": "Does something awesome",
    "version": "1.0.0",
    "api_version": "1.14",
    "entry_point": "MyPlugin"
}

init.py

from sshpilot.plugins.base import BasePlugin

class MyPlugin(BasePlugin):
    name = "My Custom Plugin"
    description = "Does something awesome when I connect"
    version = "1.0.0"

    def on_app_ready(self, app_context):
        # The GUI is loaded. Add your custom menu items here.
        pass

    def on_connection_opened(self, host_model):
        # A new SSH connection just succeeded!
        print(f"Connected to {host_model.hostname}!")

What plugins can hook into

  • on_app_ready -- The application has started
  • on_connection_opened -- A connection was established
  • on_connection_closed -- A connection was closed
  • on_session_opened -- A terminal session started
  • on_session_closed -- A terminal session ended
  • on_settings_changed -- A setting was modified

Developer documentation

For comprehensive tutorials on the plugin API, UI hooks, and protocol backends, see the docs/plugins/ directory in the SSH Pilot source code.


Example Plugins

The source code includes example plugins:

  • mock_vps -- A minimal VPS provisioning example
  • easyenv_workspaces -- A real REST API integration example

Next Steps

Clone this wiki locally