openclaw plugins install command, and each plugin bundles skills - Markdown instruction files the agent reads and auto-invokes whenever a request matches, or that you trigger by name. Because skills shell out through the agent’s built-in Bash tools, a plugin can wire in any local CLI without hosting a server or registering an API. Teams use OpenClaw to automate multi-step work while keeping the heavy reasoning on their primary model and offloading the cheap, repetitive steps elsewhere.
ZeroGPU is an ultra-fast, compute-efficient inference provider for apps and agents. We run purpose-built small and nano language models across an edge-powered network for the high-volume, purpose-specific tasks your app or agent runs constantly. Plug in our OpenAI-compatible API and you’re live - zero GPU infrastructure, serverless, auto-scaling by default.
Overview
This guide walks through installing thezerogpu-router plugin, which turns every ZeroGPU CLI command into an OpenClaw skill your agent can call on its own. You’ll install the zerogpu CLI, authenticate once, add the plugin from ClawHub, and try both auto-invoked and manual skills. By the end your OpenClaw agent can hand off cheap, well-defined NLP work - classification, entity and PII extraction, summarization, and short chat - to ZeroGPU’s edge-optimized models, cutting token spend without changing the model that does your agent’s reasoning.
Cookbook
For a runnable, real-world example, see Build a PII-Safe Inbox Summarizer with Your OpenClaw Assistant. It walks through saving a triage workflow to your assistant once, then having it redact PII, summarize, and label every message you forward automatically, all on ZeroGPU’s nano models.For more worked examples, browse the cookbook index for
end-to-end walkthroughs of classification, extraction, and PII workflows on
ZeroGPU’s small models.
Video walkthrough
Watch theredact-pii skill mask PII in-line inside an OpenClaw agent, live:
Quickstart
Prerequisites
- An OpenClaw install with plugin API
2026.4.0or newer. - Node.js 20 or newer. The
zerogpuCLI that every skill shells out to runs on Node. - A ZeroGPU API key (starts with
zgpu-api-). - Optional: a model ID from the model catalog if you want to call a model by name. The skills already route each task to the right model, so this is only needed for custom work.
Get your ZeroGPU API key
- Sign in to the ZeroGPU dashboard.
- Open API Keys and click Create key.
- Copy the key (it starts with
zgpu-api-). No Project ID is required -zerogpu logintakes just the key.
Install the plugin
The plugin does not provision the CLI on its own, so install and log in tozerogpu first, then add the plugin from ClawHub:
clawhub:[email protected]. In sandboxed or Docker-based agents, make sure the zerogpu binary is present inside the container the agent actually runs in, not just on your host.
Your first request
Ask your agent in plain language. It picks the matching skill, runs thezerogpu CLI locally instead of the host model, and replies with the result:
Usage
Every inference skill auto-invokes when your OpenClaw agent detects a matching request, so you rarely name a skill directly: describe the task and the agent picks the route. Three skills (signin, status, and cost-savings) are manual-only and never auto-invoked - you trigger them yourself. This section covers every skill in the plugin: what it does, which ZeroGPU model it routes to, the CLI command it wraps, the arguments it accepts, and the shape of the reply you get back. Each skill returns a structured payload of { <task fields>, model, usage, savings }, which the agent renders as the result plus a trailing model: <name> · <usage> line.
How the agent picks a skill
Each skill ships with a description the OpenClaw agent reads when deciding whether to invoke it for a given message. You don’t have to remember skill names: just phrase the task. The agent keys off intent words like “summarize”, “redact”, “scrub”, “classify by”, “extract”, or “tag this as”, and off the structure of the data you supply (a flat label list implies zero-shot classification; a JSON schema with category axes implies structured classification). Arbitrary user text is passed to the CLI verbatim through a heredoc, so newlines, quotes, parentheses, and other shell metacharacters in your input are handled safely. Occasionally a reply ends with a savings line:cost-savings skill.
If the agent picks the wrong skill for a request, rephrase to drop the ambiguous trigger word, or ask for the specific skill by name.
Chat and summarization
chat
Short, single-turn chat reply for things that don’t need host-level reasoning or prior conversation context. Use it when you’d otherwise burn primary-model tokens on a one-liner.- Model:
LFM2.5-1.2B-Instruct - Wraps:
zerogpu chat - Auto-invokes on: quick factual answers, one-liners, and basic rephrasings, especially when you’ve signalled “use a small model.”
Example prompt
chat-thinking
Same shape aschat, but the model returns its reasoning trace alongside the answer.
- Model:
LFM2.5-1.2B-Thinking - Wraps:
zerogpu chat_thinking - Auto-invokes on: short logic, math, or word-problem questions where step-by-step reasoning is useful or explicitly requested.
summarize
Condense a longer passage into a short summary. Use it when you need the gist of a report, ticket thread, transcript, or document without spending primary-model tokens on the read.- Model:
llama-3.1-8b-instruct-fast - Wraps:
zerogpu summarize - Auto-invokes on: “summarize this”, “give me the gist”, “TL;DR this”, “condense this into a few sentences.”
zerogpu summarize "$(cat article.txt)".
Classification
classify-iab
Classify text against the IAB content and audience taxonomy (standard ad-tech category labels).- Model:
zlm-v1-iab-classify-edge - Wraps:
zerogpu classify_iab - Auto-invokes on: “what IAB category is this?”, “tag this article for ad targeting”, “give me the topic taxonomy.”
classify-iab-enriched
Enriched IAB classification that returns audience categories plus topics, keywords, and inferred user intent.- Model:
zlm-v2-iab-classify-edge-enriched - Wraps:
zerogpu classify_iab_enriched - Auto-invokes on: “give me topics, keywords, and intent”, any request for richer ad or audience signals than plain IAB labels.
classify-zero-shot
Zero-shot classification against an arbitrary list of candidate labels you supply at call time. The model scores every candidate and returns the best fit.- Model:
deberta-v3-small - Wraps:
zerogpu classify_zero_shot - Auto-invokes on: “is this positive, negative, or neutral?”, “tag this as bug, feature, or question”, any ask that names its own flat label set.
Example prompt
classify-structured
Schema-driven, multi-axis classification. You define each category and its allowed labels, and the model returns one chosen label per category.- Model:
gliner2-base-v1 - Wraps:
zerogpu classify_structured - Auto-invokes on: “classify by sentiment and topic”, any request that names multiple classification dimensions with explicit label sets.
Example prompt
{"sentiment":["positive","negative","neutral"],"topic":["support","billing","product"]} and calls the skill.
Illustrative reply
Extraction
extract-entities
Custom-label named-entity recognition. You define the entity labels; the model finds matching spans with confidence scores.- Model:
gliner2-base-v1 - Wraps:
zerogpu extract_entities - Auto-invokes on: “extract all people, organizations, and locations”, “find every product mention.”
Example prompt
extract-json
Pull specific named fields out of free text into a structured JSON object, defined by a per-field schema. Each field is declared asname::type::description.
- Model:
gliner2-base-v1 - Wraps:
zerogpu extract_json - Auto-invokes on: “extract the contact info as JSON”, “parse this invoice”, “pull these fields out.”
Example prompt
{"contact":["name::str::Full name","email::str::Email address","phone::str::Phone number"]}.
Illustrative reply
PII handling
extract-pii
Extract personally identifiable information entities, grouped by category, without modifying the source text. Use it when you need structured data about PII (for redaction policies, audits, or downstream tooling) rather than a masked version.- Model:
gliner-multi-pii-v1 - Wraps:
zerogpu extract_pii - Auto-invokes on: “find all PII”, “what personal info is in this?”, “list emails, phones, and names.”
Example prompt
redact-pii.
redact-pii
Detect PII and replace each span in-line with a[LABEL] placeholder. Use it before sharing or logging sensitive text, or before forwarding user input to another model you don’t want to expose raw PII to.
- Model:
gliner-multi-pii-v1 - Wraps:
zerogpu redact_pii - Auto-invokes on: “redact”, “scrub”, “mask”, “anonymize”, or “sanitize this for sharing.”
extract-entities with custom labels.
Account and savings
These three skills are manual-only. The agent never auto-invokes them - trigger them yourself when you need them.signin
Sign in to ZeroGPU and persist your API key so every subsequent skill call works without re-prompting.- Wraps:
zerogpu login
With no arguments the CLI prompts for the key. For non-interactive setups (CI), pass
--api-key zgpu-api-…. On success the key is written to the local config file and ZEROGPU_API_KEY is upserted into your shell profile so other tools can pick it up. Ask your agent to sign you in, or run zerogpu login directly in your terminal.
status
Show your current ZeroGPU sign-in status and the masked API key.- Wraps:
zerogpu status
0 when signed in, 1 when not - handy as a hard fail in scripts before running any inference skill. Ask “am I signed in to ZeroGPU?” or run zerogpu status.
cost-savings
Show how much you’ve saved by routing tasks to ZeroGPU instead of the host model - cumulative dollars and tokens offloaded.- Wraps:
zerogpu cost_savings
claude-opus-4-8 and is overridable with the ZEROGPU_SAVINGS_MODEL env var. Pass --json for raw data or --reset to clear the history. Ask “how much have I saved with ZeroGPU?” to see the summary.
Skills reference
Every skill at a glance.
For the full flag reference on any command, run
zerogpu <command> --help in your terminal outside the agent session.
Patterns and recipes
Sanitize before the host model sees raw input. Ask the agent toredact-pii untrusted text first when you don’t want personal data captured in your primary model’s transcript or forwarded to a downstream LLM. Pair it with extract-pii when you also need an audit log of exactly what was masked.
Cheap router in front of your reasoning model. Use classify-zero-shot or classify-structured to triage an incoming message (bug / feature / question, urgent / normal, in-scope / out-of-scope) and only escalate the hard cases to your primary model. The classifier call costs orders of magnitude less than a full reasoning turn.
Structured extraction over free-form parsing. For semi-structured text (signatures, invoices, contact blocks), prefer extract-json over asking your host model to “parse this into JSON.” It’s deterministic on the schema, faster, and cheaper. Keep field descriptions short and specific - the description is what the model uses to locate the span.
Tune thresholds for the job. For NER and PII extraction the defaults (0.3 and 0.5) favor recall. Raise -t to 0.6 or higher when you need precision (compliance-grade redaction lists); lower it when you’d rather over-extract and filter downstream.
Troubleshooting
zerogpu: command not found - the CLI isn’t installed or isn’t on your PATH. Run npm install -g zerogpu-cli and restart your shell. If you use a Node version manager (nvm, fnm, volta), make sure the shell that launched OpenClaw has the same Node version active.
A sandboxed or Docker agent can’t find zerogpu - the CLI has to exist inside the container the agent runs in, not just on your host. Add npm install -g zerogpu-cli to your image build, or mount the binary into the sandbox.
Skill returns “You’re not signed in yet.” - no credentials on disk. Run the signin skill, or zerogpu login in your terminal, then confirm with the status skill (zerogpu status).
The agent won’t use the plugin’s skills - the plugin may not be installed or enabled. Re-run openclaw plugins install clawhub:zerogpu-router and confirm it’s enabled in your OpenClaw plugin settings. Pin a known-good release with clawhub:[email protected] if a newer build misbehaves.
Request failed with status 401 - your API key is missing, revoked, or mistyped. Rotate the key in the dashboard and re-run the signin skill. Keys must start with zgpu-api-.
Request failed with status 403 - the key is valid but doesn’t have access to the requested project or model. Confirm the key belongs to a project that owns the model you’re routing to.
Request failed with status 429 - you’re being rate-limited. Back off and retry with exponential delay, or move heavy workloads to the Batch API, which has separate quotas tuned for bulk jobs.
The wrong skill was auto-invoked - the agent picks based on phrasing. Rephrase to drop the ambiguous trigger word (“redact”, “classify”, “extract”), or ask for the specific skill by name.
Schema quoting errors on classify-structured / extract-json - the -s flag expects a single-quoted JSON string. On Windows PowerShell, escape inner double quotes or use a here-string. Run the CLI directly (zerogpu classify_structured … -s '…') to isolate quoting issues from the agent.
Empty or low-confidence results - lower -t to surface more candidates, or check that the labels match the language of the source text (the underlying models are English-tuned for most label sets). Very short inputs return lower confidence across the board.
No savings line appears - it’s intentionally occasional, not shown on every call. Trigger the cost-savings skill (zerogpu cost_savings) any time to see the cumulative dollars and tokens offloaded.
Conclusion
Thezerogpu-router plugin turns ZeroGPU’s nano language models into first-class OpenClaw skills, so your agent can hand off classification, extraction, and short chat to a cheaper, faster model without changing the model that does its reasoning. It’s a fast way to keep raw PII out of your primary model’s context, cut token spend on well-defined NLP work, and watch the savings add up per call.
Model Catalog
Browse every model the plugin can route to.
API Reference
Explore the full OpenAI-compatible API surface.
Cookbook
Worked examples for classification, extraction, and batch jobs.
Join Discord
Ask questions and share what you’re building.

