[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-huggingface-huggingface-spaces":3,"mdc--r8anyo-key":47,"related-org-huggingface-huggingface-spaces":3047,"related-repo-huggingface-huggingface-spaces":3216},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":36,"repoUrl":37,"updatedAt":38,"license":39,"forks":40,"topics":41,"repo":42,"sourceUrl":45,"mdContent":46},"huggingface-spaces","build and deploy applications on Hugging Face Spaces","Build, deploy, and maintain applications on Hugging Face Spaces — Gradio \u002F Docker \u002F Static SDKs, ZeroGPU and dedicated hardware, model loading, debugging, buckets, inference providers, community grants. Use whenever the user asks to create or host an app on Hugging Face, port code onto ZeroGPU, fix a Space that won't build or run, or otherwise work with `hf spaces …`, `@spaces.GPU`, Space README frontmatter, or the `spaces` Python package.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"huggingface","Hugging Face","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fhuggingface.png",[12,16,18,21,24,27,30,33],{"name":13,"slug":14,"type":15},"Gradio","gradio","tag",{"name":9,"slug":17,"type":15},"hugging-face",{"name":19,"slug":20,"type":15},"LLM","llm",{"name":22,"slug":23,"type":15},"Deployment","deployment",{"name":25,"slug":26,"type":15},"Hugging Face Spaces","hugging-face-spaces",{"name":28,"slug":29,"type":15},"Docker","docker",{"name":31,"slug":32,"type":15},"AI Infrastructure","ai-infrastructure",{"name":34,"slug":35,"type":15},"Debugging","debugging",10861,"https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fskills","2026-07-27T06:10:02.33287",null,721,[],{"repoUrl":37,"stars":36,"forks":40,"topics":43,"description":44},[],"Give your agents the power of the Hugging Face ecosystem","https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fhuggingface-spaces","---\nname: huggingface-spaces\ndescription: Build, deploy, and maintain applications on Hugging Face Spaces — Gradio \u002F Docker \u002F Static SDKs, ZeroGPU and dedicated hardware, model loading, debugging, buckets, inference providers, community grants. Use whenever the user asks to create or host an app on Hugging Face, port code onto ZeroGPU, fix a Space that won't build or run, or otherwise work with `hf spaces …`, `@spaces.GPU`, Space README frontmatter, or the `spaces` Python package.\n---\n\n# Hugging Face Spaces\n\nHugging Face Spaces host machine-learning applications. There are 1M+ today; each Space is a git repo. This skill covers creating, building, debugging, and maintaining them.\n\n## 0. Getting ready\n\nBefore anything else:\n\n1. Check the `hf` CLI is installed: `which hf`. If not, `pip install -U huggingface_hub`.\n2. Check the user is logged in: `hf auth whoami`. If not, run `hf auth login` — it prints a URL and a one-time code; ask the user to open the URL and enter the code, then login completes automatically (OAuth, no token needed). Alternatively, pass a write-scoped token from https:\u002F\u002Fhuggingface.co\u002Fsettings\u002Ftokens with `--token`.\n3. Note `whoami`'s `canPay` and `isPro` flags — they gate hardware choices below.\n\nThe `hf-cli` skill teaches an agent every `hf` command and is the recommended companion to this one. Install it with `hf skills add hf-cli` (add `--claude --global` to install for Claude Code as well, user-level).\n\n## 1. What a Space is\n\nA Space is a git repo with three possible SDKs:\n\n- **Gradio** — most Spaces. Python, fast iteration, supports ZeroGPU.\n- **Docker** — arbitrary container. Use when you need a non-Python stack or a pre-built template (Streamlit, Argilla, Shiny, etc. — full list at https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fhub\u002Fspaces-sdks-docker). Does **not** support ZeroGPU.\n- **Static** — plain HTML, or a React\u002FSvelte\u002FVue project built at deploy time. Use for in-browser ML (transformers.js \u002F WebGPU \u002F WebAssembly \u002F onnxruntime-web), project pages, interactive reports, or Spaces that orchestrate other Spaces. No hardware needed.\n\n### Hardware tiers\n\nFree, no creator cost: **`cpu-basic`** and **`zero-a10g`** (ZeroGPU). Static Spaces are also free and don't need hardware.\n\n**`cpu-basic`** — 2 vCPU \u002F 16 GB. For data viz, API-proxy Spaces, small CPU-bound models.\n\n**ZeroGPU (`zero-a10g`)** — dynamic, per-request GPU allocation on NVIDIA RTX PRO 6000 Blackwell (sm_120). Two sizes: `large` (half MIG, 48 GB, 1× quota) and `xlarge` (full, 96 GB, 2× quota). Free for the Space creator; Space visitors consume their own daily quota (~5 min free \u002F 40 min Pro \u002F 60 min Enterprise). **Gradio-only**, **PyTorch-first**. Requires the creator to be on a PRO \u002F Team \u002F Enterprise plan.\n\n**Dedicated GPU** (T4, L4, A10G, L40S, A100, H200) — billed to the Space creator by the hour. List + pricing: `hf spaces hardware`. Only the creator can attach these, and only if `canPay=True`. Use when ZeroGPU genuinely doesn't fit — non-PyTorch main model with heavy init, very-large-model long-context inference, etc.\n\nIf a non-PRO user has a use case that wants ZeroGPU, you can still build it: create a `cpu-basic` Space, code the app for ZeroGPU, push, then request a community grant. See [`references\u002Fgrants.md`](references\u002Fgrants.md).\n\nFor the authoritative reference: https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fhub\u002Fspaces-overview\n\n## 2. Look for an existing demo first\n\nBefore deciding how to build anything, search for prior art:\n\n```bash\nhf spaces search \"\u003Cmodel name or task>\" --sdk gradio --limit 10\n```\n\nIf someone has built a similar Space, read its `app.py` and `requirements.txt` — that gives you the working pattern. Saves a lot of blind iteration. Mention to the user what you found before committing to an approach.\n\n## 3. Decide SDK and hardware\n\nFollow the user's explicit request first. If they were vague:\n\n- **Default for a public ML demo**: Gradio + ZeroGPU. Use this unless something below applies.\n- **The model's only inference path is non-PyTorch** (ONNX \u002F TF \u002F JAX \u002F vLLM as the MAIN model, with heavy init): dedicated GPU.\n  - But: marginal non-torch tools (a small ONNX preprocessor, a TF utility) inside a torch-main pipeline are fine on ZeroGPU. The hijack only patches torch; init the non-torch lib inside `@spaces.GPU` and pay the short per-call init cost.\n- **Tiny \u002F CPU-bound model, or API-proxy Space**: `cpu-basic` (`hardware`-free isn't applicable to Gradio).\n- **Browser-side ML or project page**: Static.\n- **Container with non-Python stack**: Docker.\n\n### Sourcing the model\n\n- **GitHub repo** — clone locally to read structure. If it already has a Gradio demo, the minimal viable path is to adapt it onto ZeroGPU (see [`references\u002Fzerogpu.md`](references\u002Fzerogpu.md)). Otherwise: read the README + inference code, prefer the PyTorch path, estimate VRAM (bf16 ≈ `params_B × 2` GB; 48 GB fits ≤24B params at bf16, or much larger with quantization — see [`references\u002Fzerogpu.md`](references\u002Fzerogpu.md) for quantization on ZeroGPU).\n- **HF model repo** — read its README, follow any linked GitHub.\n- **Paper \u002F blog post** — look for an official or unofficial implementation. Don't reimplement unless trivial or the user explicitly asks.\n- **Vague request** — search Spaces first; surface results.\n\nIf the model genuinely won't fit, check **Inference Providers** as an alternative: see [`references\u002Finference-providers.md`](references\u002Finference-providers.md). This avoids hosting the model at all.\n\n## 4. Create the Space\n\n```bash\nhf repos create \u003Cnamespace>\u002F\u003Cname> --type space --space-sdk \u003Cgradio|docker|static> \\\n    [--flavor zero-a10g|cpu-basic|\u003Cpaid-flavor>] \\\n    [--secrets KEY=val] [--env KEY=val] \\\n    --public|--private|--protected \\\n    --exist-ok\n```\n\n- `--space-sdk` is required.\n- `--flavor` selects hardware. `zero-a10g` is the (legacy) identifier for ZeroGPU. Omit for `cpu-basic`. Run `hf spaces hardware` for the full paid list and pricing.\n- Visibility: `--public` (anyone can view), `--private` (only you), `--protected` (app is reachable but git repo \u002F Files tab is private).\n- `--secrets KEY=val` becomes an environment variable inside the Space and is **not** visible to visitors. Use for API keys, gated-repo tokens (`HF_TOKEN=hf_…`), etc. Can also be set later via `hf spaces secrets set \u003Cid> KEY=val`.\n- `--env KEY=val` is **visible to visitors** — use only for non-sensitive config (`GRADIO_SSR_MODE=false`, `PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True`, etc.).\n\n> Note: `hardware:` in the README YAML is silently ignored — hardware is only set via `--flavor` at creation, or later via `hf spaces settings \u003Cid> --hardware \u003Cname>`.\n\n## 5. Build the app\n\nThe Space now exists at `https:\u002F\u002Fhuggingface.co\u002Fspaces\u002F\u003Cnamespace>\u002F\u003Cname>` but is empty.\n\n### README.md frontmatter\n\nAlways required:\n\n```yaml\n---\ntitle: ...\nemoji: 🚀                # pick something representative\ncolorFrom: blue          # red|yellow|green|blue|indigo|purple|pink|gray (only these)\ncolorTo: indigo\nsdk: gradio              # gradio | docker | static\nsdk_version: 6.15.1      # latest stable unless you have a reason*\napp_file: app.py         # gradio only (docker \u002F static use Dockerfile \u002F index.html)\nshort_description: ...   # ≤ 60 chars (server rejects longer)\npython_version: \"3.12\"   # ZeroGPU officially supports 3.10.13 and 3.12.12\nstartup_duration_timeout: 30m   # default; bump to 1h for big LLMs \u002F heavy downloads\n---\n```\n\n\\* Default to the current latest stable, and **look up what that is** (`pip index versions gradio`, or the version a freshly-created Space defaults to) — the number above is a placeholder that goes stale, don't reuse it. Only pin older when the latest genuinely doesn't work for this Space: a custom component pins it, or you're adapting an existing demo and don't want to rewrite for 5.x→6.x breaking changes. If you need a 5.x, pick `5.50.0` (latest of the series; still supports custom components).\n\nAll frontmatter options: https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fhub\u002Fspaces-config-reference\n\n### Minimal ZeroGPU Gradio app\n\n```python\nimport spaces           # MUST come before torch \u002F diffusers \u002F transformers\nimport torch\nimport gradio as gr\nfrom diffusers import DiffusionPipeline\n\npipe = DiffusionPipeline.from_pretrained(\"\u003Crepo>\", torch_dtype=torch.bfloat16).to(\"cuda\")\n\n@spaces.GPU(duration=60)\ndef generate(prompt: str):\n    \"\"\"Generate an image from a text prompt.\"\"\"   # docstring → API \u002F MCP tool description\n    return pipe(prompt).images[0]\n\ngr.Interface(fn=generate, inputs=gr.Text(), outputs=gr.Image()).launch(mcp_server=True)\n```\n\nThree rules — full treatment in [`references\u002Fzerogpu.md`](references\u002Fzerogpu.md):\n\n1. **`import spaces` before torch \u002F any CUDA-touching import.** It monkey-patches `torch.cuda.*`; once CUDA is initialized in the main process, it's too late.\n2. **Load the model at module scope, `.to(\"cuda\")` eagerly.** ZeroGPU intercepts the call, packs weights to disk, and streams them into VRAM on the first `@spaces.GPU` entry. Lazy loading inside the decorator costs every user.\n3. **Decorate the function Gradio binds.** Estimate `duration` to the realistic worst case (smaller = higher queue priority and tighter quota check). For input-dependent runtime, pass a callable.\n\n### Examples, docstrings, and MCP\n\n- **Add `gr.Examples` whenever it makes sense** (the app takes input and representative inputs exist) — prefer the model\u002Frepo's own official examples. Keep example rows to the few inputs a user actually varies (prompt, image) and give the handler defaults for the rest (steps, seed, guidance) so a row is `[\"a prompt\"]`, not a wall of knobs. Use `cache_examples=True, cache_mode=\"lazy\"`. See [`references\u002Fgradio.md`](references\u002Fgradio.md).\n- **Give every API-triggered function a docstring and type hints.** Each Gradio event handler is exposed over the API; the docstring + signature are what a caller — and the MCP tool schema — sees.\n- **Launch with `demo.launch(mcp_server=True)`** (Gradio 5+) so the Space doubles as an MCP server: each API function becomes an MCP tool described by its docstring and hints.\n\n### requirements.txt\n\nShort version:\n\n- **Do NOT list**: `gradio`, `spaces`, `huggingface_hub` (preinstalled and platform-managed; pinning them causes resolution failures or silently breaks the ZeroGPU runtime).\n- **Do list if you use them**: `torchvision`, `torchaudio` (not preinstalled), plus everything else (`diffusers`, `transformers`, `accelerate`, `sentencepiece`, …).\n- ZeroGPU only accepts torch `2.8.0`, `2.9.1`, `2.10.0`, `2.11.0`. Default to leaving torch unpinned (the runtime preinstalls the latest). Only pin when a dep forces it.\n- For prebuilt CUDA-extension wheels (`flash_attn`, `xformers`, `pytorch3d`, `nvdiffrast`, `diff_gaussian_rasterization`, `torchmcubes`): use the prebuilt Blackwell wheels at `https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fmultimodalart\u002Fzerogpu-blackwell-wheels\u002Ftree\u002Fmain\u002Fwheels`. Full mapping + caveats in [`references\u002Frequirements.md`](references\u002Frequirements.md).\n\n### Per-SDK depth\n\n- **Gradio patterns** (themes, `gr.Examples`, streaming, custom HTML components, `gr.Server`): [`references\u002Fgradio.md`](references\u002Fgradio.md).\n- **Docker**: https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fhub\u002Fspaces-sdks-docker. Examples: `hf spaces list --filter docker`.\n- **Static**: https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fhub\u002Fspaces-sdks-static. For built SPAs, set `app_build_command: npm run build` and `app_file: dist\u002Findex.html` in frontmatter.\n- **ZeroGPU specifics** (decorator semantics, sizing, AoTI, generators, concurrency, pickle \u002F `gr.State` across the worker boundary): [`references\u002Fzerogpu.md`](references\u002Fzerogpu.md) — read this whenever the Space targets ZeroGPU.\n\n\n## 6. Iterate on the Space, not locally\n\nTry to build a release candidate from the user quest locally and push it — then use the live URL as your test loop. The Space environment is the only one that matters; do not try to test locally. `python3 -m py_compile app.py` is the maximum local check worth doing before pushing.\n\nPush files with `hf upload \u003Cnamespace>\u002F\u003Cname> . --repo-type space`. **`--repo-type space` is required** — `hf upload` defaults to a *model* repo and will otherwise upload to (and silently create) a model repo of the same name. Add `--exclude \"**\u002F__pycache__\u002F**\"` so local bytecode caches aren't committed into the Space.\n\nOnce pushed, pick the cheapest update mechanism for each change — hot-reload for pure Python edits, `hf upload` for code-only files hot-reload can't touch, full rebuild only when `requirements.txt` \u002F `Dockerfile` \u002F README frontmatter actually changed. Full ladder + footguns (hot-reload poisoning factory reboot, runtime.sha lag, etc.) in [`references\u002Fdebugging.md`](references\u002Fdebugging.md).\n\n## 7. Verify\n\nDon't trust `RUNNING` alone — the app can be running but broken. Four steps, in order:\n\n**A. Alive?** Stage + hardware:\n```bash\nhf spaces info \u003Cns>\u002F\u003Cname> --expand runtime\n```\n\n**B. Logs clean post-boot?** Read the run log to confirm startup finished without warnings or silent fallbacks:\n```bash\nhf spaces logs \u003Cns>\u002F\u003Cname> --tail 200\n```\nLook for model-load completion, no import warnings, no \"falling back to CPU\" \u002F dtype downgrade messages, no `RUNNING` masking a half-broken app.\n\n**C. API actually responds.** With logs still tailing in another terminal (`hf spaces logs \u003Cns>\u002F\u003Cname> --follow`), call the endpoint:\n```python\nfrom gradio_client import Client, handle_file\nimport os\nc = Client(\"\u003Cns>\u002F\u003Cname>\", token=os.environ[\"HF_TOKEN\"], httpx_kwargs={\"timeout\": 600})\nprint(c.view_api())                    # discover endpoints — don't guess\nresult = c.predict(..., api_name=\"\u002Fgenerate\")\n```\n\n**D. Sniff output AND logs.** HTTP 200 ≠ correct output. Check both:\n```python\nhead = open(result, \"rb\").read(16)\n# glTF \u002F \\x89PNG \u002F RIFF…WEBP \u002F RIFF…WAVE \u002F [4:8]==b\"ftyp\" → png\u002Fjpg\u002Fwebp\u002Fwav\u002Fmp4\n```\nAnd look at the run log emitted during the call — silent fallbacks (model snapping to a different size, missing optional dep, dtype downgrade) only show up there.\n\nFull smoke-test patterns (streaming endpoints, OAuth-gated Spaces, `gr.Server` custom routes): [`references\u002Fdebugging.md`](references\u002Fdebugging.md).\n\n## 8. Permanent storage (buckets)\n\nSpaces are stateless — `\u002Fdata` is wiped on restart. If the Space needs to persist user uploads, generations, logs, or interact with a long-lived store, mount a **bucket**:\n\n```bash\nhf buckets create \u003Cns>\u002F\u003Cbucket-name>                                          # --private optional\nhf spaces volumes set \u003Cns>\u002F\u003Cspace> -v hf:\u002F\u002Fbuckets\u002F\u003Cns>\u002F\u003Cbucket-name>:\u002Fdata   # read-write at \u002Fdata\n```\n\nBuckets are paid storage; check `canPay` and confirm with the user. Full patterns (read-fast \u002F write-durable, public bucket URLs, model-cache anti-pattern): [`references\u002Fbuckets.md`](references\u002Fbuckets.md).\n\n## 9. When things break\n\nOrder of operations:\n\n1. Read the logs: `hf spaces logs \u003Cid> --build --follow` (build error) or `hf spaces logs \u003Cid> --follow` (runtime error). Find the **first** error, not the last.\n2. Grep [`references\u002Fknown-errors.md`](references\u002Fknown-errors.md) for the error string. Check if this is a known issue before trying your own fix — most common ZeroGPU \u002F Gradio \u002F dependency errors have a 1–2 line fix there.\n3. Iterate using the cheapest rung from [`references\u002Fdebugging.md`](references\u002Fdebugging.md). The vast majority of issues resolve with log-reading + smoke-test loops; interactive dev mode + SSH is a heavy-hammer last resort.\n\nIf you solve an error that wasn't in the known-errors list, suggest the user PR it back to this skill so future runs benefit.\n\n---\n\n## Reference index\n\n| When to read | File |\n|---|---|\n| **How ZeroGPU works** + correct patterns (decorator, sizing, pickle, generators, real-time, AoTI) | [`references\u002Fzerogpu.md`](references\u002Fzerogpu.md) |\n| **Iterate + debug**: logs, rung ladder, smoke testing (and dev mode + SSH as a last resort) | [`references\u002Fdebugging.md`](references\u002Fdebugging.md) |\n| **Error-string lookup** — the single place for all error symptoms (Spaces, ZeroGPU, Gradio, deps) | [`references\u002Fknown-errors.md`](references\u002Fknown-errors.md) |\n| Pinning deps, picking wheels, torch-family alignment | [`references\u002Frequirements.md`](references\u002Frequirements.md) |\n| `gr.Examples` (add when it makes sense), themes, custom HTML components, `gr.Server`, MCP server (`mcp_server=True`) | [`references\u002Fgradio.md`](references\u002Fgradio.md) |\n| Persistent storage, public bucket URLs | [`references\u002Fbuckets.md`](references\u002Fbuckets.md) |\n| Community grant requests (non-PRO needing ZeroGPU) | [`references\u002Fgrants.md`](references\u002Fgrants.md) |\n| Provider proxy (zero-VRAM big LLM via Cerebras \u002F Fireworks \u002F Together \u002F etc.) | [`references\u002Finference-providers.md`](references\u002Finference-providers.md) |\n| **3D Spaces: generation, CUDA extensions, output formats, and model recipes (incl. gaussian splatting)** | [`references\u002F3d-generation.md`](references\u002F3d-generation.md) |\n",{"data":48,"body":49},{"name":4,"description":6},{"type":50,"children":51},"root",[52,59,65,72,77,179,215,221,226,274,281,307,320,367,393,415,426,432,437,507,527,533,538,622,628,700,723,729,979,1117,1148,1154,1167,1173,1178,1429,1456,1467,1473,1586,1600,1670,1676,1749,1754,1759,1945,1951,2069,2075,2088,2138,2175,2181,2194,2204,2275,2285,2354,2366,2384,2431,2441,2464,2469,2490,2496,2515,2694,2716,2722,2727,2789,2794,2798,2804,3041],{"type":53,"tag":54,"props":55,"children":56},"element","h1",{"id":26},[57],{"type":58,"value":25},"text",{"type":53,"tag":60,"props":61,"children":62},"p",{},[63],{"type":58,"value":64},"Hugging Face Spaces host machine-learning applications. There are 1M+ today; each Space is a git repo. This skill covers creating, building, debugging, and maintaining them.",{"type":53,"tag":66,"props":67,"children":69},"h2",{"id":68},"_0-getting-ready",[70],{"type":58,"value":71},"0. Getting ready",{"type":53,"tag":60,"props":73,"children":74},{},[75],{"type":58,"value":76},"Before anything else:",{"type":53,"tag":78,"props":79,"children":80},"ol",{},[81,112,150],{"type":53,"tag":82,"props":83,"children":84},"li",{},[85,87,94,96,102,104,110],{"type":58,"value":86},"Check the ",{"type":53,"tag":88,"props":89,"children":91},"code",{"className":90},[],[92],{"type":58,"value":93},"hf",{"type":58,"value":95}," CLI is installed: ",{"type":53,"tag":88,"props":97,"children":99},{"className":98},[],[100],{"type":58,"value":101},"which hf",{"type":58,"value":103},". If not, ",{"type":53,"tag":88,"props":105,"children":107},{"className":106},[],[108],{"type":58,"value":109},"pip install -U huggingface_hub",{"type":58,"value":111},".",{"type":53,"tag":82,"props":113,"children":114},{},[115,117,123,125,131,133,141,143,149],{"type":58,"value":116},"Check the user is logged in: ",{"type":53,"tag":88,"props":118,"children":120},{"className":119},[],[121],{"type":58,"value":122},"hf auth whoami",{"type":58,"value":124},". If not, run ",{"type":53,"tag":88,"props":126,"children":128},{"className":127},[],[129],{"type":58,"value":130},"hf auth login",{"type":58,"value":132}," — it prints a URL and a one-time code; ask the user to open the URL and enter the code, then login completes automatically (OAuth, no token needed). Alternatively, pass a write-scoped token from ",{"type":53,"tag":134,"props":135,"children":139},"a",{"href":136,"rel":137},"https:\u002F\u002Fhuggingface.co\u002Fsettings\u002Ftokens",[138],"nofollow",[140],{"type":58,"value":136},{"type":58,"value":142}," with ",{"type":53,"tag":88,"props":144,"children":146},{"className":145},[],[147],{"type":58,"value":148},"--token",{"type":58,"value":111},{"type":53,"tag":82,"props":151,"children":152},{},[153,155,161,163,169,171,177],{"type":58,"value":154},"Note ",{"type":53,"tag":88,"props":156,"children":158},{"className":157},[],[159],{"type":58,"value":160},"whoami",{"type":58,"value":162},"'s ",{"type":53,"tag":88,"props":164,"children":166},{"className":165},[],[167],{"type":58,"value":168},"canPay",{"type":58,"value":170}," and ",{"type":53,"tag":88,"props":172,"children":174},{"className":173},[],[175],{"type":58,"value":176},"isPro",{"type":58,"value":178}," flags — they gate hardware choices below.",{"type":53,"tag":60,"props":180,"children":181},{},[182,184,190,192,197,199,205,207,213],{"type":58,"value":183},"The ",{"type":53,"tag":88,"props":185,"children":187},{"className":186},[],[188],{"type":58,"value":189},"hf-cli",{"type":58,"value":191}," skill teaches an agent every ",{"type":53,"tag":88,"props":193,"children":195},{"className":194},[],[196],{"type":58,"value":93},{"type":58,"value":198}," command and is the recommended companion to this one. Install it with ",{"type":53,"tag":88,"props":200,"children":202},{"className":201},[],[203],{"type":58,"value":204},"hf skills add hf-cli",{"type":58,"value":206}," (add ",{"type":53,"tag":88,"props":208,"children":210},{"className":209},[],[211],{"type":58,"value":212},"--claude --global",{"type":58,"value":214}," to install for Claude Code as well, user-level).",{"type":53,"tag":66,"props":216,"children":218},{"id":217},"_1-what-a-space-is",[219],{"type":58,"value":220},"1. What a Space is",{"type":53,"tag":60,"props":222,"children":223},{},[224],{"type":58,"value":225},"A Space is a git repo with three possible SDKs:",{"type":53,"tag":227,"props":228,"children":229},"ul",{},[230,240,264],{"type":53,"tag":82,"props":231,"children":232},{},[233,238],{"type":53,"tag":234,"props":235,"children":236},"strong",{},[237],{"type":58,"value":13},{"type":58,"value":239}," — most Spaces. Python, fast iteration, supports ZeroGPU.",{"type":53,"tag":82,"props":241,"children":242},{},[243,247,249,255,257,262],{"type":53,"tag":234,"props":244,"children":245},{},[246],{"type":58,"value":28},{"type":58,"value":248}," — arbitrary container. Use when you need a non-Python stack or a pre-built template (Streamlit, Argilla, Shiny, etc. — full list at ",{"type":53,"tag":134,"props":250,"children":253},{"href":251,"rel":252},"https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fhub\u002Fspaces-sdks-docker",[138],[254],{"type":58,"value":251},{"type":58,"value":256},"). Does ",{"type":53,"tag":234,"props":258,"children":259},{},[260],{"type":58,"value":261},"not",{"type":58,"value":263}," support ZeroGPU.",{"type":53,"tag":82,"props":265,"children":266},{},[267,272],{"type":53,"tag":234,"props":268,"children":269},{},[270],{"type":58,"value":271},"Static",{"type":58,"value":273}," — plain HTML, or a React\u002FSvelte\u002FVue project built at deploy time. Use for in-browser ML (transformers.js \u002F WebGPU \u002F WebAssembly \u002F onnxruntime-web), project pages, interactive reports, or Spaces that orchestrate other Spaces. No hardware needed.",{"type":53,"tag":275,"props":276,"children":278},"h3",{"id":277},"hardware-tiers",[279],{"type":58,"value":280},"Hardware tiers",{"type":53,"tag":60,"props":282,"children":283},{},[284,286,295,296,305],{"type":58,"value":285},"Free, no creator cost: ",{"type":53,"tag":234,"props":287,"children":288},{},[289],{"type":53,"tag":88,"props":290,"children":292},{"className":291},[],[293],{"type":58,"value":294},"cpu-basic",{"type":58,"value":170},{"type":53,"tag":234,"props":297,"children":298},{},[299],{"type":53,"tag":88,"props":300,"children":302},{"className":301},[],[303],{"type":58,"value":304},"zero-a10g",{"type":58,"value":306}," (ZeroGPU). Static Spaces are also free and don't need hardware.",{"type":53,"tag":60,"props":308,"children":309},{},[310,318],{"type":53,"tag":234,"props":311,"children":312},{},[313],{"type":53,"tag":88,"props":314,"children":316},{"className":315},[],[317],{"type":58,"value":294},{"type":58,"value":319}," — 2 vCPU \u002F 16 GB. For data viz, API-proxy Spaces, small CPU-bound models.",{"type":53,"tag":60,"props":321,"children":322},{},[323,335,337,343,345,351,353,358,360,365],{"type":53,"tag":234,"props":324,"children":325},{},[326,328,333],{"type":58,"value":327},"ZeroGPU (",{"type":53,"tag":88,"props":329,"children":331},{"className":330},[],[332],{"type":58,"value":304},{"type":58,"value":334},")",{"type":58,"value":336}," — dynamic, per-request GPU allocation on NVIDIA RTX PRO 6000 Blackwell (sm_120). Two sizes: ",{"type":53,"tag":88,"props":338,"children":340},{"className":339},[],[341],{"type":58,"value":342},"large",{"type":58,"value":344}," (half MIG, 48 GB, 1× quota) and ",{"type":53,"tag":88,"props":346,"children":348},{"className":347},[],[349],{"type":58,"value":350},"xlarge",{"type":58,"value":352}," (full, 96 GB, 2× quota). Free for the Space creator; Space visitors consume their own daily quota (~5 min free \u002F 40 min Pro \u002F 60 min Enterprise). ",{"type":53,"tag":234,"props":354,"children":355},{},[356],{"type":58,"value":357},"Gradio-only",{"type":58,"value":359},", ",{"type":53,"tag":234,"props":361,"children":362},{},[363],{"type":58,"value":364},"PyTorch-first",{"type":58,"value":366},". Requires the creator to be on a PRO \u002F Team \u002F Enterprise plan.",{"type":53,"tag":60,"props":368,"children":369},{},[370,375,377,383,385,391],{"type":53,"tag":234,"props":371,"children":372},{},[373],{"type":58,"value":374},"Dedicated GPU",{"type":58,"value":376}," (T4, L4, A10G, L40S, A100, H200) — billed to the Space creator by the hour. List + pricing: ",{"type":53,"tag":88,"props":378,"children":380},{"className":379},[],[381],{"type":58,"value":382},"hf spaces hardware",{"type":58,"value":384},". Only the creator can attach these, and only if ",{"type":53,"tag":88,"props":386,"children":388},{"className":387},[],[389],{"type":58,"value":390},"canPay=True",{"type":58,"value":392},". Use when ZeroGPU genuinely doesn't fit — non-PyTorch main model with heavy init, very-large-model long-context inference, etc.",{"type":53,"tag":60,"props":394,"children":395},{},[396,398,403,405,414],{"type":58,"value":397},"If a non-PRO user has a use case that wants ZeroGPU, you can still build it: create a ",{"type":53,"tag":88,"props":399,"children":401},{"className":400},[],[402],{"type":58,"value":294},{"type":58,"value":404}," Space, code the app for ZeroGPU, push, then request a community grant. See ",{"type":53,"tag":134,"props":406,"children":408},{"href":407},"references\u002Fgrants.md",[409],{"type":53,"tag":88,"props":410,"children":412},{"className":411},[],[413],{"type":58,"value":407},{"type":58,"value":111},{"type":53,"tag":60,"props":416,"children":417},{},[418,420],{"type":58,"value":419},"For the authoritative reference: ",{"type":53,"tag":134,"props":421,"children":424},{"href":422,"rel":423},"https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fhub\u002Fspaces-overview",[138],[425],{"type":58,"value":422},{"type":53,"tag":66,"props":427,"children":429},{"id":428},"_2-look-for-an-existing-demo-first",[430],{"type":58,"value":431},"2. Look for an existing demo first",{"type":53,"tag":60,"props":433,"children":434},{},[435],{"type":58,"value":436},"Before deciding how to build anything, search for prior art:",{"type":53,"tag":438,"props":439,"children":444},"pre",{"className":440,"code":441,"language":442,"meta":443,"style":443},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","hf spaces search \"\u003Cmodel name or task>\" --sdk gradio --limit 10\n","bash","",[445],{"type":53,"tag":88,"props":446,"children":447},{"__ignoreMap":443},[448],{"type":53,"tag":449,"props":450,"children":453},"span",{"class":451,"line":452},"line",1,[454,459,465,470,476,481,486,491,496,501],{"type":53,"tag":449,"props":455,"children":457},{"style":456},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[458],{"type":58,"value":93},{"type":53,"tag":449,"props":460,"children":462},{"style":461},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[463],{"type":58,"value":464}," spaces",{"type":53,"tag":449,"props":466,"children":467},{"style":461},[468],{"type":58,"value":469}," search",{"type":53,"tag":449,"props":471,"children":473},{"style":472},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[474],{"type":58,"value":475}," \"",{"type":53,"tag":449,"props":477,"children":478},{"style":461},[479],{"type":58,"value":480},"\u003Cmodel name or task>",{"type":53,"tag":449,"props":482,"children":483},{"style":472},[484],{"type":58,"value":485},"\"",{"type":53,"tag":449,"props":487,"children":488},{"style":461},[489],{"type":58,"value":490}," --sdk",{"type":53,"tag":449,"props":492,"children":493},{"style":461},[494],{"type":58,"value":495}," gradio",{"type":53,"tag":449,"props":497,"children":498},{"style":461},[499],{"type":58,"value":500}," --limit",{"type":53,"tag":449,"props":502,"children":504},{"style":503},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[505],{"type":58,"value":506}," 10\n",{"type":53,"tag":60,"props":508,"children":509},{},[510,512,518,519,525],{"type":58,"value":511},"If someone has built a similar Space, read its ",{"type":53,"tag":88,"props":513,"children":515},{"className":514},[],[516],{"type":58,"value":517},"app.py",{"type":58,"value":170},{"type":53,"tag":88,"props":520,"children":522},{"className":521},[],[523],{"type":58,"value":524},"requirements.txt",{"type":58,"value":526}," — that gives you the working pattern. Saves a lot of blind iteration. Mention to the user what you found before committing to an approach.",{"type":53,"tag":66,"props":528,"children":530},{"id":529},"_3-decide-sdk-and-hardware",[531],{"type":58,"value":532},"3. Decide SDK and hardware",{"type":53,"tag":60,"props":534,"children":535},{},[536],{"type":58,"value":537},"Follow the user's explicit request first. If they were vague:",{"type":53,"tag":227,"props":539,"children":540},{},[541,551,577,602,612],{"type":53,"tag":82,"props":542,"children":543},{},[544,549],{"type":53,"tag":234,"props":545,"children":546},{},[547],{"type":58,"value":548},"Default for a public ML demo",{"type":58,"value":550},": Gradio + ZeroGPU. Use this unless something below applies.",{"type":53,"tag":82,"props":552,"children":553},{},[554,559,561],{"type":53,"tag":234,"props":555,"children":556},{},[557],{"type":58,"value":558},"The model's only inference path is non-PyTorch",{"type":58,"value":560}," (ONNX \u002F TF \u002F JAX \u002F vLLM as the MAIN model, with heavy init): dedicated GPU.\n",{"type":53,"tag":227,"props":562,"children":563},{},[564],{"type":53,"tag":82,"props":565,"children":566},{},[567,569,575],{"type":58,"value":568},"But: marginal non-torch tools (a small ONNX preprocessor, a TF utility) inside a torch-main pipeline are fine on ZeroGPU. The hijack only patches torch; init the non-torch lib inside ",{"type":53,"tag":88,"props":570,"children":572},{"className":571},[],[573],{"type":58,"value":574},"@spaces.GPU",{"type":58,"value":576}," and pay the short per-call init cost.",{"type":53,"tag":82,"props":578,"children":579},{},[580,585,587,592,594,600],{"type":53,"tag":234,"props":581,"children":582},{},[583],{"type":58,"value":584},"Tiny \u002F CPU-bound model, or API-proxy Space",{"type":58,"value":586},": ",{"type":53,"tag":88,"props":588,"children":590},{"className":589},[],[591],{"type":58,"value":294},{"type":58,"value":593}," (",{"type":53,"tag":88,"props":595,"children":597},{"className":596},[],[598],{"type":58,"value":599},"hardware",{"type":58,"value":601},"-free isn't applicable to Gradio).",{"type":53,"tag":82,"props":603,"children":604},{},[605,610],{"type":53,"tag":234,"props":606,"children":607},{},[608],{"type":58,"value":609},"Browser-side ML or project page",{"type":58,"value":611},": Static.",{"type":53,"tag":82,"props":613,"children":614},{},[615,620],{"type":53,"tag":234,"props":616,"children":617},{},[618],{"type":58,"value":619},"Container with non-Python stack",{"type":58,"value":621},": Docker.",{"type":53,"tag":275,"props":623,"children":625},{"id":624},"sourcing-the-model",[626],{"type":58,"value":627},"Sourcing the model",{"type":53,"tag":227,"props":629,"children":630},{},[631,670,680,690],{"type":53,"tag":82,"props":632,"children":633},{},[634,639,641,650,652,658,660,668],{"type":53,"tag":234,"props":635,"children":636},{},[637],{"type":58,"value":638},"GitHub repo",{"type":58,"value":640}," — clone locally to read structure. If it already has a Gradio demo, the minimal viable path is to adapt it onto ZeroGPU (see ",{"type":53,"tag":134,"props":642,"children":644},{"href":643},"references\u002Fzerogpu.md",[645],{"type":53,"tag":88,"props":646,"children":648},{"className":647},[],[649],{"type":58,"value":643},{"type":58,"value":651},"). Otherwise: read the README + inference code, prefer the PyTorch path, estimate VRAM (bf16 ≈ ",{"type":53,"tag":88,"props":653,"children":655},{"className":654},[],[656],{"type":58,"value":657},"params_B × 2",{"type":58,"value":659}," GB; 48 GB fits ≤24B params at bf16, or much larger with quantization — see ",{"type":53,"tag":134,"props":661,"children":662},{"href":643},[663],{"type":53,"tag":88,"props":664,"children":666},{"className":665},[],[667],{"type":58,"value":643},{"type":58,"value":669}," for quantization on ZeroGPU).",{"type":53,"tag":82,"props":671,"children":672},{},[673,678],{"type":53,"tag":234,"props":674,"children":675},{},[676],{"type":58,"value":677},"HF model repo",{"type":58,"value":679}," — read its README, follow any linked GitHub.",{"type":53,"tag":82,"props":681,"children":682},{},[683,688],{"type":53,"tag":234,"props":684,"children":685},{},[686],{"type":58,"value":687},"Paper \u002F blog post",{"type":58,"value":689}," — look for an official or unofficial implementation. Don't reimplement unless trivial or the user explicitly asks.",{"type":53,"tag":82,"props":691,"children":692},{},[693,698],{"type":53,"tag":234,"props":694,"children":695},{},[696],{"type":58,"value":697},"Vague request",{"type":58,"value":699}," — search Spaces first; surface results.",{"type":53,"tag":60,"props":701,"children":702},{},[703,705,710,712,721],{"type":58,"value":704},"If the model genuinely won't fit, check ",{"type":53,"tag":234,"props":706,"children":707},{},[708],{"type":58,"value":709},"Inference Providers",{"type":58,"value":711}," as an alternative: see ",{"type":53,"tag":134,"props":713,"children":715},{"href":714},"references\u002Finference-providers.md",[716],{"type":53,"tag":88,"props":717,"children":719},{"className":718},[],[720],{"type":58,"value":714},{"type":58,"value":722},". This avoids hosting the model at all.",{"type":53,"tag":66,"props":724,"children":726},{"id":725},"_4-create-the-space",[727],{"type":58,"value":728},"4. Create the Space",{"type":53,"tag":438,"props":730,"children":732},{"className":440,"code":731,"language":442,"meta":443,"style":443},"hf repos create \u003Cnamespace>\u002F\u003Cname> --type space --space-sdk \u003Cgradio|docker|static> \\\n    [--flavor zero-a10g|cpu-basic|\u003Cpaid-flavor>] \\\n    [--secrets KEY=val] [--env KEY=val] \\\n    --public|--private|--protected \\\n    --exist-ok\n",[733],{"type":53,"tag":88,"props":734,"children":735},{"__ignoreMap":443},[736,843,883,939,970],{"type":53,"tag":449,"props":737,"children":738},{"class":451,"line":452},[739,743,748,753,758,763,769,774,779,784,789,793,797,802,807,812,816,820,825,829,833,838],{"type":53,"tag":449,"props":740,"children":741},{"style":456},[742],{"type":58,"value":93},{"type":53,"tag":449,"props":744,"children":745},{"style":461},[746],{"type":58,"value":747}," repos",{"type":53,"tag":449,"props":749,"children":750},{"style":461},[751],{"type":58,"value":752}," create",{"type":53,"tag":449,"props":754,"children":755},{"style":472},[756],{"type":58,"value":757}," \u003C",{"type":53,"tag":449,"props":759,"children":760},{"style":461},[761],{"type":58,"value":762},"namespac",{"type":53,"tag":449,"props":764,"children":766},{"style":765},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[767],{"type":58,"value":768},"e",{"type":53,"tag":449,"props":770,"children":771},{"style":472},[772],{"type":58,"value":773},">",{"type":53,"tag":449,"props":775,"children":776},{"style":461},[777],{"type":58,"value":778},"\u002F",{"type":53,"tag":449,"props":780,"children":781},{"style":472},[782],{"type":58,"value":783},"\u003C",{"type":53,"tag":449,"props":785,"children":786},{"style":461},[787],{"type":58,"value":788},"nam",{"type":53,"tag":449,"props":790,"children":791},{"style":765},[792],{"type":58,"value":768},{"type":53,"tag":449,"props":794,"children":795},{"style":472},[796],{"type":58,"value":773},{"type":53,"tag":449,"props":798,"children":799},{"style":461},[800],{"type":58,"value":801}," --type",{"type":53,"tag":449,"props":803,"children":804},{"style":461},[805],{"type":58,"value":806}," space",{"type":53,"tag":449,"props":808,"children":809},{"style":461},[810],{"type":58,"value":811}," --space-sdk",{"type":53,"tag":449,"props":813,"children":814},{"style":472},[815],{"type":58,"value":757},{"type":53,"tag":449,"props":817,"children":818},{"style":461},[819],{"type":58,"value":14},{"type":53,"tag":449,"props":821,"children":822},{"style":472},[823],{"type":58,"value":824},"|",{"type":53,"tag":449,"props":826,"children":827},{"style":456},[828],{"type":58,"value":29},{"type":53,"tag":449,"props":830,"children":831},{"style":472},[832],{"type":58,"value":824},{"type":53,"tag":449,"props":834,"children":835},{"style":456},[836],{"type":58,"value":837},"static",{"type":53,"tag":449,"props":839,"children":840},{"style":765},[841],{"type":58,"value":842},"> \\\n",{"type":53,"tag":449,"props":844,"children":846},{"class":451,"line":845},2,[847,852,856,860,864,869,874,878],{"type":53,"tag":449,"props":848,"children":849},{"style":765},[850],{"type":58,"value":851},"    [--flavor ",{"type":53,"tag":449,"props":853,"children":854},{"style":461},[855],{"type":58,"value":304},{"type":53,"tag":449,"props":857,"children":858},{"style":472},[859],{"type":58,"value":824},{"type":53,"tag":449,"props":861,"children":862},{"style":456},[863],{"type":58,"value":294},{"type":53,"tag":449,"props":865,"children":866},{"style":472},[867],{"type":58,"value":868},"|\u003C",{"type":53,"tag":449,"props":870,"children":871},{"style":765},[872],{"type":58,"value":873},"paid-flavor",{"type":53,"tag":449,"props":875,"children":876},{"style":472},[877],{"type":58,"value":773},{"type":53,"tag":449,"props":879,"children":880},{"style":765},[881],{"type":58,"value":882},"] \\\n",{"type":53,"tag":449,"props":884,"children":886},{"class":451,"line":885},3,[887,892,897,902,907,912,917,922,926,930,934],{"type":53,"tag":449,"props":888,"children":889},{"style":472},[890],{"type":58,"value":891},"    [",{"type":53,"tag":449,"props":893,"children":894},{"style":765},[895],{"type":58,"value":896},"--secrets KEY",{"type":53,"tag":449,"props":898,"children":899},{"style":472},[900],{"type":58,"value":901},"=",{"type":53,"tag":449,"props":903,"children":904},{"style":765},[905],{"type":58,"value":906},"val",{"type":53,"tag":449,"props":908,"children":909},{"style":472},[910],{"type":58,"value":911},"]",{"type":53,"tag":449,"props":913,"children":914},{"style":472},[915],{"type":58,"value":916}," [",{"type":53,"tag":449,"props":918,"children":919},{"style":765},[920],{"type":58,"value":921},"--env KEY",{"type":53,"tag":449,"props":923,"children":924},{"style":472},[925],{"type":58,"value":901},{"type":53,"tag":449,"props":927,"children":928},{"style":765},[929],{"type":58,"value":906},{"type":53,"tag":449,"props":931,"children":932},{"style":472},[933],{"type":58,"value":911},{"type":53,"tag":449,"props":935,"children":936},{"style":765},[937],{"type":58,"value":938}," \\\n",{"type":53,"tag":449,"props":940,"children":942},{"class":451,"line":941},4,[943,948,952,957,961,966],{"type":53,"tag":449,"props":944,"children":945},{"style":456},[946],{"type":58,"value":947},"    --public",{"type":53,"tag":449,"props":949,"children":950},{"style":472},[951],{"type":58,"value":824},{"type":53,"tag":449,"props":953,"children":954},{"style":456},[955],{"type":58,"value":956},"--private",{"type":53,"tag":449,"props":958,"children":959},{"style":472},[960],{"type":58,"value":824},{"type":53,"tag":449,"props":962,"children":963},{"style":456},[964],{"type":58,"value":965},"--protected",{"type":53,"tag":449,"props":967,"children":968},{"style":765},[969],{"type":58,"value":938},{"type":53,"tag":449,"props":971,"children":973},{"class":451,"line":972},5,[974],{"type":53,"tag":449,"props":975,"children":976},{"style":461},[977],{"type":58,"value":978},"    --exist-ok\n",{"type":53,"tag":227,"props":980,"children":981},{},[982,993,1025,1052,1084],{"type":53,"tag":82,"props":983,"children":984},{},[985,991],{"type":53,"tag":88,"props":986,"children":988},{"className":987},[],[989],{"type":58,"value":990},"--space-sdk",{"type":58,"value":992}," is required.",{"type":53,"tag":82,"props":994,"children":995},{},[996,1002,1004,1009,1011,1016,1018,1023],{"type":53,"tag":88,"props":997,"children":999},{"className":998},[],[1000],{"type":58,"value":1001},"--flavor",{"type":58,"value":1003}," selects hardware. ",{"type":53,"tag":88,"props":1005,"children":1007},{"className":1006},[],[1008],{"type":58,"value":304},{"type":58,"value":1010}," is the (legacy) identifier for ZeroGPU. Omit for ",{"type":53,"tag":88,"props":1012,"children":1014},{"className":1013},[],[1015],{"type":58,"value":294},{"type":58,"value":1017},". Run ",{"type":53,"tag":88,"props":1019,"children":1021},{"className":1020},[],[1022],{"type":58,"value":382},{"type":58,"value":1024}," for the full paid list and pricing.",{"type":53,"tag":82,"props":1026,"children":1027},{},[1028,1030,1036,1038,1043,1045,1050],{"type":58,"value":1029},"Visibility: ",{"type":53,"tag":88,"props":1031,"children":1033},{"className":1032},[],[1034],{"type":58,"value":1035},"--public",{"type":58,"value":1037}," (anyone can view), ",{"type":53,"tag":88,"props":1039,"children":1041},{"className":1040},[],[1042],{"type":58,"value":956},{"type":58,"value":1044}," (only you), ",{"type":53,"tag":88,"props":1046,"children":1048},{"className":1047},[],[1049],{"type":58,"value":965},{"type":58,"value":1051}," (app is reachable but git repo \u002F Files tab is private).",{"type":53,"tag":82,"props":1053,"children":1054},{},[1055,1061,1063,1067,1069,1075,1077,1083],{"type":53,"tag":88,"props":1056,"children":1058},{"className":1057},[],[1059],{"type":58,"value":1060},"--secrets KEY=val",{"type":58,"value":1062}," becomes an environment variable inside the Space and is ",{"type":53,"tag":234,"props":1064,"children":1065},{},[1066],{"type":58,"value":261},{"type":58,"value":1068}," visible to visitors. Use for API keys, gated-repo tokens (",{"type":53,"tag":88,"props":1070,"children":1072},{"className":1071},[],[1073],{"type":58,"value":1074},"HF_TOKEN=hf_…",{"type":58,"value":1076},"), etc. Can also be set later via ",{"type":53,"tag":88,"props":1078,"children":1080},{"className":1079},[],[1081],{"type":58,"value":1082},"hf spaces secrets set \u003Cid> KEY=val",{"type":58,"value":111},{"type":53,"tag":82,"props":1085,"children":1086},{},[1087,1093,1095,1100,1102,1108,1109,1115],{"type":53,"tag":88,"props":1088,"children":1090},{"className":1089},[],[1091],{"type":58,"value":1092},"--env KEY=val",{"type":58,"value":1094}," is ",{"type":53,"tag":234,"props":1096,"children":1097},{},[1098],{"type":58,"value":1099},"visible to visitors",{"type":58,"value":1101}," — use only for non-sensitive config (",{"type":53,"tag":88,"props":1103,"children":1105},{"className":1104},[],[1106],{"type":58,"value":1107},"GRADIO_SSR_MODE=false",{"type":58,"value":359},{"type":53,"tag":88,"props":1110,"children":1112},{"className":1111},[],[1113],{"type":58,"value":1114},"PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True",{"type":58,"value":1116},", etc.).",{"type":53,"tag":1118,"props":1119,"children":1120},"blockquote",{},[1121],{"type":53,"tag":60,"props":1122,"children":1123},{},[1124,1126,1132,1134,1139,1141,1147],{"type":58,"value":1125},"Note: ",{"type":53,"tag":88,"props":1127,"children":1129},{"className":1128},[],[1130],{"type":58,"value":1131},"hardware:",{"type":58,"value":1133}," in the README YAML is silently ignored — hardware is only set via ",{"type":53,"tag":88,"props":1135,"children":1137},{"className":1136},[],[1138],{"type":58,"value":1001},{"type":58,"value":1140}," at creation, or later via ",{"type":53,"tag":88,"props":1142,"children":1144},{"className":1143},[],[1145],{"type":58,"value":1146},"hf spaces settings \u003Cid> --hardware \u003Cname>",{"type":58,"value":111},{"type":53,"tag":66,"props":1149,"children":1151},{"id":1150},"_5-build-the-app",[1152],{"type":58,"value":1153},"5. Build the app",{"type":53,"tag":60,"props":1155,"children":1156},{},[1157,1159,1165],{"type":58,"value":1158},"The Space now exists at ",{"type":53,"tag":88,"props":1160,"children":1162},{"className":1161},[],[1163],{"type":58,"value":1164},"https:\u002F\u002Fhuggingface.co\u002Fspaces\u002F\u003Cnamespace>\u002F\u003Cname>",{"type":58,"value":1166}," but is empty.",{"type":53,"tag":275,"props":1168,"children":1170},{"id":1169},"readmemd-frontmatter",[1171],{"type":58,"value":1172},"README.md frontmatter",{"type":53,"tag":60,"props":1174,"children":1175},{},[1176],{"type":58,"value":1177},"Always required:",{"type":53,"tag":438,"props":1179,"children":1183},{"className":1180,"code":1181,"language":1182,"meta":443,"style":443},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","---\ntitle: ...\nemoji: 🚀                # pick something representative\ncolorFrom: blue          # red|yellow|green|blue|indigo|purple|pink|gray (only these)\ncolorTo: indigo\nsdk: gradio              # gradio | docker | static\nsdk_version: 6.15.1      # latest stable unless you have a reason*\napp_file: app.py         # gradio only (docker \u002F static use Dockerfile \u002F index.html)\nshort_description: ...   # ≤ 60 chars (server rejects longer)\npython_version: \"3.12\"   # ZeroGPU officially supports 3.10.13 and 3.12.12\nstartup_duration_timeout: 30m   # default; bump to 1h for big LLMs \u002F heavy downloads\n---\n","yaml",[1184],{"type":53,"tag":88,"props":1185,"children":1186},{"__ignoreMap":443},[1187,1195,1214,1237,1259,1276,1298,1321,1344,1367,1398,1421],{"type":53,"tag":449,"props":1188,"children":1189},{"class":451,"line":452},[1190],{"type":53,"tag":449,"props":1191,"children":1192},{"style":456},[1193],{"type":58,"value":1194},"---\n",{"type":53,"tag":449,"props":1196,"children":1197},{"class":451,"line":845},[1198,1204,1209],{"type":53,"tag":449,"props":1199,"children":1201},{"style":1200},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[1202],{"type":58,"value":1203},"title",{"type":53,"tag":449,"props":1205,"children":1206},{"style":472},[1207],{"type":58,"value":1208},":",{"type":53,"tag":449,"props":1210,"children":1211},{"style":503},[1212],{"type":58,"value":1213}," ...\n",{"type":53,"tag":449,"props":1215,"children":1216},{"class":451,"line":885},[1217,1222,1226,1231],{"type":53,"tag":449,"props":1218,"children":1219},{"style":1200},[1220],{"type":58,"value":1221},"emoji",{"type":53,"tag":449,"props":1223,"children":1224},{"style":472},[1225],{"type":58,"value":1208},{"type":53,"tag":449,"props":1227,"children":1228},{"style":461},[1229],{"type":58,"value":1230}," 🚀",{"type":53,"tag":449,"props":1232,"children":1234},{"style":1233},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1235],{"type":58,"value":1236},"                # pick something representative\n",{"type":53,"tag":449,"props":1238,"children":1239},{"class":451,"line":941},[1240,1245,1249,1254],{"type":53,"tag":449,"props":1241,"children":1242},{"style":1200},[1243],{"type":58,"value":1244},"colorFrom",{"type":53,"tag":449,"props":1246,"children":1247},{"style":472},[1248],{"type":58,"value":1208},{"type":53,"tag":449,"props":1250,"children":1251},{"style":461},[1252],{"type":58,"value":1253}," blue",{"type":53,"tag":449,"props":1255,"children":1256},{"style":1233},[1257],{"type":58,"value":1258},"          # red|yellow|green|blue|indigo|purple|pink|gray (only these)\n",{"type":53,"tag":449,"props":1260,"children":1261},{"class":451,"line":972},[1262,1267,1271],{"type":53,"tag":449,"props":1263,"children":1264},{"style":1200},[1265],{"type":58,"value":1266},"colorTo",{"type":53,"tag":449,"props":1268,"children":1269},{"style":472},[1270],{"type":58,"value":1208},{"type":53,"tag":449,"props":1272,"children":1273},{"style":461},[1274],{"type":58,"value":1275}," indigo\n",{"type":53,"tag":449,"props":1277,"children":1279},{"class":451,"line":1278},6,[1280,1285,1289,1293],{"type":53,"tag":449,"props":1281,"children":1282},{"style":1200},[1283],{"type":58,"value":1284},"sdk",{"type":53,"tag":449,"props":1286,"children":1287},{"style":472},[1288],{"type":58,"value":1208},{"type":53,"tag":449,"props":1290,"children":1291},{"style":461},[1292],{"type":58,"value":495},{"type":53,"tag":449,"props":1294,"children":1295},{"style":1233},[1296],{"type":58,"value":1297},"              # gradio | docker | static\n",{"type":53,"tag":449,"props":1299,"children":1301},{"class":451,"line":1300},7,[1302,1307,1311,1316],{"type":53,"tag":449,"props":1303,"children":1304},{"style":1200},[1305],{"type":58,"value":1306},"sdk_version",{"type":53,"tag":449,"props":1308,"children":1309},{"style":472},[1310],{"type":58,"value":1208},{"type":53,"tag":449,"props":1312,"children":1313},{"style":503},[1314],{"type":58,"value":1315}," 6.15.1",{"type":53,"tag":449,"props":1317,"children":1318},{"style":1233},[1319],{"type":58,"value":1320},"      # latest stable unless you have a reason*\n",{"type":53,"tag":449,"props":1322,"children":1324},{"class":451,"line":1323},8,[1325,1330,1334,1339],{"type":53,"tag":449,"props":1326,"children":1327},{"style":1200},[1328],{"type":58,"value":1329},"app_file",{"type":53,"tag":449,"props":1331,"children":1332},{"style":472},[1333],{"type":58,"value":1208},{"type":53,"tag":449,"props":1335,"children":1336},{"style":461},[1337],{"type":58,"value":1338}," app.py",{"type":53,"tag":449,"props":1340,"children":1341},{"style":1233},[1342],{"type":58,"value":1343},"         # gradio only (docker \u002F static use Dockerfile \u002F index.html)\n",{"type":53,"tag":449,"props":1345,"children":1347},{"class":451,"line":1346},9,[1348,1353,1357,1362],{"type":53,"tag":449,"props":1349,"children":1350},{"style":1200},[1351],{"type":58,"value":1352},"short_description",{"type":53,"tag":449,"props":1354,"children":1355},{"style":472},[1356],{"type":58,"value":1208},{"type":53,"tag":449,"props":1358,"children":1359},{"style":503},[1360],{"type":58,"value":1361}," ...",{"type":53,"tag":449,"props":1363,"children":1364},{"style":1233},[1365],{"type":58,"value":1366},"   # ≤ 60 chars (server rejects longer)\n",{"type":53,"tag":449,"props":1368,"children":1370},{"class":451,"line":1369},10,[1371,1376,1380,1384,1389,1393],{"type":53,"tag":449,"props":1372,"children":1373},{"style":1200},[1374],{"type":58,"value":1375},"python_version",{"type":53,"tag":449,"props":1377,"children":1378},{"style":472},[1379],{"type":58,"value":1208},{"type":53,"tag":449,"props":1381,"children":1382},{"style":472},[1383],{"type":58,"value":475},{"type":53,"tag":449,"props":1385,"children":1386},{"style":461},[1387],{"type":58,"value":1388},"3.12",{"type":53,"tag":449,"props":1390,"children":1391},{"style":472},[1392],{"type":58,"value":485},{"type":53,"tag":449,"props":1394,"children":1395},{"style":1233},[1396],{"type":58,"value":1397},"   # ZeroGPU officially supports 3.10.13 and 3.12.12\n",{"type":53,"tag":449,"props":1399,"children":1401},{"class":451,"line":1400},11,[1402,1407,1411,1416],{"type":53,"tag":449,"props":1403,"children":1404},{"style":1200},[1405],{"type":58,"value":1406},"startup_duration_timeout",{"type":53,"tag":449,"props":1408,"children":1409},{"style":472},[1410],{"type":58,"value":1208},{"type":53,"tag":449,"props":1412,"children":1413},{"style":461},[1414],{"type":58,"value":1415}," 30m",{"type":53,"tag":449,"props":1417,"children":1418},{"style":1233},[1419],{"type":58,"value":1420},"   # default; bump to 1h for big LLMs \u002F heavy downloads\n",{"type":53,"tag":449,"props":1422,"children":1424},{"class":451,"line":1423},12,[1425],{"type":53,"tag":449,"props":1426,"children":1427},{"style":456},[1428],{"type":58,"value":1194},{"type":53,"tag":60,"props":1430,"children":1431},{},[1432,1434,1439,1440,1446,1448,1454],{"type":58,"value":1433},"* Default to the current latest stable, and ",{"type":53,"tag":234,"props":1435,"children":1436},{},[1437],{"type":58,"value":1438},"look up what that is",{"type":58,"value":593},{"type":53,"tag":88,"props":1441,"children":1443},{"className":1442},[],[1444],{"type":58,"value":1445},"pip index versions gradio",{"type":58,"value":1447},", or the version a freshly-created Space defaults to) — the number above is a placeholder that goes stale, don't reuse it. Only pin older when the latest genuinely doesn't work for this Space: a custom component pins it, or you're adapting an existing demo and don't want to rewrite for 5.x→6.x breaking changes. If you need a 5.x, pick ",{"type":53,"tag":88,"props":1449,"children":1451},{"className":1450},[],[1452],{"type":58,"value":1453},"5.50.0",{"type":58,"value":1455}," (latest of the series; still supports custom components).",{"type":53,"tag":60,"props":1457,"children":1458},{},[1459,1461],{"type":58,"value":1460},"All frontmatter options: ",{"type":53,"tag":134,"props":1462,"children":1465},{"href":1463,"rel":1464},"https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fhub\u002Fspaces-config-reference",[138],[1466],{"type":58,"value":1463},{"type":53,"tag":275,"props":1468,"children":1470},{"id":1469},"minimal-zerogpu-gradio-app",[1471],{"type":58,"value":1472},"Minimal ZeroGPU Gradio app",{"type":53,"tag":438,"props":1474,"children":1478},{"className":1475,"code":1476,"language":1477,"meta":443,"style":443},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import spaces           # MUST come before torch \u002F diffusers \u002F transformers\nimport torch\nimport gradio as gr\nfrom diffusers import DiffusionPipeline\n\npipe = DiffusionPipeline.from_pretrained(\"\u003Crepo>\", torch_dtype=torch.bfloat16).to(\"cuda\")\n\n@spaces.GPU(duration=60)\ndef generate(prompt: str):\n    \"\"\"Generate an image from a text prompt.\"\"\"   # docstring → API \u002F MCP tool description\n    return pipe(prompt).images[0]\n\ngr.Interface(fn=generate, inputs=gr.Text(), outputs=gr.Image()).launch(mcp_server=True)\n","python",[1479],{"type":53,"tag":88,"props":1480,"children":1481},{"__ignoreMap":443},[1482,1490,1498,1506,1514,1523,1531,1538,1546,1554,1562,1570,1577],{"type":53,"tag":449,"props":1483,"children":1484},{"class":451,"line":452},[1485],{"type":53,"tag":449,"props":1486,"children":1487},{},[1488],{"type":58,"value":1489},"import spaces           # MUST come before torch \u002F diffusers \u002F transformers\n",{"type":53,"tag":449,"props":1491,"children":1492},{"class":451,"line":845},[1493],{"type":53,"tag":449,"props":1494,"children":1495},{},[1496],{"type":58,"value":1497},"import torch\n",{"type":53,"tag":449,"props":1499,"children":1500},{"class":451,"line":885},[1501],{"type":53,"tag":449,"props":1502,"children":1503},{},[1504],{"type":58,"value":1505},"import gradio as gr\n",{"type":53,"tag":449,"props":1507,"children":1508},{"class":451,"line":941},[1509],{"type":53,"tag":449,"props":1510,"children":1511},{},[1512],{"type":58,"value":1513},"from diffusers import DiffusionPipeline\n",{"type":53,"tag":449,"props":1515,"children":1516},{"class":451,"line":972},[1517],{"type":53,"tag":449,"props":1518,"children":1520},{"emptyLinePlaceholder":1519},true,[1521],{"type":58,"value":1522},"\n",{"type":53,"tag":449,"props":1524,"children":1525},{"class":451,"line":1278},[1526],{"type":53,"tag":449,"props":1527,"children":1528},{},[1529],{"type":58,"value":1530},"pipe = DiffusionPipeline.from_pretrained(\"\u003Crepo>\", torch_dtype=torch.bfloat16).to(\"cuda\")\n",{"type":53,"tag":449,"props":1532,"children":1533},{"class":451,"line":1300},[1534],{"type":53,"tag":449,"props":1535,"children":1536},{"emptyLinePlaceholder":1519},[1537],{"type":58,"value":1522},{"type":53,"tag":449,"props":1539,"children":1540},{"class":451,"line":1323},[1541],{"type":53,"tag":449,"props":1542,"children":1543},{},[1544],{"type":58,"value":1545},"@spaces.GPU(duration=60)\n",{"type":53,"tag":449,"props":1547,"children":1548},{"class":451,"line":1346},[1549],{"type":53,"tag":449,"props":1550,"children":1551},{},[1552],{"type":58,"value":1553},"def generate(prompt: str):\n",{"type":53,"tag":449,"props":1555,"children":1556},{"class":451,"line":1369},[1557],{"type":53,"tag":449,"props":1558,"children":1559},{},[1560],{"type":58,"value":1561},"    \"\"\"Generate an image from a text prompt.\"\"\"   # docstring → API \u002F MCP tool description\n",{"type":53,"tag":449,"props":1563,"children":1564},{"class":451,"line":1400},[1565],{"type":53,"tag":449,"props":1566,"children":1567},{},[1568],{"type":58,"value":1569},"    return pipe(prompt).images[0]\n",{"type":53,"tag":449,"props":1571,"children":1572},{"class":451,"line":1423},[1573],{"type":53,"tag":449,"props":1574,"children":1575},{"emptyLinePlaceholder":1519},[1576],{"type":58,"value":1522},{"type":53,"tag":449,"props":1578,"children":1580},{"class":451,"line":1579},13,[1581],{"type":53,"tag":449,"props":1582,"children":1583},{},[1584],{"type":58,"value":1585},"gr.Interface(fn=generate, inputs=gr.Text(), outputs=gr.Image()).launch(mcp_server=True)\n",{"type":53,"tag":60,"props":1587,"children":1588},{},[1589,1591,1599],{"type":58,"value":1590},"Three rules — full treatment in ",{"type":53,"tag":134,"props":1592,"children":1593},{"href":643},[1594],{"type":53,"tag":88,"props":1595,"children":1597},{"className":1596},[],[1598],{"type":58,"value":643},{"type":58,"value":1208},{"type":53,"tag":78,"props":1601,"children":1602},{},[1603,1627,1652],{"type":53,"tag":82,"props":1604,"children":1605},{},[1606,1617,1619,1625],{"type":53,"tag":234,"props":1607,"children":1608},{},[1609,1615],{"type":53,"tag":88,"props":1610,"children":1612},{"className":1611},[],[1613],{"type":58,"value":1614},"import spaces",{"type":58,"value":1616}," before torch \u002F any CUDA-touching import.",{"type":58,"value":1618}," It monkey-patches ",{"type":53,"tag":88,"props":1620,"children":1622},{"className":1621},[],[1623],{"type":58,"value":1624},"torch.cuda.*",{"type":58,"value":1626},"; once CUDA is initialized in the main process, it's too late.",{"type":53,"tag":82,"props":1628,"children":1629},{},[1630,1643,1645,1650],{"type":53,"tag":234,"props":1631,"children":1632},{},[1633,1635,1641],{"type":58,"value":1634},"Load the model at module scope, ",{"type":53,"tag":88,"props":1636,"children":1638},{"className":1637},[],[1639],{"type":58,"value":1640},".to(\"cuda\")",{"type":58,"value":1642}," eagerly.",{"type":58,"value":1644}," ZeroGPU intercepts the call, packs weights to disk, and streams them into VRAM on the first ",{"type":53,"tag":88,"props":1646,"children":1648},{"className":1647},[],[1649],{"type":58,"value":574},{"type":58,"value":1651}," entry. Lazy loading inside the decorator costs every user.",{"type":53,"tag":82,"props":1653,"children":1654},{},[1655,1660,1662,1668],{"type":53,"tag":234,"props":1656,"children":1657},{},[1658],{"type":58,"value":1659},"Decorate the function Gradio binds.",{"type":58,"value":1661}," Estimate ",{"type":53,"tag":88,"props":1663,"children":1665},{"className":1664},[],[1666],{"type":58,"value":1667},"duration",{"type":58,"value":1669}," to the realistic worst case (smaller = higher queue priority and tighter quota check). For input-dependent runtime, pass a callable.",{"type":53,"tag":275,"props":1671,"children":1673},{"id":1672},"examples-docstrings-and-mcp",[1674],{"type":58,"value":1675},"Examples, docstrings, and MCP",{"type":53,"tag":227,"props":1677,"children":1678},{},[1679,1723,1733],{"type":53,"tag":82,"props":1680,"children":1681},{},[1682,1695,1697,1703,1705,1711,1713,1722],{"type":53,"tag":234,"props":1683,"children":1684},{},[1685,1687,1693],{"type":58,"value":1686},"Add ",{"type":53,"tag":88,"props":1688,"children":1690},{"className":1689},[],[1691],{"type":58,"value":1692},"gr.Examples",{"type":58,"value":1694}," whenever it makes sense",{"type":58,"value":1696}," (the app takes input and representative inputs exist) — prefer the model\u002Frepo's own official examples. Keep example rows to the few inputs a user actually varies (prompt, image) and give the handler defaults for the rest (steps, seed, guidance) so a row is ",{"type":53,"tag":88,"props":1698,"children":1700},{"className":1699},[],[1701],{"type":58,"value":1702},"[\"a prompt\"]",{"type":58,"value":1704},", not a wall of knobs. Use ",{"type":53,"tag":88,"props":1706,"children":1708},{"className":1707},[],[1709],{"type":58,"value":1710},"cache_examples=True, cache_mode=\"lazy\"",{"type":58,"value":1712},". See ",{"type":53,"tag":134,"props":1714,"children":1716},{"href":1715},"references\u002Fgradio.md",[1717],{"type":53,"tag":88,"props":1718,"children":1720},{"className":1719},[],[1721],{"type":58,"value":1715},{"type":58,"value":111},{"type":53,"tag":82,"props":1724,"children":1725},{},[1726,1731],{"type":53,"tag":234,"props":1727,"children":1728},{},[1729],{"type":58,"value":1730},"Give every API-triggered function a docstring and type hints.",{"type":58,"value":1732}," Each Gradio event handler is exposed over the API; the docstring + signature are what a caller — and the MCP tool schema — sees.",{"type":53,"tag":82,"props":1734,"children":1735},{},[1736,1747],{"type":53,"tag":234,"props":1737,"children":1738},{},[1739,1741],{"type":58,"value":1740},"Launch with ",{"type":53,"tag":88,"props":1742,"children":1744},{"className":1743},[],[1745],{"type":58,"value":1746},"demo.launch(mcp_server=True)",{"type":58,"value":1748}," (Gradio 5+) so the Space doubles as an MCP server: each API function becomes an MCP tool described by its docstring and hints.",{"type":53,"tag":275,"props":1750,"children":1752},{"id":1751},"requirementstxt",[1753],{"type":58,"value":524},{"type":53,"tag":60,"props":1755,"children":1756},{},[1757],{"type":58,"value":1758},"Short version:",{"type":53,"tag":227,"props":1760,"children":1761},{},[1762,1792,1845,1879],{"type":53,"tag":82,"props":1763,"children":1764},{},[1765,1770,1771,1776,1777,1783,1784,1790],{"type":53,"tag":234,"props":1766,"children":1767},{},[1768],{"type":58,"value":1769},"Do NOT list",{"type":58,"value":586},{"type":53,"tag":88,"props":1772,"children":1774},{"className":1773},[],[1775],{"type":58,"value":14},{"type":58,"value":359},{"type":53,"tag":88,"props":1778,"children":1780},{"className":1779},[],[1781],{"type":58,"value":1782},"spaces",{"type":58,"value":359},{"type":53,"tag":88,"props":1785,"children":1787},{"className":1786},[],[1788],{"type":58,"value":1789},"huggingface_hub",{"type":58,"value":1791}," (preinstalled and platform-managed; pinning them causes resolution failures or silently breaks the ZeroGPU runtime).",{"type":53,"tag":82,"props":1793,"children":1794},{},[1795,1800,1801,1807,1808,1814,1816,1822,1823,1829,1830,1836,1837,1843],{"type":53,"tag":234,"props":1796,"children":1797},{},[1798],{"type":58,"value":1799},"Do list if you use them",{"type":58,"value":586},{"type":53,"tag":88,"props":1802,"children":1804},{"className":1803},[],[1805],{"type":58,"value":1806},"torchvision",{"type":58,"value":359},{"type":53,"tag":88,"props":1809,"children":1811},{"className":1810},[],[1812],{"type":58,"value":1813},"torchaudio",{"type":58,"value":1815}," (not preinstalled), plus everything else (",{"type":53,"tag":88,"props":1817,"children":1819},{"className":1818},[],[1820],{"type":58,"value":1821},"diffusers",{"type":58,"value":359},{"type":53,"tag":88,"props":1824,"children":1826},{"className":1825},[],[1827],{"type":58,"value":1828},"transformers",{"type":58,"value":359},{"type":53,"tag":88,"props":1831,"children":1833},{"className":1832},[],[1834],{"type":58,"value":1835},"accelerate",{"type":58,"value":359},{"type":53,"tag":88,"props":1838,"children":1840},{"className":1839},[],[1841],{"type":58,"value":1842},"sentencepiece",{"type":58,"value":1844},", …).",{"type":53,"tag":82,"props":1846,"children":1847},{},[1848,1850,1856,1857,1863,1864,1870,1871,1877],{"type":58,"value":1849},"ZeroGPU only accepts torch ",{"type":53,"tag":88,"props":1851,"children":1853},{"className":1852},[],[1854],{"type":58,"value":1855},"2.8.0",{"type":58,"value":359},{"type":53,"tag":88,"props":1858,"children":1860},{"className":1859},[],[1861],{"type":58,"value":1862},"2.9.1",{"type":58,"value":359},{"type":53,"tag":88,"props":1865,"children":1867},{"className":1866},[],[1868],{"type":58,"value":1869},"2.10.0",{"type":58,"value":359},{"type":53,"tag":88,"props":1872,"children":1874},{"className":1873},[],[1875],{"type":58,"value":1876},"2.11.0",{"type":58,"value":1878},". Default to leaving torch unpinned (the runtime preinstalls the latest). Only pin when a dep forces it.",{"type":53,"tag":82,"props":1880,"children":1881},{},[1882,1884,1890,1891,1897,1898,1904,1905,1911,1912,1918,1919,1925,1927,1933,1935,1944],{"type":58,"value":1883},"For prebuilt CUDA-extension wheels (",{"type":53,"tag":88,"props":1885,"children":1887},{"className":1886},[],[1888],{"type":58,"value":1889},"flash_attn",{"type":58,"value":359},{"type":53,"tag":88,"props":1892,"children":1894},{"className":1893},[],[1895],{"type":58,"value":1896},"xformers",{"type":58,"value":359},{"type":53,"tag":88,"props":1899,"children":1901},{"className":1900},[],[1902],{"type":58,"value":1903},"pytorch3d",{"type":58,"value":359},{"type":53,"tag":88,"props":1906,"children":1908},{"className":1907},[],[1909],{"type":58,"value":1910},"nvdiffrast",{"type":58,"value":359},{"type":53,"tag":88,"props":1913,"children":1915},{"className":1914},[],[1916],{"type":58,"value":1917},"diff_gaussian_rasterization",{"type":58,"value":359},{"type":53,"tag":88,"props":1920,"children":1922},{"className":1921},[],[1923],{"type":58,"value":1924},"torchmcubes",{"type":58,"value":1926},"): use the prebuilt Blackwell wheels at ",{"type":53,"tag":88,"props":1928,"children":1930},{"className":1929},[],[1931],{"type":58,"value":1932},"https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fmultimodalart\u002Fzerogpu-blackwell-wheels\u002Ftree\u002Fmain\u002Fwheels",{"type":58,"value":1934},". Full mapping + caveats in ",{"type":53,"tag":134,"props":1936,"children":1938},{"href":1937},"references\u002Frequirements.md",[1939],{"type":53,"tag":88,"props":1940,"children":1942},{"className":1941},[],[1943],{"type":58,"value":1937},{"type":58,"value":111},{"type":53,"tag":275,"props":1946,"children":1948},{"id":1947},"per-sdk-depth",[1949],{"type":58,"value":1950},"Per-SDK depth",{"type":53,"tag":227,"props":1952,"children":1953},{},[1954,1988,2010,2041],{"type":53,"tag":82,"props":1955,"children":1956},{},[1957,1962,1964,1969,1971,1977,1979,1987],{"type":53,"tag":234,"props":1958,"children":1959},{},[1960],{"type":58,"value":1961},"Gradio patterns",{"type":58,"value":1963}," (themes, ",{"type":53,"tag":88,"props":1965,"children":1967},{"className":1966},[],[1968],{"type":58,"value":1692},{"type":58,"value":1970},", streaming, custom HTML components, ",{"type":53,"tag":88,"props":1972,"children":1974},{"className":1973},[],[1975],{"type":58,"value":1976},"gr.Server",{"type":58,"value":1978},"): ",{"type":53,"tag":134,"props":1980,"children":1981},{"href":1715},[1982],{"type":53,"tag":88,"props":1983,"children":1985},{"className":1984},[],[1986],{"type":58,"value":1715},{"type":58,"value":111},{"type":53,"tag":82,"props":1989,"children":1990},{},[1991,1995,1996,2001,2003,2009],{"type":53,"tag":234,"props":1992,"children":1993},{},[1994],{"type":58,"value":28},{"type":58,"value":586},{"type":53,"tag":134,"props":1997,"children":1999},{"href":251,"rel":1998},[138],[2000],{"type":58,"value":251},{"type":58,"value":2002},". Examples: ",{"type":53,"tag":88,"props":2004,"children":2006},{"className":2005},[],[2007],{"type":58,"value":2008},"hf spaces list --filter docker",{"type":58,"value":111},{"type":53,"tag":82,"props":2011,"children":2012},{},[2013,2017,2018,2024,2026,2032,2033,2039],{"type":53,"tag":234,"props":2014,"children":2015},{},[2016],{"type":58,"value":271},{"type":58,"value":586},{"type":53,"tag":134,"props":2019,"children":2022},{"href":2020,"rel":2021},"https:\u002F\u002Fhuggingface.co\u002Fdocs\u002Fhub\u002Fspaces-sdks-static",[138],[2023],{"type":58,"value":2020},{"type":58,"value":2025},". For built SPAs, set ",{"type":53,"tag":88,"props":2027,"children":2029},{"className":2028},[],[2030],{"type":58,"value":2031},"app_build_command: npm run build",{"type":58,"value":170},{"type":53,"tag":88,"props":2034,"children":2036},{"className":2035},[],[2037],{"type":58,"value":2038},"app_file: dist\u002Findex.html",{"type":58,"value":2040}," in frontmatter.",{"type":53,"tag":82,"props":2042,"children":2043},{},[2044,2049,2051,2057,2059,2067],{"type":53,"tag":234,"props":2045,"children":2046},{},[2047],{"type":58,"value":2048},"ZeroGPU specifics",{"type":58,"value":2050}," (decorator semantics, sizing, AoTI, generators, concurrency, pickle \u002F ",{"type":53,"tag":88,"props":2052,"children":2054},{"className":2053},[],[2055],{"type":58,"value":2056},"gr.State",{"type":58,"value":2058}," across the worker boundary): ",{"type":53,"tag":134,"props":2060,"children":2061},{"href":643},[2062],{"type":53,"tag":88,"props":2063,"children":2065},{"className":2064},[],[2066],{"type":58,"value":643},{"type":58,"value":2068}," — read this whenever the Space targets ZeroGPU.",{"type":53,"tag":66,"props":2070,"children":2072},{"id":2071},"_6-iterate-on-the-space-not-locally",[2073],{"type":58,"value":2074},"6. Iterate on the Space, not locally",{"type":53,"tag":60,"props":2076,"children":2077},{},[2078,2080,2086],{"type":58,"value":2079},"Try to build a release candidate from the user quest locally and push it — then use the live URL as your test loop. The Space environment is the only one that matters; do not try to test locally. ",{"type":53,"tag":88,"props":2081,"children":2083},{"className":2082},[],[2084],{"type":58,"value":2085},"python3 -m py_compile app.py",{"type":58,"value":2087}," is the maximum local check worth doing before pushing.",{"type":53,"tag":60,"props":2089,"children":2090},{},[2091,2093,2099,2101,2112,2114,2120,2122,2128,2130,2136],{"type":58,"value":2092},"Push files with ",{"type":53,"tag":88,"props":2094,"children":2096},{"className":2095},[],[2097],{"type":58,"value":2098},"hf upload \u003Cnamespace>\u002F\u003Cname> . --repo-type space",{"type":58,"value":2100},". ",{"type":53,"tag":234,"props":2102,"children":2103},{},[2104,2110],{"type":53,"tag":88,"props":2105,"children":2107},{"className":2106},[],[2108],{"type":58,"value":2109},"--repo-type space",{"type":58,"value":2111}," is required",{"type":58,"value":2113}," — ",{"type":53,"tag":88,"props":2115,"children":2117},{"className":2116},[],[2118],{"type":58,"value":2119},"hf upload",{"type":58,"value":2121}," defaults to a ",{"type":53,"tag":2123,"props":2124,"children":2125},"em",{},[2126],{"type":58,"value":2127},"model",{"type":58,"value":2129}," repo and will otherwise upload to (and silently create) a model repo of the same name. Add ",{"type":53,"tag":88,"props":2131,"children":2133},{"className":2132},[],[2134],{"type":58,"value":2135},"--exclude \"**\u002F__pycache__\u002F**\"",{"type":58,"value":2137}," so local bytecode caches aren't committed into the Space.",{"type":53,"tag":60,"props":2139,"children":2140},{},[2141,2143,2148,2150,2155,2157,2163,2165,2174],{"type":58,"value":2142},"Once pushed, pick the cheapest update mechanism for each change — hot-reload for pure Python edits, ",{"type":53,"tag":88,"props":2144,"children":2146},{"className":2145},[],[2147],{"type":58,"value":2119},{"type":58,"value":2149}," for code-only files hot-reload can't touch, full rebuild only when ",{"type":53,"tag":88,"props":2151,"children":2153},{"className":2152},[],[2154],{"type":58,"value":524},{"type":58,"value":2156}," \u002F ",{"type":53,"tag":88,"props":2158,"children":2160},{"className":2159},[],[2161],{"type":58,"value":2162},"Dockerfile",{"type":58,"value":2164}," \u002F README frontmatter actually changed. Full ladder + footguns (hot-reload poisoning factory reboot, runtime.sha lag, etc.) in ",{"type":53,"tag":134,"props":2166,"children":2168},{"href":2167},"references\u002Fdebugging.md",[2169],{"type":53,"tag":88,"props":2170,"children":2172},{"className":2171},[],[2173],{"type":58,"value":2167},{"type":58,"value":111},{"type":53,"tag":66,"props":2176,"children":2178},{"id":2177},"_7-verify",[2179],{"type":58,"value":2180},"7. Verify",{"type":53,"tag":60,"props":2182,"children":2183},{},[2184,2186,2192],{"type":58,"value":2185},"Don't trust ",{"type":53,"tag":88,"props":2187,"children":2189},{"className":2188},[],[2190],{"type":58,"value":2191},"RUNNING",{"type":58,"value":2193}," alone — the app can be running but broken. Four steps, in order:",{"type":53,"tag":60,"props":2195,"children":2196},{},[2197,2202],{"type":53,"tag":234,"props":2198,"children":2199},{},[2200],{"type":58,"value":2201},"A. Alive?",{"type":58,"value":2203}," Stage + hardware:",{"type":53,"tag":438,"props":2205,"children":2207},{"className":440,"code":2206,"language":442,"meta":443,"style":443},"hf spaces info \u003Cns>\u002F\u003Cname> --expand runtime\n",[2208],{"type":53,"tag":88,"props":2209,"children":2210},{"__ignoreMap":443},[2211],{"type":53,"tag":449,"props":2212,"children":2213},{"class":451,"line":452},[2214,2218,2222,2227,2231,2236,2241,2245,2249,2253,2257,2261,2265,2270],{"type":53,"tag":449,"props":2215,"children":2216},{"style":456},[2217],{"type":58,"value":93},{"type":53,"tag":449,"props":2219,"children":2220},{"style":461},[2221],{"type":58,"value":464},{"type":53,"tag":449,"props":2223,"children":2224},{"style":461},[2225],{"type":58,"value":2226}," info",{"type":53,"tag":449,"props":2228,"children":2229},{"style":472},[2230],{"type":58,"value":757},{"type":53,"tag":449,"props":2232,"children":2233},{"style":461},[2234],{"type":58,"value":2235},"n",{"type":53,"tag":449,"props":2237,"children":2238},{"style":765},[2239],{"type":58,"value":2240},"s",{"type":53,"tag":449,"props":2242,"children":2243},{"style":472},[2244],{"type":58,"value":773},{"type":53,"tag":449,"props":2246,"children":2247},{"style":461},[2248],{"type":58,"value":778},{"type":53,"tag":449,"props":2250,"children":2251},{"style":472},[2252],{"type":58,"value":783},{"type":53,"tag":449,"props":2254,"children":2255},{"style":461},[2256],{"type":58,"value":788},{"type":53,"tag":449,"props":2258,"children":2259},{"style":765},[2260],{"type":58,"value":768},{"type":53,"tag":449,"props":2262,"children":2263},{"style":472},[2264],{"type":58,"value":773},{"type":53,"tag":449,"props":2266,"children":2267},{"style":461},[2268],{"type":58,"value":2269}," --expand",{"type":53,"tag":449,"props":2271,"children":2272},{"style":461},[2273],{"type":58,"value":2274}," runtime\n",{"type":53,"tag":60,"props":2276,"children":2277},{},[2278,2283],{"type":53,"tag":234,"props":2279,"children":2280},{},[2281],{"type":58,"value":2282},"B. Logs clean post-boot?",{"type":58,"value":2284}," Read the run log to confirm startup finished without warnings or silent fallbacks:",{"type":53,"tag":438,"props":2286,"children":2288},{"className":440,"code":2287,"language":442,"meta":443,"style":443},"hf spaces logs \u003Cns>\u002F\u003Cname> --tail 200\n",[2289],{"type":53,"tag":88,"props":2290,"children":2291},{"__ignoreMap":443},[2292],{"type":53,"tag":449,"props":2293,"children":2294},{"class":451,"line":452},[2295,2299,2303,2308,2312,2316,2320,2324,2328,2332,2336,2340,2344,2349],{"type":53,"tag":449,"props":2296,"children":2297},{"style":456},[2298],{"type":58,"value":93},{"type":53,"tag":449,"props":2300,"children":2301},{"style":461},[2302],{"type":58,"value":464},{"type":53,"tag":449,"props":2304,"children":2305},{"style":461},[2306],{"type":58,"value":2307}," logs",{"type":53,"tag":449,"props":2309,"children":2310},{"style":472},[2311],{"type":58,"value":757},{"type":53,"tag":449,"props":2313,"children":2314},{"style":461},[2315],{"type":58,"value":2235},{"type":53,"tag":449,"props":2317,"children":2318},{"style":765},[2319],{"type":58,"value":2240},{"type":53,"tag":449,"props":2321,"children":2322},{"style":472},[2323],{"type":58,"value":773},{"type":53,"tag":449,"props":2325,"children":2326},{"style":461},[2327],{"type":58,"value":778},{"type":53,"tag":449,"props":2329,"children":2330},{"style":472},[2331],{"type":58,"value":783},{"type":53,"tag":449,"props":2333,"children":2334},{"style":461},[2335],{"type":58,"value":788},{"type":53,"tag":449,"props":2337,"children":2338},{"style":765},[2339],{"type":58,"value":768},{"type":53,"tag":449,"props":2341,"children":2342},{"style":472},[2343],{"type":58,"value":773},{"type":53,"tag":449,"props":2345,"children":2346},{"style":461},[2347],{"type":58,"value":2348}," --tail",{"type":53,"tag":449,"props":2350,"children":2351},{"style":503},[2352],{"type":58,"value":2353}," 200\n",{"type":53,"tag":60,"props":2355,"children":2356},{},[2357,2359,2364],{"type":58,"value":2358},"Look for model-load completion, no import warnings, no \"falling back to CPU\" \u002F dtype downgrade messages, no ",{"type":53,"tag":88,"props":2360,"children":2362},{"className":2361},[],[2363],{"type":58,"value":2191},{"type":58,"value":2365}," masking a half-broken app.",{"type":53,"tag":60,"props":2367,"children":2368},{},[2369,2374,2376,2382],{"type":53,"tag":234,"props":2370,"children":2371},{},[2372],{"type":58,"value":2373},"C. API actually responds.",{"type":58,"value":2375}," With logs still tailing in another terminal (",{"type":53,"tag":88,"props":2377,"children":2379},{"className":2378},[],[2380],{"type":58,"value":2381},"hf spaces logs \u003Cns>\u002F\u003Cname> --follow",{"type":58,"value":2383},"), call the endpoint:",{"type":53,"tag":438,"props":2385,"children":2387},{"className":1475,"code":2386,"language":1477,"meta":443,"style":443},"from gradio_client import Client, handle_file\nimport os\nc = Client(\"\u003Cns>\u002F\u003Cname>\", token=os.environ[\"HF_TOKEN\"], httpx_kwargs={\"timeout\": 600})\nprint(c.view_api())                    # discover endpoints — don't guess\nresult = c.predict(..., api_name=\"\u002Fgenerate\")\n",[2388],{"type":53,"tag":88,"props":2389,"children":2390},{"__ignoreMap":443},[2391,2399,2407,2415,2423],{"type":53,"tag":449,"props":2392,"children":2393},{"class":451,"line":452},[2394],{"type":53,"tag":449,"props":2395,"children":2396},{},[2397],{"type":58,"value":2398},"from gradio_client import Client, handle_file\n",{"type":53,"tag":449,"props":2400,"children":2401},{"class":451,"line":845},[2402],{"type":53,"tag":449,"props":2403,"children":2404},{},[2405],{"type":58,"value":2406},"import os\n",{"type":53,"tag":449,"props":2408,"children":2409},{"class":451,"line":885},[2410],{"type":53,"tag":449,"props":2411,"children":2412},{},[2413],{"type":58,"value":2414},"c = Client(\"\u003Cns>\u002F\u003Cname>\", token=os.environ[\"HF_TOKEN\"], httpx_kwargs={\"timeout\": 600})\n",{"type":53,"tag":449,"props":2416,"children":2417},{"class":451,"line":941},[2418],{"type":53,"tag":449,"props":2419,"children":2420},{},[2421],{"type":58,"value":2422},"print(c.view_api())                    # discover endpoints — don't guess\n",{"type":53,"tag":449,"props":2424,"children":2425},{"class":451,"line":972},[2426],{"type":53,"tag":449,"props":2427,"children":2428},{},[2429],{"type":58,"value":2430},"result = c.predict(..., api_name=\"\u002Fgenerate\")\n",{"type":53,"tag":60,"props":2432,"children":2433},{},[2434,2439],{"type":53,"tag":234,"props":2435,"children":2436},{},[2437],{"type":58,"value":2438},"D. Sniff output AND logs.",{"type":58,"value":2440}," HTTP 200 ≠ correct output. Check both:",{"type":53,"tag":438,"props":2442,"children":2444},{"className":1475,"code":2443,"language":1477,"meta":443,"style":443},"head = open(result, \"rb\").read(16)\n# glTF \u002F \\x89PNG \u002F RIFF…WEBP \u002F RIFF…WAVE \u002F [4:8]==b\"ftyp\" → png\u002Fjpg\u002Fwebp\u002Fwav\u002Fmp4\n",[2445],{"type":53,"tag":88,"props":2446,"children":2447},{"__ignoreMap":443},[2448,2456],{"type":53,"tag":449,"props":2449,"children":2450},{"class":451,"line":452},[2451],{"type":53,"tag":449,"props":2452,"children":2453},{},[2454],{"type":58,"value":2455},"head = open(result, \"rb\").read(16)\n",{"type":53,"tag":449,"props":2457,"children":2458},{"class":451,"line":845},[2459],{"type":53,"tag":449,"props":2460,"children":2461},{},[2462],{"type":58,"value":2463},"# glTF \u002F \\x89PNG \u002F RIFF…WEBP \u002F RIFF…WAVE \u002F [4:8]==b\"ftyp\" → png\u002Fjpg\u002Fwebp\u002Fwav\u002Fmp4\n",{"type":53,"tag":60,"props":2465,"children":2466},{},[2467],{"type":58,"value":2468},"And look at the run log emitted during the call — silent fallbacks (model snapping to a different size, missing optional dep, dtype downgrade) only show up there.",{"type":53,"tag":60,"props":2470,"children":2471},{},[2472,2474,2479,2481,2489],{"type":58,"value":2473},"Full smoke-test patterns (streaming endpoints, OAuth-gated Spaces, ",{"type":53,"tag":88,"props":2475,"children":2477},{"className":2476},[],[2478],{"type":58,"value":1976},{"type":58,"value":2480}," custom routes): ",{"type":53,"tag":134,"props":2482,"children":2483},{"href":2167},[2484],{"type":53,"tag":88,"props":2485,"children":2487},{"className":2486},[],[2488],{"type":58,"value":2167},{"type":58,"value":111},{"type":53,"tag":66,"props":2491,"children":2493},{"id":2492},"_8-permanent-storage-buckets",[2494],{"type":58,"value":2495},"8. Permanent storage (buckets)",{"type":53,"tag":60,"props":2497,"children":2498},{},[2499,2501,2507,2509,2514],{"type":58,"value":2500},"Spaces are stateless — ",{"type":53,"tag":88,"props":2502,"children":2504},{"className":2503},[],[2505],{"type":58,"value":2506},"\u002Fdata",{"type":58,"value":2508}," is wiped on restart. If the Space needs to persist user uploads, generations, logs, or interact with a long-lived store, mount a ",{"type":53,"tag":234,"props":2510,"children":2511},{},[2512],{"type":58,"value":2513},"bucket",{"type":58,"value":1208},{"type":53,"tag":438,"props":2516,"children":2518},{"className":440,"code":2517,"language":442,"meta":443,"style":443},"hf buckets create \u003Cns>\u002F\u003Cbucket-name>                                          # --private optional\nhf spaces volumes set \u003Cns>\u002F\u003Cspace> -v hf:\u002F\u002Fbuckets\u002F\u003Cns>\u002F\u003Cbucket-name>:\u002Fdata   # read-write at \u002Fdata\n",[2519],{"type":53,"tag":88,"props":2520,"children":2521},{"__ignoreMap":443},[2522,2580],{"type":53,"tag":449,"props":2523,"children":2524},{"class":451,"line":452},[2525,2529,2534,2538,2542,2546,2550,2554,2558,2562,2567,2571,2575],{"type":53,"tag":449,"props":2526,"children":2527},{"style":456},[2528],{"type":58,"value":93},{"type":53,"tag":449,"props":2530,"children":2531},{"style":461},[2532],{"type":58,"value":2533}," buckets",{"type":53,"tag":449,"props":2535,"children":2536},{"style":461},[2537],{"type":58,"value":752},{"type":53,"tag":449,"props":2539,"children":2540},{"style":472},[2541],{"type":58,"value":757},{"type":53,"tag":449,"props":2543,"children":2544},{"style":461},[2545],{"type":58,"value":2235},{"type":53,"tag":449,"props":2547,"children":2548},{"style":765},[2549],{"type":58,"value":2240},{"type":53,"tag":449,"props":2551,"children":2552},{"style":472},[2553],{"type":58,"value":773},{"type":53,"tag":449,"props":2555,"children":2556},{"style":461},[2557],{"type":58,"value":778},{"type":53,"tag":449,"props":2559,"children":2560},{"style":472},[2561],{"type":58,"value":783},{"type":53,"tag":449,"props":2563,"children":2564},{"style":461},[2565],{"type":58,"value":2566},"bucket-nam",{"type":53,"tag":449,"props":2568,"children":2569},{"style":765},[2570],{"type":58,"value":768},{"type":53,"tag":449,"props":2572,"children":2573},{"style":472},[2574],{"type":58,"value":773},{"type":53,"tag":449,"props":2576,"children":2577},{"style":1233},[2578],{"type":58,"value":2579},"                                          # --private optional\n",{"type":53,"tag":449,"props":2581,"children":2582},{"class":451,"line":845},[2583,2587,2591,2596,2601,2605,2609,2613,2617,2621,2625,2630,2634,2638,2643,2648,2652,2656,2660,2664,2668,2672,2676,2680,2684,2689],{"type":53,"tag":449,"props":2584,"children":2585},{"style":456},[2586],{"type":58,"value":93},{"type":53,"tag":449,"props":2588,"children":2589},{"style":461},[2590],{"type":58,"value":464},{"type":53,"tag":449,"props":2592,"children":2593},{"style":461},[2594],{"type":58,"value":2595}," volumes",{"type":53,"tag":449,"props":2597,"children":2598},{"style":461},[2599],{"type":58,"value":2600}," set",{"type":53,"tag":449,"props":2602,"children":2603},{"style":472},[2604],{"type":58,"value":757},{"type":53,"tag":449,"props":2606,"children":2607},{"style":461},[2608],{"type":58,"value":2235},{"type":53,"tag":449,"props":2610,"children":2611},{"style":765},[2612],{"type":58,"value":2240},{"type":53,"tag":449,"props":2614,"children":2615},{"style":472},[2616],{"type":58,"value":773},{"type":53,"tag":449,"props":2618,"children":2619},{"style":461},[2620],{"type":58,"value":778},{"type":53,"tag":449,"props":2622,"children":2623},{"style":472},[2624],{"type":58,"value":783},{"type":53,"tag":449,"props":2626,"children":2627},{"style":461},[2628],{"type":58,"value":2629},"spac",{"type":53,"tag":449,"props":2631,"children":2632},{"style":765},[2633],{"type":58,"value":768},{"type":53,"tag":449,"props":2635,"children":2636},{"style":472},[2637],{"type":58,"value":773},{"type":53,"tag":449,"props":2639,"children":2640},{"style":461},[2641],{"type":58,"value":2642}," -v",{"type":53,"tag":449,"props":2644,"children":2645},{"style":461},[2646],{"type":58,"value":2647}," hf:\u002F\u002Fbuckets\u002F",{"type":53,"tag":449,"props":2649,"children":2650},{"style":472},[2651],{"type":58,"value":783},{"type":53,"tag":449,"props":2653,"children":2654},{"style":461},[2655],{"type":58,"value":2235},{"type":53,"tag":449,"props":2657,"children":2658},{"style":765},[2659],{"type":58,"value":2240},{"type":53,"tag":449,"props":2661,"children":2662},{"style":472},[2663],{"type":58,"value":773},{"type":53,"tag":449,"props":2665,"children":2666},{"style":461},[2667],{"type":58,"value":778},{"type":53,"tag":449,"props":2669,"children":2670},{"style":472},[2671],{"type":58,"value":783},{"type":53,"tag":449,"props":2673,"children":2674},{"style":461},[2675],{"type":58,"value":2566},{"type":53,"tag":449,"props":2677,"children":2678},{"style":765},[2679],{"type":58,"value":768},{"type":53,"tag":449,"props":2681,"children":2682},{"style":472},[2683],{"type":58,"value":773},{"type":53,"tag":449,"props":2685,"children":2686},{"style":461},[2687],{"type":58,"value":2688},":\u002Fdata",{"type":53,"tag":449,"props":2690,"children":2691},{"style":1233},[2692],{"type":58,"value":2693},"   # read-write at \u002Fdata\n",{"type":53,"tag":60,"props":2695,"children":2696},{},[2697,2699,2704,2706,2715],{"type":58,"value":2698},"Buckets are paid storage; check ",{"type":53,"tag":88,"props":2700,"children":2702},{"className":2701},[],[2703],{"type":58,"value":168},{"type":58,"value":2705}," and confirm with the user. Full patterns (read-fast \u002F write-durable, public bucket URLs, model-cache anti-pattern): ",{"type":53,"tag":134,"props":2707,"children":2709},{"href":2708},"references\u002Fbuckets.md",[2710],{"type":53,"tag":88,"props":2711,"children":2713},{"className":2712},[],[2714],{"type":58,"value":2708},{"type":58,"value":111},{"type":53,"tag":66,"props":2717,"children":2719},{"id":2718},"_9-when-things-break",[2720],{"type":58,"value":2721},"9. When things break",{"type":53,"tag":60,"props":2723,"children":2724},{},[2725],{"type":58,"value":2726},"Order of operations:",{"type":53,"tag":78,"props":2728,"children":2729},{},[2730,2758,2774],{"type":53,"tag":82,"props":2731,"children":2732},{},[2733,2735,2741,2743,2749,2751,2756],{"type":58,"value":2734},"Read the logs: ",{"type":53,"tag":88,"props":2736,"children":2738},{"className":2737},[],[2739],{"type":58,"value":2740},"hf spaces logs \u003Cid> --build --follow",{"type":58,"value":2742}," (build error) or ",{"type":53,"tag":88,"props":2744,"children":2746},{"className":2745},[],[2747],{"type":58,"value":2748},"hf spaces logs \u003Cid> --follow",{"type":58,"value":2750}," (runtime error). Find the ",{"type":53,"tag":234,"props":2752,"children":2753},{},[2754],{"type":58,"value":2755},"first",{"type":58,"value":2757}," error, not the last.",{"type":53,"tag":82,"props":2759,"children":2760},{},[2761,2763,2772],{"type":58,"value":2762},"Grep ",{"type":53,"tag":134,"props":2764,"children":2766},{"href":2765},"references\u002Fknown-errors.md",[2767],{"type":53,"tag":88,"props":2768,"children":2770},{"className":2769},[],[2771],{"type":58,"value":2765},{"type":58,"value":2773}," for the error string. Check if this is a known issue before trying your own fix — most common ZeroGPU \u002F Gradio \u002F dependency errors have a 1–2 line fix there.",{"type":53,"tag":82,"props":2775,"children":2776},{},[2777,2779,2787],{"type":58,"value":2778},"Iterate using the cheapest rung from ",{"type":53,"tag":134,"props":2780,"children":2781},{"href":2167},[2782],{"type":53,"tag":88,"props":2783,"children":2785},{"className":2784},[],[2786],{"type":58,"value":2167},{"type":58,"value":2788},". The vast majority of issues resolve with log-reading + smoke-test loops; interactive dev mode + SSH is a heavy-hammer last resort.",{"type":53,"tag":60,"props":2790,"children":2791},{},[2792],{"type":58,"value":2793},"If you solve an error that wasn't in the known-errors list, suggest the user PR it back to this skill so future runs benefit.",{"type":53,"tag":2795,"props":2796,"children":2797},"hr",{},[],{"type":53,"tag":66,"props":2799,"children":2801},{"id":2800},"reference-index",[2802],{"type":58,"value":2803},"Reference index",{"type":53,"tag":2805,"props":2806,"children":2807},"table",{},[2808,2827],{"type":53,"tag":2809,"props":2810,"children":2811},"thead",{},[2812],{"type":53,"tag":2813,"props":2814,"children":2815},"tr",{},[2816,2822],{"type":53,"tag":2817,"props":2818,"children":2819},"th",{},[2820],{"type":58,"value":2821},"When to read",{"type":53,"tag":2817,"props":2823,"children":2824},{},[2825],{"type":58,"value":2826},"File",{"type":53,"tag":2828,"props":2829,"children":2830},"tbody",{},[2831,2856,2880,2904,2923,2961,2980,2999,3018],{"type":53,"tag":2813,"props":2832,"children":2833},{},[2834,2845],{"type":53,"tag":2835,"props":2836,"children":2837},"td",{},[2838,2843],{"type":53,"tag":234,"props":2839,"children":2840},{},[2841],{"type":58,"value":2842},"How ZeroGPU works",{"type":58,"value":2844}," + correct patterns (decorator, sizing, pickle, generators, real-time, AoTI)",{"type":53,"tag":2835,"props":2846,"children":2847},{},[2848],{"type":53,"tag":134,"props":2849,"children":2850},{"href":643},[2851],{"type":53,"tag":88,"props":2852,"children":2854},{"className":2853},[],[2855],{"type":58,"value":643},{"type":53,"tag":2813,"props":2857,"children":2858},{},[2859,2869],{"type":53,"tag":2835,"props":2860,"children":2861},{},[2862,2867],{"type":53,"tag":234,"props":2863,"children":2864},{},[2865],{"type":58,"value":2866},"Iterate + debug",{"type":58,"value":2868},": logs, rung ladder, smoke testing (and dev mode + SSH as a last resort)",{"type":53,"tag":2835,"props":2870,"children":2871},{},[2872],{"type":53,"tag":134,"props":2873,"children":2874},{"href":2167},[2875],{"type":53,"tag":88,"props":2876,"children":2878},{"className":2877},[],[2879],{"type":58,"value":2167},{"type":53,"tag":2813,"props":2881,"children":2882},{},[2883,2893],{"type":53,"tag":2835,"props":2884,"children":2885},{},[2886,2891],{"type":53,"tag":234,"props":2887,"children":2888},{},[2889],{"type":58,"value":2890},"Error-string lookup",{"type":58,"value":2892}," — the single place for all error symptoms (Spaces, ZeroGPU, Gradio, deps)",{"type":53,"tag":2835,"props":2894,"children":2895},{},[2896],{"type":53,"tag":134,"props":2897,"children":2898},{"href":2765},[2899],{"type":53,"tag":88,"props":2900,"children":2902},{"className":2901},[],[2903],{"type":58,"value":2765},{"type":53,"tag":2813,"props":2905,"children":2906},{},[2907,2912],{"type":53,"tag":2835,"props":2908,"children":2909},{},[2910],{"type":58,"value":2911},"Pinning deps, picking wheels, torch-family alignment",{"type":53,"tag":2835,"props":2913,"children":2914},{},[2915],{"type":53,"tag":134,"props":2916,"children":2917},{"href":1937},[2918],{"type":53,"tag":88,"props":2919,"children":2921},{"className":2920},[],[2922],{"type":58,"value":1937},{"type":53,"tag":2813,"props":2924,"children":2925},{},[2926,2950],{"type":53,"tag":2835,"props":2927,"children":2928},{},[2929,2934,2936,2941,2943,2949],{"type":53,"tag":88,"props":2930,"children":2932},{"className":2931},[],[2933],{"type":58,"value":1692},{"type":58,"value":2935}," (add when it makes sense), themes, custom HTML components, ",{"type":53,"tag":88,"props":2937,"children":2939},{"className":2938},[],[2940],{"type":58,"value":1976},{"type":58,"value":2942},", MCP server (",{"type":53,"tag":88,"props":2944,"children":2946},{"className":2945},[],[2947],{"type":58,"value":2948},"mcp_server=True",{"type":58,"value":334},{"type":53,"tag":2835,"props":2951,"children":2952},{},[2953],{"type":53,"tag":134,"props":2954,"children":2955},{"href":1715},[2956],{"type":53,"tag":88,"props":2957,"children":2959},{"className":2958},[],[2960],{"type":58,"value":1715},{"type":53,"tag":2813,"props":2962,"children":2963},{},[2964,2969],{"type":53,"tag":2835,"props":2965,"children":2966},{},[2967],{"type":58,"value":2968},"Persistent storage, public bucket URLs",{"type":53,"tag":2835,"props":2970,"children":2971},{},[2972],{"type":53,"tag":134,"props":2973,"children":2974},{"href":2708},[2975],{"type":53,"tag":88,"props":2976,"children":2978},{"className":2977},[],[2979],{"type":58,"value":2708},{"type":53,"tag":2813,"props":2981,"children":2982},{},[2983,2988],{"type":53,"tag":2835,"props":2984,"children":2985},{},[2986],{"type":58,"value":2987},"Community grant requests (non-PRO needing ZeroGPU)",{"type":53,"tag":2835,"props":2989,"children":2990},{},[2991],{"type":53,"tag":134,"props":2992,"children":2993},{"href":407},[2994],{"type":53,"tag":88,"props":2995,"children":2997},{"className":2996},[],[2998],{"type":58,"value":407},{"type":53,"tag":2813,"props":3000,"children":3001},{},[3002,3007],{"type":53,"tag":2835,"props":3003,"children":3004},{},[3005],{"type":58,"value":3006},"Provider proxy (zero-VRAM big LLM via Cerebras \u002F Fireworks \u002F Together \u002F etc.)",{"type":53,"tag":2835,"props":3008,"children":3009},{},[3010],{"type":53,"tag":134,"props":3011,"children":3012},{"href":714},[3013],{"type":53,"tag":88,"props":3014,"children":3016},{"className":3015},[],[3017],{"type":58,"value":714},{"type":53,"tag":2813,"props":3019,"children":3020},{},[3021,3029],{"type":53,"tag":2835,"props":3022,"children":3023},{},[3024],{"type":53,"tag":234,"props":3025,"children":3026},{},[3027],{"type":58,"value":3028},"3D Spaces: generation, CUDA extensions, output formats, and model recipes (incl. gaussian splatting)",{"type":53,"tag":2835,"props":3030,"children":3031},{},[3032],{"type":53,"tag":134,"props":3033,"children":3035},{"href":3034},"references\u002F3d-generation.md",[3036],{"type":53,"tag":88,"props":3037,"children":3039},{"className":3038},[],[3040],{"type":58,"value":3034},{"type":53,"tag":3042,"props":3043,"children":3044},"style",{},[3045],{"type":58,"value":3046},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":3048,"total":3215},[3049,3068,3082,3096,3110,3123,3134,3149,3163,3173,3186,3200],{"slug":3050,"name":3050,"fn":3051,"description":3052,"org":3053,"tags":3054,"stars":3065,"repoUrl":3066,"updatedAt":3067},"train-sentence-transformers","train sentence-transformers models","Train or fine-tune sentence-transformers models across `SentenceTransformer` (bi-encoder; dense or static embedding model; for retrieval, similarity, clustering, classification, paraphrase mining, dedup, multimodal), `CrossEncoder` (reranker; pair scoring for two-stage retrieval \u002F pair classification), and `SparseEncoder` (SPLADE, sparse embedding model; for learned-sparse retrieval). Covers loss selection, hard-negative mining, evaluators, distillation, LoRA, Matryoshka, and Hugging Face Hub publishing. Use for any sentence-transformers training task.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3055,3058,3059,3060,3062],{"name":3056,"slug":3057,"type":15},"Deep Learning","deep-learning",{"name":9,"slug":17,"type":15},{"name":19,"slug":20,"type":15},{"name":3061,"slug":1477,"type":15},"Python",{"name":3063,"slug":3064,"type":15},"Search","search",18914,"https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Fsentence-transformers","2026-05-08T05:09:16.820066",{"slug":3069,"name":3069,"fn":3070,"description":3071,"org":3072,"tags":3073,"stars":3079,"repoUrl":3080,"updatedAt":3081},"trl-training","train and fine-tune LLMs with TRL","Train and fine-tune transformer language models using TRL (Transformers Reinforcement Learning). Supports SFT, DPO, GRPO, KTO, RLOO and Reward Model training via CLI commands.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3074,3075,3076,3077,3078],{"name":31,"slug":32,"type":15},{"name":3056,"slug":3057,"type":15},{"name":9,"slug":17,"type":15},{"name":19,"slug":20,"type":15},{"name":3061,"slug":1477,"type":15},18850,"https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftrl","2026-04-06T18:25:32.746828",{"slug":189,"name":189,"fn":3083,"description":3084,"org":3085,"tags":3086,"stars":36,"repoUrl":37,"updatedAt":3095},"manage Hugging Face Hub resources via CLI","Hugging Face Hub CLI (`hf`) for downloading, uploading, and managing models, datasets, spaces, buckets, repos, papers, jobs, and more on the Hugging Face Hub. Use when: handling authentication; managing local cache; managing Hugging Face Buckets; running or scheduling jobs on Hugging Face infrastructure; managing Hugging Face repos; discussions and pull requests; browsing models, datasets and spaces; reading, searching, or browsing academic papers; managing collections; querying datasets; configuring spaces; setting up webhooks; or deploying and managing HF Inference Endpoints. Make sure to use this skill whenever the user mentions 'hf', 'huggingface', 'Hugging Face', 'huggingface-cli', or 'hugging face cli', or wants to do anything related to the Hugging Face ecosystem and to AI and ML in general. Also use for cloud storage needs like training checkpoints, data pipelines, or agent traces. Use even if the user doesn't explicitly ask for a CLI command. Replaces the deprecated `huggingface-cli`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3087,3090,3093,3094],{"name":3088,"slug":3089,"type":15},"CLI","cli",{"name":3091,"slug":3092,"type":15},"Datasets","datasets",{"name":9,"slug":17,"type":15},{"name":19,"slug":20,"type":15},"2026-04-06T18:25:34.020855",{"slug":3097,"name":3097,"fn":3098,"description":3099,"org":3100,"tags":3101,"stars":36,"repoUrl":37,"updatedAt":3109},"hf-cloud-aws-context-discovery","discover local AWS environment context","Discover the user's local AWS context (active profile, region, account ID, caller identity) at the start of any AWS task. Use this skill before any other AWS work — deploying to SageMaker, creating resources, calling AWS APIs, or anything that touches an AWS account. Use it especially when the user has not specified a region or profile explicitly, when they say things like \"use my AWS account\", \"deploy to AWS\", \"use my profile\", or when about to make any AWS CLI or SDK call. Never guess the region or account ID — always use this skill to read it from the local configuration first.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3102,3105,3106],{"name":3103,"slug":3104,"type":15},"AWS","aws",{"name":3088,"slug":3089,"type":15},{"name":3107,"slug":3108,"type":15},"Configuration","configuration","2026-07-08T05:55:33.716099",{"slug":3111,"name":3111,"fn":3112,"description":3113,"org":3114,"tags":3115,"stars":36,"repoUrl":37,"updatedAt":3122},"hf-cloud-python-env-setup","set up Python environments for AWS","Set up an isolated Python environment for SageMaker \u002F AWS work, with the right Python version and current boto3. Use this skill whenever Python code will be executed for a SageMaker deployment, training job, or any AWS automation — including when about to run `pip install`, when about to invoke `boto3`, when creating or activating a virtualenv, or when the user asks to \"set up the environment\". Never use system Python and never `pip install` into it. Always isolate. This skill prevents the most common failure modes: wrong Python version, dependency conflicts, and stale SDKs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3116,3117,3118,3121],{"name":31,"slug":32,"type":15},{"name":3103,"slug":3104,"type":15},{"name":3119,"slug":3120,"type":15},"Engineering","engineering",{"name":3061,"slug":1477,"type":15},"2026-07-08T05:55:32.505017",{"slug":3124,"name":3124,"fn":3125,"description":3126,"org":3127,"tags":3128,"stars":36,"repoUrl":37,"updatedAt":3133},"hf-cloud-sagemaker-deployment-planner","plan model deployments to Amazon SageMaker","Plan and coordinate the deployment of a model to Amazon SageMaker AI. Use this skill whenever the user wants to deploy, host, serve, or expose a model on SageMaker or AWS — including phrases like \"deploy a model\", \"host this LLM on AWS\", \"serve this embedding model\", \"deploy a reranker\", \"deploy a text-to-image \u002F diffusion model\", \"host this for async inference\", \"create an endpoint\", \"serve my fine-tuned model\", or any request that involves making a model available for inference on AWS. Use this even when the user is vague (e.g. \"I just want to get this running on AWS, you figure it out\"). Works for text-generation LLMs, embedding models, rerankers, classifiers, text-to-image \u002F diffusion models — picks the right serving stack and chooses between real-time and async inference. This is the entry-point skill for SageMaker deployment work — it asks clarifying questions, picks a deployment pathway, and coordinates the other deployment skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3129,3130,3131,3132],{"name":31,"slug":32,"type":15},{"name":3103,"slug":3104,"type":15},{"name":22,"slug":23,"type":15},{"name":9,"slug":17,"type":15},"2026-07-08T05:55:37.387689",{"slug":3135,"name":3135,"fn":3136,"description":3137,"org":3138,"tags":3139,"stars":36,"repoUrl":37,"updatedAt":3148},"hf-cloud-sagemaker-iam-preflight","configure SageMaker IAM roles","Ensure a usable SageMaker execution role exists before deploying or training. Use this skill whenever about to create a SageMaker endpoint, model, training job, or any resource that requires an execution role. Use it especially when the user has not provided a role ARN explicitly, when scripts are about to call `iam:CreateRole`, or when an AccessDenied error mentions an IAM action. Never blindly call `iam:CreateRole` — always check for existing roles first. This skill prevents the most common SageMaker deployment failure: trying to create IAM resources from an SSO principal that has no IAM write permissions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3140,3141,3142,3145],{"name":31,"slug":32,"type":15},{"name":3103,"slug":3104,"type":15},{"name":3143,"slug":3144,"type":15},"Permissions","permissions",{"name":3146,"slug":3147,"type":15},"Security","security","2026-07-08T05:55:34.948771",{"slug":3150,"name":3150,"fn":3151,"description":3152,"org":3153,"tags":3154,"stars":36,"repoUrl":37,"updatedAt":3162},"hf-cloud-sagemaker-production-defaults","create production-ready SageMaker endpoints","Create a SageMaker endpoint (real-time or async) with autoscaling, CloudWatch alarms, and tagging enabled by default. Use this skill whenever about to create a SageMaker endpoint, write deployment code that calls `create_endpoint`, or finalize a deployment after the image URI and IAM role are known. Provides deploy.py for real-time endpoints and deploy_async.py for async endpoints (with genuine scale-to-zero support). This is the last step in the SageMaker deployment workflow. Never generate a bare `create_endpoint` call without these defaults — endpoints without autoscaling or alarms are demos, not deployments.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3155,3156,3157,3158,3159],{"name":31,"slug":32,"type":15},{"name":3103,"slug":3104,"type":15},{"name":22,"slug":23,"type":15},{"name":9,"slug":17,"type":15},{"name":3160,"slug":3161,"type":15},"Monitoring","monitoring","2026-07-08T05:55:38.664702",{"slug":3164,"name":3164,"fn":3165,"description":3166,"org":3167,"tags":3168,"stars":36,"repoUrl":37,"updatedAt":3172},"hf-cloud-serving-image-selection","select SageMaker serving containers","Pick the right serving container for a SageMaker model deployment and find its current image URI. Use this skill whenever about to deploy a model to a SageMaker endpoint and an image URI needs to be chosen — including when the user says \"deploy this LLM\", \"host this HuggingFace model\", \"serve this fine-tuned model\", \"deploy this embedding model\", \"host a reranker\", \"serve a sentence-transformers model\", or when about to hardcode any container URI in deployment code. HuggingFace-curated Deep Learning Containers are ALWAYS preferred: HuggingFace vLLM (LLMs and generative rerankers), HuggingFace vLLM-Omni (multimodal), TEI (embeddings\u002Fcross-encoder rerankers), HF Inference Toolkit (other transformers). Generic images (AWS vLLM, DJL-LMI, SGLang) are used only when no HuggingFace image is compatible — never merely because they carry a newer version. Never hardcode a container URI from memory and never default to TGI. Prevents stale-image failures and wrong-region URIs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3169,3170,3171],{"name":31,"slug":32,"type":15},{"name":3103,"slug":3104,"type":15},{"name":22,"slug":23,"type":15},"2026-07-08T05:55:36.173465",{"slug":3174,"name":3174,"fn":3175,"description":3176,"org":3177,"tags":3178,"stars":36,"repoUrl":37,"updatedAt":3185},"hf-mcp","access Hugging Face Hub via MCP","Use Hugging Face Hub via MCP server tools. Search models, datasets, Spaces, papers. Get repo details, fetch documentation, run compute jobs, and use Gradio Spaces as AI tools. Available when connected to the HF MCP server.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3179,3180,3181,3182],{"name":3091,"slug":3092,"type":15},{"name":9,"slug":17,"type":15},{"name":19,"slug":20,"type":15},{"name":3183,"slug":3184,"type":15},"MCP","mcp","2026-04-06T18:25:50.364185",{"slug":3187,"name":3187,"fn":3188,"description":3189,"org":3190,"tags":3191,"stars":36,"repoUrl":37,"updatedAt":3199},"hf-mem","estimate memory for Hugging Face models","Hugging Face CLI to estimate the required memory to load Safetensors or GGUF model weights for inference from the Hugging Face Hub",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3192,3193,3194,3195,3196],{"name":31,"slug":32,"type":15},{"name":3088,"slug":3089,"type":15},{"name":9,"slug":17,"type":15},{"name":19,"slug":20,"type":15},{"name":3197,"slug":3198,"type":15},"Performance","performance","2026-06-13T07:23:57.101435",{"slug":3201,"name":3201,"fn":3202,"description":3203,"org":3204,"tags":3205,"stars":36,"repoUrl":37,"updatedAt":3214},"huggingface-best","find and compare Hugging Face models","Use when the user asks about finding the best, top, or recommended model for a task, wants to know what AI model to use, or wants to compare models by benchmark scores. Triggers on: \"best model for X\", \"what model should I use for\", \"top models for [task]\", \"which model runs on my laptop\u002Fmachine\u002Fdevice\", \"recommend a model for\", \"what LLM should I use for\", \"compare models for\", \"what's state of the art for\", or any question about choosing an AI model for a specific use case. Always use this skill when the user wants model recommendations or comparisons, even if they don't explicitly mention HuggingFace or benchmarks.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3206,3209,3210,3211],{"name":3207,"slug":3208,"type":15},"Analytics","analytics",{"name":9,"slug":17,"type":15},{"name":19,"slug":20,"type":15},{"name":3212,"slug":3213,"type":15},"Research","research","2026-04-24T05:09:45.870658",37,{"items":3217,"total":3266},[3218,3225,3231,3238,3245,3252,3260],{"slug":189,"name":189,"fn":3083,"description":3084,"org":3219,"tags":3220,"stars":36,"repoUrl":37,"updatedAt":3095},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3221,3222,3223,3224],{"name":3088,"slug":3089,"type":15},{"name":3091,"slug":3092,"type":15},{"name":9,"slug":17,"type":15},{"name":19,"slug":20,"type":15},{"slug":3097,"name":3097,"fn":3098,"description":3099,"org":3226,"tags":3227,"stars":36,"repoUrl":37,"updatedAt":3109},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3228,3229,3230],{"name":3103,"slug":3104,"type":15},{"name":3088,"slug":3089,"type":15},{"name":3107,"slug":3108,"type":15},{"slug":3111,"name":3111,"fn":3112,"description":3113,"org":3232,"tags":3233,"stars":36,"repoUrl":37,"updatedAt":3122},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3234,3235,3236,3237],{"name":31,"slug":32,"type":15},{"name":3103,"slug":3104,"type":15},{"name":3119,"slug":3120,"type":15},{"name":3061,"slug":1477,"type":15},{"slug":3124,"name":3124,"fn":3125,"description":3126,"org":3239,"tags":3240,"stars":36,"repoUrl":37,"updatedAt":3133},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3241,3242,3243,3244],{"name":31,"slug":32,"type":15},{"name":3103,"slug":3104,"type":15},{"name":22,"slug":23,"type":15},{"name":9,"slug":17,"type":15},{"slug":3135,"name":3135,"fn":3136,"description":3137,"org":3246,"tags":3247,"stars":36,"repoUrl":37,"updatedAt":3148},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3248,3249,3250,3251],{"name":31,"slug":32,"type":15},{"name":3103,"slug":3104,"type":15},{"name":3143,"slug":3144,"type":15},{"name":3146,"slug":3147,"type":15},{"slug":3150,"name":3150,"fn":3151,"description":3152,"org":3253,"tags":3254,"stars":36,"repoUrl":37,"updatedAt":3162},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3255,3256,3257,3258,3259],{"name":31,"slug":32,"type":15},{"name":3103,"slug":3104,"type":15},{"name":22,"slug":23,"type":15},{"name":9,"slug":17,"type":15},{"name":3160,"slug":3161,"type":15},{"slug":3164,"name":3164,"fn":3165,"description":3166,"org":3261,"tags":3262,"stars":36,"repoUrl":37,"updatedAt":3172},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3263,3264,3265],{"name":31,"slug":32,"type":15},{"name":3103,"slug":3104,"type":15},{"name":22,"slug":23,"type":15},24]