Metadata-Version: 2.4
Name: progresspals
Version: 0.1.2
Summary: Private AI clusters pooled over the internet, on your hardware. No VPS, no API fees.
Home-page: https://progresspals.com
Author: ProgressPals
Author-email: work@franciscorullan.com
License: Apache-2.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: LICENSE-MIT-PETALS
License-File: NOTICE
Requires-Dist: torch>=1.12
Requires-Dist: bitsandbytes==0.41.1
Requires-Dist: accelerate>=0.27.2
Requires-Dist: huggingface-hub<1.0.0,>=0.11.1
Requires-Dist: tokenizers>=0.13.3
Requires-Dist: transformers==4.43.1
Requires-Dist: speedtest-cli==2.1.3
Requires-Dist: hivemind>=1.1.10.post2
Requires-Dist: tensor_parallel==1.0.23
Requires-Dist: humanfriendly
Requires-Dist: async-timeout>=4.0.2
Requires-Dist: cpufeature>=0.2.0; platform_machine == "x86_64"
Requires-Dist: packaging>=20.9
Requires-Dist: sentencepiece>=0.1.99
Requires-Dist: peft==0.8.2
Requires-Dist: safetensors>=0.3.1
Requires-Dist: Dijkstar>=2.6.0
Requires-Dist: numpy<2
Requires-Dist: typer<1.0,>=0.9
Requires-Dist: cryptography>=41.0.0
Requires-Dist: rich>=13.0.0
Provides-Extra: dev
Requires-Dist: pytest==6.2.5; extra == "dev"
Requires-Dist: pytest-forked; extra == "dev"
Requires-Dist: pytest-asyncio==0.16.0; extra == "dev"
Requires-Dist: black==22.3.0; extra == "dev"
Requires-Dist: isort==5.10.1; extra == "dev"
Requires-Dist: psutil; extra == "dev"
Dynamic: license-file

# progresspals

**Private AI clusters pooled over the internet, on your hardware. No VPS, no API fees.**

ProgressPals lets a small group of trusted people pool their GPUs and run massive open-source language models that no single machine could host on its own. One CLI, one invite link, one local OpenAI-compatible endpoint.

- 🌐 **Website**: <https://progresspals.com>
- 📚 **Docs**: <https://progresspals.com/docs>

## Install

```bash
pip install progresspals
```

Requires Python 3.10+ on Linux or macOS. Windows is supported via WSL2.

## Quick start

```bash
# 1. Authenticate (one-time)
pals init

# 2. Start a new private swarm
pals create Qwen/Qwen3-32B

# 3. Mint an invite for a teammate
pals invite create

# 4. They join with one command
pals join Qwen/Qwen3-32B <invite-token>

# 5. Expose an OpenAI-compatible endpoint at localhost:8080
pals serve
```

Then point Cursor, Aider, Continue, n8n, the OpenAI SDK, or anything that speaks `/v1/chat/completions` at `http://localhost:8080/v1`.

## Supported models

Pass any of these HuggingFace model IDs directly to `pals create`:

| Family | Sizes |
|---|---|
| Qwen 3 | 0.6B, 1.7B, 4B, 8B, 14B, 32B (dense), 30B-A3B, 235B-A22B (MoE) |
| Qwen 3-Coder | 30B-A3B, 480B-A35B |
| Qwen 2.5 | 0.5B, 1.5B, 3B, 7B, 14B, 32B, 72B |
| Qwen 2.5-Coder | 0.5B, 1.5B, 3B, 7B, 14B, 32B |
| Llama 2 / 3 / 3.1 / 3.3 | up to 405B |
| Mixtral | 8x7B, 8x22B |
| Falcon | 40B, 180B |
| BLOOM | 176B |

## How it works

The model is split across machines. Each peer holds a slice of the transformer layers. Inputs flow through the chain one peer at a time and stream back. Pipeline parallelism over libp2p, with per-swarm AES-256-GCM encryption on activation tensors between peers.

Swarms are **invite-only**. No public discovery, no leaderboard, no telemetry. Membership lives as a per-swarm allow-list and is enforced server-side every ~30 seconds.

## What's inside

- Pipeline-parallel distributed inference for 8 model families
- libp2p peer discovery + NAT traversal
- Per-swarm AES-256-GCM activation encryption with HKDF-SHA256 key derivation
- Single-use, regenerable invite tokens
- Live peer dashboard (`pals dash`) — TUI with peer health, layer coverage, RPC stats
- OpenAI-compatible HTTP server (`pals serve`) — `/v1/chat/completions`, `/v1/models`, SSE streaming
- Member controls (`pals peers list / kick`, `pals invite list / revoke`)
- Optional INT8 / NF4 quantization via bitsandbytes for smaller VRAM footprints

## License

Apache License 2.0. See `LICENSE` and `NOTICE` for full text and attributions.

## Links

- Website: <https://progresspals.com>
- Documentation: <https://progresspals.com/docs>
- Contact: progresspals@gmail.com
