Metadata-Version: 2.1
Name: portacode
Version: 0.1.13
Summary: Portacode CLI client and SDK
Home-page: https://github.com/portacode/portacode
Author: Meena Erian
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: click>=8.0
Requires-Dist: platformdirs>=3.0
Requires-Dist: cryptography>=41.0
Requires-Dist: websockets>=12.0
Requires-Dist: pyperclip>=1.8
Requires-Dist: psutil>=5.9
Requires-Dist: pyte>=0.8
Requires-Dist: pywinpty>=2.0; platform_system == "Windows"
Provides-Extra: dev
Requires-Dist: black; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: pytest; extra == "dev"

# Portacode

Portacode is a modular Python package that provides a command-line interface for connecting your local machine to the Portacode cloud gateway.

```
$ pip install portacode
$ portacode connect
```

The first release only ships the `connect` command which:

1. Creates an RSA public/private key-pair (if not already present) in a platform-specific data directory.
2. Guides you through adding the public key to your Portacode account.
3. Establishes and maintains a resilient WebSocket connection to `wss://device.portacode.com/gateway`.

Future releases will add more sub-commands and build upon the multiplexing channel infrastructure already included in this version.

## Project layout

```
portacode/          ‑ Top-level package
├── cli.py          ‑ Click-based CLI entry-point
├── data.py         ‑ Cross-platform data-directory helpers
├── keypair.py      ‑ RSA key generation & storage
├── connection/     ‑ Networking & multiplexing logic
│   ├── client.py   ‑ WebSocket client with auto-reconnect
│   └── multiplex.py- Virtual channel multiplexer
└── …
```

See the README files inside each sub-module for more details. 
