Skip to main content

A CLI tool to manage and sync SSH connections via Git

Project description

Swan SSH 🦢

GitHub stars PyPI Downloads

A simple, fast, and beautiful CLI tool to manage and synchronize SSH connections seamlessly across all your devices using a private Git repository. Made with Python, Typer, and Rich.

Installation

The recommended way to install Swan SSH is via pipx. This ensures it's installed in an isolated environment without disturbing your system's Python packages.

pipx install swan-ssh

⚠️ Important Note on pipx PATH: If you see a warning saying ~/.local/bin is not on your PATH, you simply need to run:

pipx ensurepath

Then close and reopen your terminal. Your swan command will now be globally available!

Usage Flow

  1. Initialize the workspace: First, create a private GitHub repository. Then, run swan init and paste its URL.

    swan init
    
  2. Add a Server:

    swan add
    # Prompts for label, ip, port, username, password
    # Automatically commits and pushes to your private repo behind the scenes!
    
  3. List Servers: Brings up a beautiful formatting table of your servers.

    swan list
    
  4. Connect Instantly: Using the short ID from the list command.

    swan connect <id>
    
  5. Transfer Files (Copy): Transfer files or directories to and from a server using its short ID.

    # Upload a local file to the server
    swan copy <id> /local/path /remote/path
    
    # Download a file from the server (-d flag)
    swan copy <id> /local/path /remote/path -d
    
    # Copy directories recursively with a progress bar (-r -p)
    swan copy <id> /local/dir /remote/dir -r -p
    
  6. Sync from Another Device: Installed Swan on your Macbook? Just run:

    swan init
    # Provide the same repo URL
    swan sync
    # Ready to connect!
    
  7. Remove a Server:

    swan rm <id>
    
  8. Clean up & Uninstall: If you ever want to completely remove the configuration directory (~/.swan-ssh) before uninstalling the tool, use:

    swan destroy
    pipx uninstall swan-ssh
    

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swan_ssh-1.1.0.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

swan_ssh-1.1.0-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file swan_ssh-1.1.0.tar.gz.

File metadata

  • Download URL: swan_ssh-1.1.0.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for swan_ssh-1.1.0.tar.gz
Algorithm Hash digest
SHA256 86b63ab53ccdc488fdcfded95f500d86c2f3049ff9b2d77c5fb504bdbf17a49f
MD5 6b5298c0772be2e28682123b3f7a548a
BLAKE2b-256 8bca4c63b5ea18a62923a828f85ccc92453b43b88b9ae86e275787efc76fd84c

See more details on using hashes here.

File details

Details for the file swan_ssh-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: swan_ssh-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for swan_ssh-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fc1d2fee5078afe4faff6e509ca667dd60bb3e45d0375bbac3dfd2faa335c7c7
MD5 451f3e4f229563fddeff4ebfd94a0abe
BLAKE2b-256 13a01b7851d244620ac24d9764cd4bc7866386eba1a02589a34ed336339c3963

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page