Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ All notable changes to Pooled (called SwarmLLM before September 2026). Format fo

## [Unreleased]

## [3.0.0] - 2026-10-16
## [2.0.0] - 2026-10-16

**Run a 125B model from your SSD, in a browser tab, and pool devices to make it faster.** Pooled 3.0 runs Qwen3.8 Flash (**experimental**), a 125B mixture-of-experts model with about 6B active per token. It is far bigger than most GPUs' memory, so each device keeps its share of the experts on its SSD (browser storage for a tab, the model files for `pooled join`), caches recently used experts on its GPU (routing repeats: about 17% of a layer's experts serve about 77% of lookups), and reads the rest from disk as tokens need them. Disk is the slow part; every device that joins holds part of the model in its memory, so less comes from disk and it gets faster: a Mac Studio alone in Chrome decodes about 8 tok/s, and with an RTX 5070 PC joined about 10-12 tok/s, depending on the network. Flash rooms run at up to 64K context (128K is in progress). 3.0 also brings the system-RAM and SSD expert tiers in the terminal, `pooled serve`, channel-bound join auth and the default TURN relay. Release notes and the demo video: [docs/releases/3.0.md](docs/releases/3.0.md).
**Run a 125B model from your SSD, in a browser tab, and pool devices to make it faster.** Pooled 2.0 runs Qwen3.8 Flash (**experimental**), a 125B mixture-of-experts model with about 6B active per token. It is far bigger than most GPUs' memory, so each device keeps its share of the experts on its SSD (browser storage for a tab, the model files for `pooled join`), caches recently used experts on its GPU (routing repeats: about 17% of a layer's experts serve about 77% of lookups), and reads the rest from disk as tokens need them. Disk is the slow part; every device that joins holds part of the model in its memory, so less comes from disk and it gets faster: a Mac Studio alone in Chrome decodes about 8 tok/s, and with an RTX 5070 PC joined about 10-12 tok/s, depending on the network. Flash rooms run at up to 64K context (128K is in progress). 2.0 also brings the system-RAM and SSD expert tiers in the terminal, `pooled serve`, channel-bound join auth and the default TURN relay. Release notes and the demo video: [docs/releases/2.0.md](docs/releases/2.0.md).

Not in 3.0: the CLI on npm (`@pooled/cli` 0.4.1) doesn't have Flash's newest code yet; to lend or host Flash from the terminal, run the CLI from the repo ([cli/README.md](cli/README.md#qwen38-flash-experimental-run-the-cli-from-the-repo)). Flash MTP speculative decoding (#352) is not part of 3.0.
Not in 2.0: the CLI on npm (`@pooled/cli` 0.4.1) doesn't have Flash's newest code yet; to lend or host Flash from the terminal, run the CLI from the repo ([cli/README.md](cli/README.md#qwen38-flash-experimental-run-the-cli-from-the-repo)). Flash MTP speculative decoding (#352) is not part of 2.0.

### Upgrade notes
- **`@pooled/openclaw` 0.3.2 bundles the room node from before these changes**: an OpenClaw gateway can't hold Qwen3.8-Flash-Next layers, use `--disk` or the TURN relay until a new plugin release.
Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ abstract: "Pooled runs one open language model across the devices in a room, in
repository-code: "https://github.com/Nehanth/pooled"
url: "https://pooled.run"
license: MIT
version: 3.0.0
version: 2.0.0
date-released: 2026-10-16
4 changes: 2 additions & 2 deletions cli/npm-shrinkwrap.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion cli/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@pooled/cli",
"version": "3.0.0",
"version": "2.0.0",
"description": "Use a Pooled room from the command line: pooled serve <ROOM CODE> (a local OpenAI and Anthropic compatible endpoint), pooled chat <ROOM CODE> (talk to its model), pooled join <ROOM CODE> and pooled host (lend this computer's GPU).",
"homepage": "https://pooled.run",
"repository": {
Expand Down
8 changes: 4 additions & 4 deletions docs/releases/3.0.md → docs/releases/2.0.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Pooled 3.0
# Pooled 2.0

## Run a 125B model from your SSD, in a browser tab, and pool devices to make it faster

Pooled 3.0 runs **Qwen3.8 Flash**, a 125B mixture-of-experts model that uses about 6B of its parameters per token (177B with its n-gram table). It is **experimental**.
Pooled 2.0 runs **Qwen3.8 Flash**, a 125B mixture-of-experts model that uses about 6B of its parameters per token (177B with its n-gram table). It is **experimental**.

Flash is far bigger than most GPUs' memory, so Pooled runs it from disk:

Expand Down Expand Up @@ -67,8 +67,8 @@ Full list: [CHANGELOG.md](../../CHANGELOG.md).

## Compatibility and upgrading

- **The room protocol is unchanged (4).** 1.x and 3.0 tabs can share a room, with two limits: a 3.0 creator refuses a Start pressed on a v1.0.0 tab (reload it to press Start), and a v1.0.0 tab turned away with "this tab runs an older Pooled" only needs a reload.
- **To lend a computer to Flash from the terminal, run the CLI from the repo for now.** The CLI on npm (`@pooled/cli` 0.4.1) doesn't have Flash's newest code yet: [cli/README.md](../../cli/README.md#qwen38-flash-experimental-run-the-cli-from-the-repo). An older `pooled join` can still join a 3.0 room and run the other models; a Flash start on it fails with "couldn't load its layers (unknown model qwen3.8-flash)", and a 0.4.1 node dealt a Flash offload refuses it (the host deals again without it). `pooled serve` / `pooled chat` 0.4.x keep working.
- **The room protocol is unchanged (4).** 1.x and 2.0 tabs can share a room, with two limits: a 2.0 creator refuses a Start pressed on a v1.0.0 tab (reload it to press Start), and a v1.0.0 tab turned away with "this tab runs an older Pooled" only needs a reload.
- **To lend a computer to Flash from the terminal, run the CLI from the repo for now.** The CLI on npm (`@pooled/cli` 0.4.1) doesn't have Flash's newest code yet: [cli/README.md](../../cli/README.md#qwen38-flash-experimental-run-the-cli-from-the-repo). An older `pooled join` can still join a 2.0 room and run the other models; a Flash start on it fails with "couldn't load its layers (unknown model qwen3.8-flash)", and a 0.4.1 node dealt a Flash offload refuses it (the host deals again without it). `pooled serve` / `pooled chat` 0.4.x keep working.
- `pooled serve` can't use a v1.0.0 host (it has no API) and says so.
- Flash checkpoints saved on disk by an older build count as missing (#379): the first question on them reads the prompt again.
- Behaviour changes: the layer split defaults to "For speed"; MoE DP4a prefill is on by default on NVIDIA (`?dp4a=0`); `--ram` is on by default when a room is short; iPhone pledges are capped at 1 GB; scripts that join a gated room need the invite link or `--allow-all`.
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "pooled",
"version": "3.0.0",
"version": "2.0.0",
"description": "Peer-to-peer LLM inference in the browser: each device holds some of the layers, tabs talk over WebRTC, and our own WebGPU kernels do the math.",
"homepage": "https://pooled.run",
"repository": {
Expand Down
Loading