Private AI clusters pooled over the internet, on your hardware. No VPS, no API fees.
Project description
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
pip install progresspals
Requires Python 3.10+ on Linux or macOS. Windows is supported via WSL2.
Quick start
# 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file progresspals-0.1.2.tar.gz.
File metadata
- Download URL: progresspals-0.1.2.tar.gz
- Upload date:
- Size: 209.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
adeff07b268fd92d6583f2dc0766ee4768039abd18a011f3938140e588b971d1
|
|
| MD5 |
6242c4228623170e9dbda83afa23d536
|
|
| BLAKE2b-256 |
4805a8f88794ef7a30f8a3a13974a8f080c0dbbb4e4fee6c938e4f39ce149090
|
Provenance
The following attestation bundles were made for progresspals-0.1.2.tar.gz:
Publisher:
publish-pypi.yml on oceanmanfran/Progresspalspods
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
progresspals-0.1.2.tar.gz -
Subject digest:
adeff07b268fd92d6583f2dc0766ee4768039abd18a011f3938140e588b971d1 - Sigstore transparency entry: 1573880662
- Sigstore integration time:
-
Permalink:
oceanmanfran/Progresspalspods@0e813a1e0a6558ee4c5ef9154946a29ff9e4e2dd -
Branch / Tag:
refs/heads/main - Owner: https://github.com/oceanmanfran
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@0e813a1e0a6558ee4c5ef9154946a29ff9e4e2dd -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file progresspals-0.1.2-py3-none-any.whl.
File metadata
- Download URL: progresspals-0.1.2-py3-none-any.whl
- Upload date:
- Size: 250.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0dbb048d530770979ca24cd98db547b2bb841dceef04d4e88cf5f9f8171aff31
|
|
| MD5 |
c6c47d678e47cd2bfffadac2fcaab60b
|
|
| BLAKE2b-256 |
2c04a59749aeea931cb8c8b659589b3ad899782cd2b4c6df0f456b15f3d8d708
|
Provenance
The following attestation bundles were made for progresspals-0.1.2-py3-none-any.whl:
Publisher:
publish-pypi.yml on oceanmanfran/Progresspalspods
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
progresspals-0.1.2-py3-none-any.whl -
Subject digest:
0dbb048d530770979ca24cd98db547b2bb841dceef04d4e88cf5f9f8171aff31 - Sigstore transparency entry: 1573880672
- Sigstore integration time:
-
Permalink:
oceanmanfran/Progresspalspods@0e813a1e0a6558ee4c5ef9154946a29ff9e4e2dd -
Branch / Tag:
refs/heads/main - Owner: https://github.com/oceanmanfran
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@0e813a1e0a6558ee4c5ef9154946a29ff9e4e2dd -
Trigger Event:
workflow_dispatch
-
Statement type: