個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Distributed GPU compute and orchestration platform. Run GPU and AI workloads across admission-gated hosts with private mesh networking, container sandboxing, per-second metered billing, spot pricing, and 86 MCP tools.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Launch it, connect to it, spend on it and tear it down — through 86 MCP tools, without ever opening a browser. Every host admission-gated before it takes work.
Website · API Docs · Blog · Pricing
graph TB
subgraph clients["Clients"]
dashboard["Dashboard · Next.js"]
sdk["TypeScript SDK"]
cli["CLI"]
end
subgraph platform["Xcelsior Platform"]
api["FastAPI Gateway · public API + dashboard"]
scheduler["Scheduler · Job matching & compliance"]
db[("PostgreSQL 16 + SQLite auxiliaries")]
billing["Billing · metering · holds · payouts"]
reputation["Reputation · 6-tier trust scoring"]
end
subgraph hosts["GPU Host Network"]
mesh["Headscale Mesh · Private Overlay"]
worker1["Worker Agent · RTX 4090"]
worker2["Worker Agent · A100 80 GB"]
worker3["Worker Agent · H100 80 GB"]
end
dashboard & sdk & cli -->|HTTPS| api
api --> scheduler
api --> db
api --> billing
api --> reputation
scheduler -->|SSH over mesh| mesh
mesh --- worker1 & worker2 & worker3
| Global supply | Capacity from independent hosts worldwide, ranked on price, availability, hardware, and host reputation. |
| 4-Layer Security | Version gating → least-privilege Docker → egress firewall → gVisor / Kata sandbox. |
| Agent-Native Surface | 86 MCP tools with per-tool scopes — launch, connect, spend, snapshot, terminate. No dashboard step in any of it. |
| Metered Billing | Per-second metering against wallet holds that expire; Stripe and PayPal payout rails; spending widened only through an approvable plan. |
| Reputation Engine | Multi-factor scoring with 7-day grace decay. Bronze → Silver → Gold → Platinum → Diamond tiers. |
| Private Mesh | Headscale overlay network — GPU workers never exposed to the public internet. |
| Admission Gating | Hosts must pass version checks + GPU fingerprinting before receiving any work. |
| Spot Instances | Interruptible GPUs at published spot rates (no bidding). Capacity-based preemption when on-demand needs capacity. |
Spot workloads use pricing_mode: "spot" — not an auction. Customers accept the published spot rate at launch; the rate is locked for billing when the job is assigned. Preemption is capacity-driven (on-demand contention or host drain), not bid-based.
# Launch an interruptible spot instance
curl -X POST https://xcelsior.ca/instance \
-H "Authorization: Bearer $XCELSIOR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "embed-batch", "vram_needed_gb": 8, "pricing_mode": "spot", "gpu_model": "RTX 4090"}'
| On-Demand | Spot | |
|---|---|---|
| Availability | Guaranteed while funded | Best-effort; may queue |
| Price | Fixed catalog rate | Published spot rate (typically 40–60% below on-demand) |
| Preemption | Never | Yes — when higher-priority work needs GPUs |
| Billing | Metered at on-demand rate | Metered at spot_rate_cad locked at allocation |
Provider controls: spot_enabled, spot_gpu_slots, spot_min_cents per host. Kill switch: XCELSIOR_SPOT_ENABLED=false disables new spot launches (503). See SPOT_RUNBOOK.md (on-call) and SPOT_ROLLOUT.md (staging/production rollout).
Breaking change:
max_bidand spot bidding are removed. Usepricing_mode=spotinstead. See CHANGELOG.md.
git clone https://github.com/aabiro/xcelsior.git && cd xcelsior
uv sync && cp .env.example .env
# API
uvicorn api:app --reload --port 8000
# Worker (separate terminal)
XCELSIOR_HOST_ID=my-gpu XCELSIOR_SCHEDULER_URL=http://localhost:8000 python worker_agent.py
# Submit a job
python cli.py run my-model 8.0
Dashboard →
http://localhost:8000/dashboardHealth →http://localhost:8000/healthzWorker Auth → hosted/prod workers can use eitherXCELSIOR_API_TOKENorXCELSIOR_OAUTH_CLIENT_ID+XCELSIOR_OAUTH_CLIENT_SECRET. If both are set, the worker prefers OAuth.
sequenceDiagram
participant H as GPU Host
participant A as API Gateway
participant S as Security Engine
H->>A: PUT /host (gpu_model, vram, province)
A-->>H: status = pending, admitted = false
H->>A: POST /agent/versions (driver, runc, ctk, docker)
A->>S: admit_node()
S->>S: check_node_versions()
S->>S: recommend_runtime()
S-->>A: admitted = true | rejection reasons
alt Admitted
A-->>H: status = active → enters allocation pool
loop Every 5s
H->>A: POST /agent/telemetry
end
else Rejected
A-->>H: status = pending, reasons logged
end
Minimum versions — runc ≥ 1.1.14 · nvidia-ctk ≥ 1.17.8 · Docker ≥ 24.0 · Driver ≥ 535
api.py FastAPI gateway (public API, SSE, dashboard)
scheduler.py Job queue, host allocation, spot pricing, preemption
worker_agent.py Pull-based GPU agent, telemetry, Docker execution
security.py 4-layer defense: version gating → gVisor/Kata
billing.py metering, wallet holds, escrow, tax, payout rails
events.py Append-only event store, tamper-evident hashing
reputation.py Multi-factor scoring, Bronze→Diamond tiers
privacy.py data retention, consent, export and erasure
verification.py GPU fingerprint verification, re-verification scheduling
artifacts.py Two-tier B2/R2 storage, policy-based routing
db.py PostgreSQL ↔ SQLite dual-write, LISTEN/NOTIFY
cli.py Full CLI for jobs, hosts, billing, marketplace
ai_assistant.py Hexara AI assistant with tool-calling & onboarding wizards
routes/ Modular API route handlers (agent, instances, admin, etc.)
frontend/ Next.js 15 dashboard + marketing site (xcelsior.ca)
wizard/ Onboarding wizard: rent, provide, or SDK setup (TypeScript)
fern/ API documentation (docs.xcelsior.ca)
scripts/ Deployment, install, and bootstrap scripts
tests/ 1400+ backend tests (pytest) + 17 frontend tests (vitest)
docker compose up --build -d # API + Frontend + Scheduler
curl https://xcelsior.ca/healthz
sudo cp xcelsior-*.service /etc/systemd/system/
sudo systemctl daemon-reload && sudo systemctl enable --now xcelsior-api xcelsior-health
See .env.example for all 50+ configuration variables.
# Backend (1400+ tests)
uv run pytest tests/ -v # full suite
uv run pytest tests/ -v --cov=. # with coverage
# Frontend (17 tests)
cd frontend && npm test # vitest
# Linting
ruff check . && black --check *.py routes/*.py tests/
CI runs automatically on push to main and on PRs — see CI and Frontend CI.
git checkout -b feat/my-feature)See docs.xcelsior.ca for full API reference and integration guides.
MIT License · LICENSE
Built with 🍁 in Canada — Ever upward.