Get started ★ GitHub
♻️ open source · MIT · donation-only

Some devs have tokens and no ideas.
Some have ideas and no tokens.

SpareCycles is the trade between them — a marketplace of vibe-coding projects and a pool of donated AI compute. Point your idle subscription, API key, or local GPU at a project you believe in. GoFundMe, but the currency is tokens.

1 process to run a pool 0 provider keys stored server-side 52 tests, CI on Linux + Windows 7+ runners, cloud & local

The trade, in three moves

Every serious AI-assisted developer has hit “out of usage until 7pm” mid-flow — and also left a Max subscription idle overnight. Supply and demand live in the same community.

1

Bring your project

List it on the marketplace. You get a public page, a batch queue, and an OpenAI-compatible endpoint any tool can call — Hermes, aider, plain curl.

2

Point an idle agent at someone's

One stdlib-only script pairs your machine to your account. It serves only projects you choose, with your Claude/Codex/Grok CLI, a metered key, or Ollama / LM Studio — fully offline.

3

Get credited — and boosted

Every completed job lists you as an AI Donor on that project's leaderboard. And donors' own projects jump the queue: give tokens tonight, get priority tomorrow.

One small server between two crowds

The coordinator shuffles prompts and answers — never credentials. Nodes connect outbound-only: no open ports, works behind home NAT.

Idea-rich 💡 project owners & their tools Hermes · aider · curl · web UI …but out of tokens ♻️ SpareCycles Marketplace Job queue AI Donor ledger never sees provider keys FastAPI + SQLite, one process Token-rich 🔋 donor nodes — one script claude · codex · gemini · grok · APIs ollama · LM Studio (offline) prompt answer poll & claim post answer Outbound-only nodes — no port forwarding, no firewall holes.

Zero integration cost

If your tool speaks OpenAI, it already speaks SpareCycles.

Use a pool from any tool

Swap one base URL. Model preference, fallback, temperature and max tokens ride along with every job.

from openai import OpenAI

client = OpenAI(
    base_url="https://your-pool.example/v1",
    api_key="sci_...",  # project inference key
)
r = client.chat.completions.create(
    model="default",
    messages=[{"role": "user",
               "content": "plan the refactor"}],
)

Become a donor

Stdlib-only Python — nothing to install. Auto-detects your CLIs, API keys, and local model servers, then advertises what it can serve.

# pair once (code from your Account page)
python node_connector.py \
  --server https://your-pool.example \
  --code AB12-CD34

# check on it any time
python node_connector.py --status
#   ONLINE · serving: doge-miner · 41 jobs done

Built like it means it

🔐

Keys never leave the node

The server stores only hashes of tokens it issued itself. Provider keys live in your env vars, on your machine, full stop.

🖥️

Local models count

Ollama and LM Studio are auto-detected; installed models are advertised by name. Donate your GPU, not just your subscription.

Karma flywheel

Projects whose owners donate get claimed first at equal priority. Boolean, never proportional — newcomers are queued, not starved.

☀️

Public by default

Every job's prompt and output is visible on the project page. Sunlight is the anti-abuse mechanism.

🏆

AI Donor identity

Leaderboards per project, public profiles with the apps you've built and the projects you've carried.

🔑

Recoverable accounts

Five one-time recovery codes, plus any paired node can mint you a fresh key. No email required, no passwords ever.

📦

One-process deploy

FastAPI + SQLite on a $6 droplet — or your desktop behind a tunnel. systemd + Caddy guide included.

Tested, honestly

52 tests including a live realtime round-trip through a real server and the real connector script. CI on Linux and Windows.

Donation-only. By design.

No money moves. Tokens are never sold. That single rule keeps the platform out of “reselling API access” territory, keeps node operators in control of their own provider terms, and keeps the whole thing what it should be: a community pooling its spare cycles behind the projects it wants to exist.

Your agent is idle right now.

Run a pool for your own machines in five minutes — donation is a layer on top of a tool that's already worth running selfishly.