PawzHub — Marketplace
PawzHub is the community-driven marketplace for Pawz. It hosts all three tiers of the extensibility system — Skills, Integrations, and Extensions — making Pawz an infinitely extensible platform where anyone can create, publish, and install capabilities.Three Tiers, One Marketplace
How It Works
Every skill — whether built-in or community — follows the same architecture:- Skill manifest declares what the skill does, what credentials it needs, and what data it outputs
- Credential vault encrypts API keys with AES-GCM (key stored in OS keychain) and injects them into the agent prompt at runtime
- Engine tools (
fetch,exec,read_file,write_file) execute the actual API calls and commands - Dashboard widgets render structured output from skills as persistent visual cards
Skill Manifest Format
Every PawzHub skill is a singlepawz-skill.toml file:
Manifest Fields
[skill] — Required
Valid categories:
vault, cli, api, productivity, media, smart_home, communication, development, system
[[credentials]] — Optional (repeatable)
Declare API keys, tokens, or secrets the skill requires. Users enter these in the Skills tab. Pawz encrypts them with AES-GCM and stores the encryption key in the OS keychain. At runtime, decrypted values are injected into the agent’s system prompt automatically.
:::info Credential Security
Credentials are never stored in plain text. They are encrypted in SQLite using AES-GCM with a 256-bit key stored in your OS keychain (macOS Keychain, Windows Credential Manager, or Linux Secret Service). The agent receives decrypted values only in its system prompt at runtime — they are never logged, never written to disk unencrypted, and never transmitted externally.
:::
[instructions] — Required
The instructions tell the agent:
- Which API endpoints to call (using the
fetchtool) - Which CLI commands to run (using the
exectool) - How to format request headers, bodies, and authentication
- How to parse and present responses
- Error handling guidance
[widget] — Optional
Declare a dashboard widget for persistent visual output.
[[widget.fields]] — Required if [widget] is present
Widget Types
Skills can declare a dashboard widget to display persistent structured data. The widget appears on the Today/Dashboard view alongside weather, tasks, and quick actions.Status
Single status indicator — ideal for service health, connection state, or simple on/off checks.Metric
Single large number with trend — ideal for KPIs, counts, revenue, or any headline number.Table
Rows of structured data — ideal for lists, records, deployments, or any tabular output.Log
Chronological event feed — ideal for notifications, incidents, messages, or activity streams.Key-Value (KV)
Key-value pairs — ideal for configuration summaries, stats, or metadata.Field Types
Installing Skills
From PawzHub (In-App)
- Open the Skills tab in the sidebar
- Click the Browse PawzHub section
- Browse or search available skills by name or category
- Click Install on any skill
- Configure credentials if required
- Assign to agents via Agents → [agent] → Skills
Manual Install
Download apawz-skill.toml file and place it in the skills directory:
Uninstalling
- Community skills: Click the Uninstall button in the Skills tab. This deletes the skill folder from
~/.paw/skills/and cleans up stored credentials and enabled state. - Core skills: Cannot be uninstalled (they’re compiled into the binary). Disable them per-agent in Agents → [agent] → Skills instead.
Creating Skills
In-App Wizard
The Create Skill wizard in the Skills tab walks you through building a skill without writing TOML by hand:- Basic Info — name, category, icon, description
- Credentials — add API key fields with labels and placeholders
- Instructions — write or paste agent instructions (templates available for REST APIs, CLI tools, and web scrapers)
- Widget — optionally declare dashboard output with field types
- Test — enable the skill and verify it works with a live agent
- Publish — save locally, export TOML, or publish directly to PawzHub via GitHub PR
AI-Assisted Creation
Ask your agent to create a skill for you:“Create a PawzHub skill for the Notion API”The agent fetches the API docs, generates a complete
pawz-skill.toml with endpoints, auth headers, and instructions, then pre-fills the wizard for your review.
Template Starters
The wizard includes starter templates:- REST API — fetch calls with auth headers, JSON parsing
- CLI Tool — exec commands with flag reference
- Web Scraper — fetch + HTML parsing instructions
Publishing to PawzHub
Submission Flow
- Fork the
OpenPawz/pawzhubrepository - Create
skills/{your-skill-id}/pawz-skill.toml - Open a Pull Request — CI validates your manifest automatically
- Maintainer reviews and merges
registry.jsonis auto-rebuilt — your skill appears in the in-app browser
One-Click Publish (from Pawz)
If you created a skill using the in-app wizard:- Click Publish to PawzHub in the wizard’s final step
- Pawz opens a pre-filled GitHub PR on
OpenPawz/pawzhub - CI validates, maintainer reviews, done
CI Validation
Every PR is checked automatically:Quality Guidelines
Skills are accepted based on quality, not quantity. We learned from OpenClaw’s ClawHub that accepting everything leads to 48% junk (1,180 spam, 396 malicious out of 5,705 submissions). Required:- Valid, well-tested
pawz-skill.toml - Clear, accurate description
- Working instructions that the agent can follow
- Tested in a real Pawz workspace
- Includes a widget for dashboard output
- Screenshot or demo in the PR description
- Created using the in-app wizard
Skill Architecture Deep Dive
How Credentials Flow
How Instructions Work
Skill instructions are injected into the agent’s system prompt alongside all other enabled skills:fetch tool (supports GET/POST/PUT/PATCH/DELETE with custom headers and body) or exec tool (shell with Docker sandbox routing) to perform the actual API calls.
How Widgets Work
- Skill manifest declares a
[widget]with type and fields - Agent runs the skill and produces structured JSON matching the widget schema
- Agent calls the
skill_outputtool to persist the data - Dashboard reads
skill_outputstable and renders the widget card - Optional
refreshinterval triggers periodic re-fetching
Security Model
What Community Skills Can Do
- Inject text into the agent’s system prompt (instructions)
- Declare credential fields (encrypted by the engine, never handled by the skill)
- Declare widget schemas (rendered by the app, not by the skill)
What Community Skills Cannot Do
- Execute arbitrary Rust code (no compiled tool functions)
- Bypass domain allowlist/blocklist (enforced by
execute_fetch) - Access the OS keychain directly (credential injection is engine-side)
- Read engine source code (blocked by
execute_read_file) - Install blocked packages (enforced by
execute_exec) - Run unsandboxed commands when Docker sandbox is enabled

