Metadata-Version: 2.4
Name: swan-ssh
Version: 1.0.2
Summary: A CLI tool to manage and sync SSH connections via Git
Author: Shohrat Aghazada
License: MIT
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: POSIX :: Linux
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typer[all]>=0.9.0
Requires-Dist: rich>=13.0.0
Requires-Dist: pexpect>=4.8.0
Dynamic: license-file

# Swan SSH 🦢

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.

```bash
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:
> ```bash
> 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.
   ```bash
   swan init
   ```

2. **Add a Server**:
   ```bash
   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.
   ```bash
   swan list
   ```

4. **Connect Instantly**:
   Using the short `ID` from the list command.
   ```bash
   swan connect <id>
   ```

5. **Sync from Another Device**:
   Installed Swan on your Macbook? Just run:
   ```bash
   swan init
   # Provide the same repo URL
   swan sync
   # Ready to connect!
   ```

6. **Remove a Server**:
   ```bash
   swan rm <id>
   ```

7. **Clean up & Uninstall**:
   If you ever want to completely remove the configuration directory (`~/.swan-ssh`) before uninstalling the tool, use:
   ```bash
   swan destroy
   pipx uninstall swan-ssh
   ```
