Metadata-Version: 2.4
Name: helppeer
Version: 0.1.0
Summary: Asynchronous ephemeral file transfer for AI model weights
Author: JenD86
License-Expression: MIT
Project-URL: Homepage, https://github.com/JenD86/help-peer
Project-URL: Repository, https://github.com/JenD86/help-peer
Project-URL: Issues, https://github.com/JenD86/help-peer/issues
Keywords: file-transfer,ai,model-weights,safetensors,p2p,decentralized,ephemeral
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
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: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: cryptography>=41.0
Requires-Dist: blake3>=0.3
Requires-Dist: requests>=2.28
Requires-Dist: reedsolo>=1.7
Requires-Dist: hkdf>=0.0.3
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"

# Help Peer Python SDK

A Python SDK for asynchronously sharing large file dumps (AI model weights) via the Help Peer network.

## Installation

```bash
pip install helppeer
```

## Quick Start

```python
import helppeer

# Send a model directory
code = helppeer.send("./my-model", name="Llama-3-70B")
print(f"Transfer code: {code}")
# Share this code with the recipient. Data lives for 24 hours.

# Receive a transfer
helppeer.receive("38-vortex-xenon", output_dir="./received")
```

## Configuration

```python
import helppeer

# Use custom relay and storage nodes
helppeer.configure(
    relay="https://relay.helppeer.dev",
    storage_nodes=["https://node1.helppeer.dev", "https://node2.helppeer.dev"],
)

# Or use environment variables:
# HELPEER_RELAY_URL, HELPEER_STORAGE_NODES (comma-separated)
```

## Agent Integration

```python
import helppeer
import json

# Send and get structured result
result = helppeer.send("./model-weights", name="my-model", return_details=True)
# result = {"code": "38-vortex-xenon", "transfer_name": "my-model", "files": 4, "total_bytes": 1056}

# Receive with progress callback
def on_progress(file_path, segment, total_segments):
    print(f"  {file_path}: {segment}/{total_segments} segments")

helppeer.receive("38-vortex-xenon", output_dir="./received", progress=on_progress)
```

## CLI

The SDK also installs a `helppeer` CLI:

```bash
helppeer send ./my-model --name "Llama-3-70B"
helppeer receive 38-vortex-xenon --output ./received
```
