Skip to main content

fleet-ssh

A browser-based SSH & SFTP fleet manager — like Termius, but it runs from a single Python command.

Install

pip install fleet-ssh

Or from a checkout:

pip install -e .

Quick Start

fleet-ssh --init-config      # writes a starter servers.yaml
fleet-ssh                     # serves on http://localhost:7681

Then open http://localhost:7681.

By default fleet-ssh binds to 127.0.0.1 (this machine only). To reach it from other devices on a trusted network, run fleet-ssh --host 0.0.0.0 — note this makes every configured server reachable to anyone who can hit the port.

Configure Servers

Config lives at ~/.config/fleet-ssh/servers.yaml (override with --config or $FLEET_SSH_CONFIG). Authenticate with a password or a private key:

servers:
  - name: "My Server"
    host: "192.168.1.100"
    port: 22
    username: "admin"
    key_path: "~/.ssh/id_ed25519"   # preferred
    # password: "yourpassword"       # or a password
    # key_passphrase: "…"            # if the key is encrypted
    group: "Production"
    tags: ["web"]

You can also add / edit / delete servers from the web UI — changes are written back to servers.yaml. Each server keeps a stable id, so adding or removing one never disturbs your other sessions.

Use as a library

from fleet_ssh import create_app
import uvicorn

app = create_app(config_path="servers.yaml")
uvicorn.run(app, host="127.0.0.1", port=7681)

create_app(config_path=None, poll_interval=30, cors_origins=None) returns a standard FastAPI app you can mount, extend, or serve with any ASGI server.

Features

  • SSH Terminal — full xterm.js terminal with color, resize, copy/paste
  • SFTP Browser — browse, preview, download, delete files; create folders
  • Multi-tab sessions — several SSH/SFTP sessions at once
  • Server groups & tags — organize by environment
  • Live reachability — background port checks with an up/down indicator
  • Password or SSH-key auth

Security notes

  • Passwords in servers.yaml are stored in plain text — prefer key_path.
  • Credentials never leave the backend; the web UI is only ever sent host, port, username, group, and tags.
  • Host keys are auto-accepted (AutoAddPolicy), so run this on networks you trust.
  • There is no login on the web UI itself — keep the default localhost bind unless you put it behind your own auth/proxy.

Requirements

  • Python 3.9+
  • Installed automatically: fastapi, uvicorn, paramiko, pyyaml

Architecture

Browser (xterm.js + Fetch)
    ↕  WebSocket (SSH terminal)
    ↕  REST API  (SFTP + server management)
Python Backend (FastAPI)
    ↕  paramiko (SSH/SFTP)
Remote SSH Servers

Release files for fleet-ssh 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fleet-ssh 1.0.0
File Size Uploaded
fleet_ssh-1.0.0.tar.gz 24.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fleet-ssh 1.0.0
File Interpreter ABI Platform
fleet_ssh-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 49.3 kB

Release files / fleet_ssh-1.0.0.tar.gz

Download URL fleet_ssh-1.0.0.tar.gz
Size 24.9 kB
Tags Source
SHA-256 checksum
How to use checksums
41f7334f7ff8bc376727612f2419337c36cb59a6afa310d2dda569b56811760d
BLAKE2b-256 checksum
How to use checksums
0b6bcd203c24e9a4a54a5c574c6c5dfc0ece0528e38fb94c36bb2a1396e3b543
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / fleet_ssh-1.0.0-py3-none-any.whl

Download URL fleet_ssh-1.0.0-py3-none-any.whl
Size 24.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6db3348c977877676665607f7282cd0fd43732b669598a908444117565d577f0
BLAKE2b-256 checksum
How to use checksums
4d565cc78e734097b60f417ccddfd4b9979acc5f6d8bb4ed18d3511031ca18a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page