compute.wick.pics

pics.wick.compute由 compute.wick.pics 發布官方發布者v1.1.1更新於 Oct 25, 2026

Live GPU spot market: 1,700+ offers, 10 provider feeds. History, watches, limit orders, no fee

已驗證Streamable HTTP可網頁執行雲端與基礎設施金融資料與分析

概覽

AI 產生的概覽

遠端 GPU 租賃市場伺服器,讓助理搜尋即時 GPU 報價、比較價格與歷史、設定價格監控與限價單,並租用或銷毀執行個體。

可以做什麼
依型號、類型、國家與 GPU 數量搜尋並檢視即時 GPU 報價,附市場統計與供應商資料可靠性。檢視價格與閒置容量歷史、性價比排行、價格分位與現貨價差。估算 VRAM 是否足夠,並核對各供應商的計費細則。建立、查詢與刪除價格監控及限價單。透過錢包微支付或自有供應商金鑰租用 GPU,查詢或銷毀執行個體。註冊計量帳戶並讀取用量帳本。
適用情境
適合讓助理跨供應商尋找與比較 GPU 租賃容量、追蹤價格走勢,或直接下單租用、管理執行個體與價格提醒,而不必逐一造訪各市場網站。
執行需求
遠端 streamable HTTP 端點,瀏覽不需本機安裝、帳戶或 API 金鑰。在自有供應商帳戶上租用需每次呼叫傳入供應商金鑰;錢包租用透過 x402 使用 Base 上的 USDC。選用計量帳戶會回傳一個 bearer 權杖。
安裝前請注意
租用會產生真實費用:錢包租用支付 Base 上的 USDC,供應商金鑰租用計入你的供應商帳單,另加平台費(2.5%,最低 0.01 美元,每租約每 UTC 日上限 5 美元)。下單工具預設試執行,需 dry_run=false 且 confirm=true 才會真正執行。destroy_rental 會刪除執行個體。帳戶權杖與 order_secret 僅顯示一次,等同金鑰;供應商金鑰按次傳入。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 compute.wick.pics,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/pics.wick.compute%2Fmarket/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "compute-wick-pics": {
      "type": "http",
      "url": "https://compute.wick.pics/mcp/"
    }
  }
}

README

compute.pangle.online — GPU compute meta-aggregator

[live H100 spot] [live RTX 4090 idle]

One process: provider pollers + SQLite store + ranked REST API + MCP server + the site. Live at https://compute.pangle.online · API /api/offers, /api/history, /api/idle-history, /api/watches · MCP /mcp/ (streamable HTTP).

Run anywhere (the VPS lift)

docker compose up          # or:python3 -m venv venv && venv/bin/pip install -r requirements.txtvenv/bin/uvicorn app:app --port 8956

No external services, no keys required (keys in .env deepen Vast/RunPod results; DataCrunch and Akash need none).

The fee levers — there are two, and confusing them corrupts the data

FEE_BPS (core/economics.py) marks up displayed prices, and it is 0, permanently. The book, the tape, the index and the per-chip prices are published as THE MARKET's numbers — check any of them against the provider's own page. A markup here would quietly make every published price ours instead of theirs, so this lever stays off.

EXEC_FEE_BPS is the platform fee, charged on what we settle, never on what the provider charges: 2.5%, one cent minimum, capped at $5 per lease per UTC day (core/meter.py). Renters place on their own provider key and pay the provider directly; this is the only thing we take, and it is disclosed in the quote and the receipt before anything is placed.

REF_VAST / REF_RUNPOD referral slots ride the same seam.

Layout

providers/ one drop-in module per marketplace · core/ schema, rank, economics, stats · db.py SQLite (WAL) with provider_health honesty table · app.py FastAPI + scheduler + MCP mount · web/ the hand-written site (see DESIGN-DIRECTION.md).

Tests: venv/bin/python -m tests.test_pipeline

Generated pages

web/gpu/, web/vs/ and web/sitemap.xml are built artifacts — regenerate with venv/bin/python gen_gpu_pages.py (the deployment runs it hourly).

Fonts

Martian Mono ships in web/fonts/ (SIL OFL). The display serif (Erode, by Indian Type Foundry via Fontshare) is not redistributed here — its license doesn't allow it; fetch it from https://www.fontshare.com/fonts/erode into web/fonts/ as erode-400.woff2 / erode-600.woff2, or let the stack fall back to Georgia.

License

AGPL-3.0 — see LICENSE. Run it, fork it, learn from it; if you serve a modified version, share your changes the same way.

來源:README.md,提交 e0a7cbf

工具

25

search_offers

Search live GPU offers. gpu matches the model name (e.g. '4090', 'H100'). offer_class: on_demand | interruptible | reserved. country: ISO-2 (e.g. US), a comma list ('DE,NL'), or 'EU' for the 27 member states. min_gpu_count filters to multi-GPU configs (8 = full 8x nodes). region substring-matches the provider's region/datacenter label. Returns offers ranked cheapest-first by price_per_gpu_hr.

輸入參數gpulimitregioncountryprovidermin_vram_gboffer_classmin_gpu_countmin_reliabilitymax_price_per_gpu_hr

get_offer

Fetch one offer by its id (from search_offers).

輸入參數offer_id必填

market_stats

Live market snapshot: total offers, GPU models, idle-capacity share, per-provider freshness/health, cheapest price per model, current fee_bps.

無需輸入參數。

price_history

Price history for one GPU model (exact name from search_offers/market_stats, e.g. 'RTX 4090'). offer_class: on_demand | interruptible. Returns per-provider series of [ts, min_price_per_gpu_hr, median_price_per_gpu_hr, offer_count]; ranges past 3 days are bucketed (hourly, then 6-hourly past a week).

輸入參數gpuhoursgpu_modeloffer_class

idle_history

The idle-capacity index over time: share of listed GPU capacity that is interruptible (spot/bid) — idle hardware looking for work. Points are [ts, idle_share, idle_offers, total_offers].

輸入參數hours

best_value

Perf-per-dollar board: for each GPU model, best live price vs its FP16 tensor throughput (dense, vendor spec sheets) -> TFLOPS per dollar-hour. The answer to 'most compute for my budget' rather than 'cheapest card'. Models without a defensible public spec figure are listed as unrated.

輸入參數limitmin_vram_gboffer_class

provider_reliability

How dependable each provider's data feed has been for this station (poll success over the trailing window), plus the provider's own average machine reliability where reported. feed_score is about the DATA, not their hardware.

輸入參數days

price_position

Rent-now-or-wait context: where the current best price for one GPU model sits inside its own trailing 7/30-day range (percentile, 24h trend, verdict). Descriptive, not a forecast.

輸入參數gpugpu_modeloffer_class

spot_spread

On-demand vs interruptible spread: the live discount for idle capacity per model; pass gpu_model for its history too.

輸入參數hoursgpu_model

will_it_fit

Will this model fit, and what does a fitting machine cost right now? Deterministic VRAM arithmetic — weights (params x bytes/precision) + KV cache (2 x layers x kv_heads x head_dim x context x batch) + stated overhead — checked against the live book, cheapest fitting offers first. Pass a known model slug (llama-3.1-8b/70b/405b, mistral-7b, mixtral-8x7b, qwen2.5-7b/32b/72b, gemma-2-9b/27b) OR params_b for a stated Llama-like guess. precision: fp16/int8/int4. If you pass tokens_per_s (YOUR measured throughput — we never invent one), each offer gains usd_per_m_tokens. Every approximation is in the assumptions list, not fine print.

輸入參數batchlimitmodelcontextparams_bprecisionoffer_classtokens_per_s

true_cost_notes

The billing fine print behind the $/hr, verified per provider from their own published pages (source URL + date on every claim): billing granularity (per-second vs per-minute), whether storage bills while stopped, bandwidth/egress fees, and the commonly-missed gotchas (e.g. Vast bandwidth never appears in $/hr; RunPod stopped volume disk costs double). Providers we have not verified are listed with NO claims.

無需輸入參數。

register_account

Create a metering account: returns a bearer token (shown once, we keep only a hash). Pass it as account_token on rent calls to build a usage ledger you can read back with account_usage. Optional — renting works without one.

輸入參數label

account_usage

Your metered usage ledger: placements, destroys, estimated hours and USD, and the platform fee (2.5%, $0.01 min, $5.00 cap per lease per UTC day) priced at the rate live at event time. Distinct from fee_bps, the display markup.

輸入參數daysaccount_token必填

create_watch

Create a price watch (tripwire): fires when the best live fee-adjusted price per GPU-hour matching gpu (and optional offer_class) drops to or under max_price_per_gpu_hr. Checked every poll (~5 min). Returns the watch with its id — the id is the only key; poll it with watch_status, or give a public webhook_url to be POSTed on each trip. Watches re-arm when the price climbs 2% back over the line.

輸入參數gpu必填offer_classwebhook_urlmax_price_per_gpu_hr必填

watch_status

Current state of a watch: armed/tripped, last price seen, recent events, and the best matching offer right now.

輸入參數watch_id必填

delete_watch

Delete a watch by id.

輸入參數watch_id必填

create_limit_order

Place a standing LIMIT ORDER: when the best live fee-adjusted price for gpu (and optional offer_class) trades at or under max_price_per_gpu_hr, the station cuts a signed FILL TICKET naming the exact offer. The station never holds your provider key — the ticket is executed by whoever does: the open-source keyholder sidecar (/agents/#sidecar), your own agent long-polling POST /api/orders/{id}/ticket, or a human with curl. Returns the order with order_secret SHOWN ONCE — it authenticates ticket reads and the fill call for this order only and can rent nothing by itself. Triggers are checked on the poll cadence (~5-min bars, not tick-by-tick); orders expire in 30 days; a ticket lasts ~4 minutes then the order re-arms. standing=true makes it a STANDING order — compute that survives: after a live fill the sidecar keeps watching the machine, and when it is preempted or dies the order re-arms and refills from the CURRENT best offer, up to max_refills times with cooloff_seconds between death and refill. Honest limits: this re-provisions the MACHINE, not the WORK (GPU memory is not portable — resume from your own checkpoints); refills need your sidecar alive (it is both witness and executor); cancelling stops supervision but cannot destroy a running machine (the station holds no key). Watchdog: spend_alert_usd / age_alert_hours fire a "still yours?" webhook once per machine when the spend ESTIMATE (uptime x price; the provider's bill is authoritative) or age crosses your line — auto_destroy_budget_usd remains the hard stop.

輸入參數gpu必填standingmax_refillsmin_vram_gboffer_classwebhook_urlmin_gpu_countage_alert_hourscooloff_secondsspend_alert_usdmax_price_per_gpu_hr必填auto_destroy_budget_usd

limit_order_status

State of a limit order (armed/ticketed/filled/cancelled/expired), last price seen, recent events. Pass order_secret to also read the live fill ticket when one is cut.

輸入參數order_id必填order_secret

cancel_limit_order

Cancel a limit order. Requires the order_secret from create_limit_order.

輸入參數order_id必填order_secret必填

rent_x402

Rent a prepaid block of GPU time with a wallet and NO account, NO API key and no human, over x402 (HTTP 402 micropayments, USDC on Base). Call it with no arguments and you get the payment challenge: an x402 PaymentRequirementsResponse whose accepts[0].extra.x402_fee states the block price, the platform fee IN DOLLARS, that there are no refunds, and that you are charged only after the lease is live. Sign the EIP-3009 transferWithAuthorization it describes, then call again with x_payment set to the base64 PaymentPayload (the same value the HTTP rail sends as X-PAYMENT). `ssh_pubkey` is HOW YOU GET IN, and is required on the paying call: pass the public half of your ssh key (one line, the contents of id_ed25519.pub). It is written into the rented container's authorized_keys and nowhere else, and the receipt comes back with the host and port to connect to. A block nobody can enter is not sold. `lease_id` is minted by the challenge — send back the one you were given; it is the accrual key for the daily fee cap and this station refuses ids it did not mint or that belong to another payer. `originator` is an OPTIONAL opaque attribution label (<=64 chars, e.g. a handle or a reverse-DNS name) naming the client implementation that produced the fill. It is carried unmodified onto the receipt and onto the public ledger row, and it never affects the price, the fee, verification or settlement — the same block costs the same either way. Returns the receipt on success. Every fill is published at /api/receipts. Wire contract: docs/X402-FEE-0.1.md, frozen as x402-fee/0.1. Note for x402 MCP-transport clients: this tool takes the payment as an ARGUMENT rather than in _meta["x402/payment"]. The payload is byte-identical; only the channel differs, because a tool argument is the one place every MCP client can portably put it. The HTTP rail is fully transport-conformant.

輸入參數blockslease_idx_paymentoriginatorssh_pubkey

rent_offer

Place a rental on YOUR provider account (BYO key — it is used for this one call and never stored). Default is a DRY RUN returning exactly what would be executed; a live placement needs dry_run=false AND confirm=true. The offer is re-quoted live first and refused if its price exceeds max_price_per_gpu_hr. Executes on vast and runpod offers. Pass an idempotency_key so retries return the first receipt instead of renting twice. auto_destroy_budget_usd arms the budget guard: this station then holds your key in PROCESS MEMORY ONLY and destroys the rental when estimated spend reaches the cap (a station restart drops the guard — the receipt says so; poll rental_status as backstop). account_token (from register_account) attributes the rental to your usage ledger.

輸入參數imagelabelapi_key必填confirmdisk_gbdry_runoffer_id必填account_tokenidempotency_keymax_price_per_gpu_hr必填auto_destroy_budget_usd

rent_best

One-shot rent: search the live book with these filters and place on the best (cheapest) matching offer — 'cheapest H100 under $2/hr, go'. Same guarantees as rent_offer (dry-run default, live re-quote, your max_price_per_gpu_hr is absolute). If the best offer is already gone it walks to the next, at most 3, and reports what it skipped.

輸入參數gpuimagelabelapi_key必填confirmcountrydisk_gbdry_runprovidermin_vram_gboffer_classaccount_token另有 4 個

rental_status

Live state of an instance on your account: running/starting/stopped/ gone, uptime, price, estimated spend so far, and the budget guard's state if one is armed. Read-only; your key passes through and is never stored.

輸入參數api_key必填provider必填provider_instance_id必填

destroy_rental

Destroy an instance previously placed on your account (vast or runpod). Your key passes through and is never stored.

輸入參數api_key必填provider必填provider_instance_id必填

fill_limit_order

Execute a limit order's live fill ticket on YOUR provider key (used for this one call, never stored). Only works while the order is ticketed; the offer is re-quoted live and refused above the order's line. Idempotent per order — a retry returns the first receipt rather than renting a second machine. The order's auto_destroy_budget_usd (if set) arms the budget guard exactly as rent_offer does.

輸入參數imageapi_key必填confirmdisk_gbdry_runorder_id必填order_secret必填account_token

版本歷史

1
  1. v1.1.1最新Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Wick 整合