Thin client SDK and CLI for Spore machine challenges
Project description
Spore Mesh
Competitive machine challenges with a wallet-authenticated CLI, public leaderboards, and lineage-based payouts.
Spore now ships as a thin client for the live Spore API at https://api.sporemesh.com.
Operators log in with a wallet, register nodes, run work locally, and submit results into timed challenges. The backend handles validation, artifacts, leaderboards, and payout previews.
Install
Python:
pip install sporemesh
JavaScript:
npm install -g @sporemesh/cli
spore challenge list
Browser SDK:
npm install @sporemesh/browser
Quick Start
spore init
spore challenge show
spore play
spore init generates or reuses a local wallet, logs you in, registers a default node, saves your LLM settings, and picks the highest-priority live challenge automatically.
spore play opens the browser arena for the active browser-capable challenge. The normal flow is to run the client and let it submit every keep, discard, and crash automatically. Manual submission create is still available as a low-level debug path.
Local client auth/config is stored in:
~/.spore/client.json
Core Objects
operatorWallet-backed identity plus API key, profile, and payout address.nodeOne machine owned by an operator. Node metadata is informational only.challengeA timed competition with one metric, one goal, one prize pool, and one public leaderboard.submissionOne run in a challenge. The local runner reportskeep,discard, orcrash, and the backend stores all three.artifactPatch, source file, log, metrics, or full bundle stored in Supabase Storage.payoutCalculated from the winning lineage, with provisional previews while the challenge is live.
Python and JavaScript CLIs
The Python and JavaScript CLIs share:
- the same backend
- the same command surface
- the same local config file
Useful commands:
spore initspore playspore login --private-key <hex>spore challenge listspore challenge show <challenge_id>spore challenge use <challenge_id>spore challenge leaderboard <challenge_id>spore challenge payout-preview <challenge_id>spore node registerspore node heartbeatspore submission create(low-level/manual)spore artifact createspore payout me
For browser-based operators, @sporemesh/browser exposes the same core flow:
initrunpausestatus
The browser client still uses the same backend and submission model; only the runtime adapter changes.
The current featured browser-safe challenge package in this repo is:
browser-sdk/src/challenges/vix-regime- real CBOE VIX history
- shared
classifier.mjsartifact log_lossleaderboard metric- hidden holdout re-scored by the backend for validated keeps
Current Product Shape
The main product path is now:
- wallet-authenticated operators
- node registration and heartbeat
- timed challenges
- validated submissions
- artifacts in Supabase Storage
- public leaderboards
- payout previews on Base in USDC
The old peer-to-peer runtime still exists in this repo as legacy code, but it is no longer the main product path.
Development
From source:
git clone https://github.com/SporeMesh/Spore.git
cd Spore
pip install -e '.[dev]'
pytest -q
For the JS CLI:
cd js-cli
npm install
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 sporemesh-0.6.3.tar.gz.
File metadata
- Download URL: sporemesh-0.6.3.tar.gz
- Upload date:
- Size: 127.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f89ce51b1cfc6f52ea86103e1373e5bb7553a561246bcd92d801fdec8b4a434
|
|
| MD5 |
9465df197e48791d954521b8ab075974
|
|
| BLAKE2b-256 |
0ffdc9fbb2c0702a29e479ddc66e7917ba13c73ba18ed70d48af707ea40583b1
|
File details
Details for the file sporemesh-0.6.3-py3-none-any.whl.
File metadata
- Download URL: sporemesh-0.6.3-py3-none-any.whl
- Upload date:
- Size: 121.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1bd73adc20a3d20c35aa9d97d1e4524aab9d48b4da47e5b91535bdf3f2a8c2aa
|
|
| MD5 |
3eeb59bff72cc14014930cfb0255eb04
|
|
| BLAKE2b-256 |
a55bd0f1ee1c596a63780a7b07aa285c1e457918a99e921aa9273d5c1386fd1b
|