Metadata-Version: 2.4
Name: selahx
Version: 0.1.1
Summary: Remote Access Tool — Fast and lightweight CLI experience.
License-Expression: MIT
License-File: LICENSE
Author: Abiy
Author-email: abiy.dema@gmail.com
Requires-Python: >=3.8,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: argparse (>=1.4.0,<2.0.0)
Requires-Dist: cffi (>=2.0.0,<3.0.0)
Requires-Dist: mouseinfo (>=0.1.3,<0.2.0)
Requires-Dist: mss (>=10.1.0,<11.0.0)
Requires-Dist: numpy (>=2,<2.3.0)
Requires-Dist: opencv-python (>=4.12.0.88,<5.0.0.0)
Requires-Dist: pyautogui (>=0.9.54,<0.10.0)
Requires-Dist: pycparser (>=2.23,<3.0)
Requires-Dist: pygetwindow (>=0.0.9,<0.0.10)
Requires-Dist: pymsgbox (>=2.0.1,<3.0.0)
Requires-Dist: pyobjc-core (>=12.0,<13.0)
Requires-Dist: pyobjc-framework-cocoa (>=12.0,<13.0)
Requires-Dist: pyobjc-framework-quartz (>=12.0,<13.0)
Requires-Dist: pyperclip (>=1.11.0,<2.0.0)
Requires-Dist: pyrect (>=0.2.0,<0.3.0)
Requires-Dist: pyscreeze (>=1.0.1,<2.0.0)
Requires-Dist: python3-xlib (>=0.15,<0.16)
Requires-Dist: pytweening (>=1.2.0,<2.0.0)
Requires-Dist: readchar (>=4.2.1,<5.0.0)
Requires-Dist: rubicon-objc (>=0.5.2,<0.6.0)
Requires-Dist: scipy (>=1.16.3,<2.0.0)
Requires-Dist: sounddevice (>=0.5.3,<0.6.0)
Requires-Dist: tabulate (>=0.9.0,<0.10.0)
Requires-Dist: typer (>=0.20.0,<0.21.0)
Description-Content-Type: text/markdown

# selahx

[![Python](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://www.python.org/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

**Remote Access Tool** — Fast and lightweight CLI experience.

---

## Features

![Asset/selahx.png](Asset/selahx.png)

- Launch a server and clients with minimal setup  
- Automatic reverse SSH tunneling  
- Transfer files from EC2 to local machine  
- Lightweight and dependency-managed with Poetry  

---

## Usage

### Server

Start the server on a specific host and port:

```bash
selahx server --key-file key.pem --port 1221 --ssh-host ubuntu@ec2-xx-xx-xx-xx.compute-1.amazonaws.com
````

**Options:**

* `--key-file` — Path to the SSH private key
* `--port` — Local port for the server
* `--ssh-host` — SSH host (e.g., `ubuntu@ec2-instance`)

---

### Client

Start a client and connect to the server:

```bash
selahx client --username user --port 1221
```

**Options:**

* `--username` — Username for the client session
* `--port` — Server port to connect to

---

### Transfer files from EC2 to Local

Start saving files:

```bash
selahx save --key-file key.pem --user ubuntu --host ec2-xx-xx-xx-xx.compute-1.amazonaws.com --dest ~/Downloads/test
```

**Options:**

* `--key-file` — Path to the SSH private key
* `--user` — `ubuntu` (user for `ubuntu@ec2-xx-xx-xx-xx.compute-1.amazonaws.com`)
* `--host` — EC2 host (everything after `@`)
* `--dest` — Destination folder
* `~/Downloads/test` — Example local destination path

---

## Example Workflow

1. Launch the server on your EC2 instance:

```bash
selahx server --key-file key.pem --port 1221 --ssh-host ubuntu@ec2-xx-xx-xx-xx.compute-1.amazonaws.com
```

2. Connect a client from your local machine:

```bash
selahx client --username user --port 1221
```

Once connected, a reverse SSH tunnel is automatically established.

---

## Requirements

* Python 3.8+
* Dependencies are managed via Poetry (see `pyproject.toml`)

---
