Extensions
Extensions are the most powerful tier of the Pawz extensibility system. They have everything an Integration has — credentials, instructions, widgets — plus custom sidebar views and persistent data storage. Extensions vs. Integrations: An Integration connects your agent to an API or CLI tool with encrypted credentials and optional dashboard widgets. An Extension does all of that plus registers a custom sidebar view and can persist structured data across sessions.What Extensions Add
| Feature | Skill | Integration | Extension |
|---|---|---|---|
| Prompt injection | ✓ | ✓ | ✓ |
| Credential vault | — | ✓ | ✓ |
| Binary detection | — | ✓ | ✓ |
| Dashboard widgets | — | ✓ | ✓ |
| Custom sidebar view | — | — | ✓ |
| Persistent storage | — | — | ✓ |
| Data-bound UI | — | — | ✓ |
How Extensions Work
- Manifest — A
pawz-skill.tomlwith[view]and/or[storage]sections - Sidebar view — The extension registers a tab in the sidebar with its own icon and label
- Persistent data — The extension declares storage tables; agents use
skill_store_*tools to persist structured data across sessions - Data-bound rendering — The custom view reads from the extension’s storage and renders live data (tables, charts, pipelines, feeds)
- Widget — An optional dashboard card shows a summary on the Today page
Extension Manifest
An extension is apawz-skill.toml with the additional [view] and [storage] sections:
[view] Section
| Field | Type | Required | Description |
|---|---|---|---|
id | string | ✓ | Unique view identifier (used in routing). |
label | string | ✓ | Sidebar tab label. |
icon | string | ✓ | Material Symbols icon name. |
[storage] Section
| Field | Type | Required | Description |
|---|---|---|---|
namespace | string | ✓ | Storage namespace (isolated per extension). |
tables | string[] | ✓ | Table names the extension can read/write. |
Storage Tools
Extensions expose three agent tools for persistent data management:| Tool | Parameters | Description |
|---|---|---|
skill_store_set | namespace, table, id, data (JSON) | Create or update a record |
skill_store_get | namespace, table, id | Get a record by ID |
skill_store_query | namespace, table, filter (JSON) | Query records with filters |
Example: Agent interaction
User: “Add a new contact — John Smith, john@acme.com, Acme Corp” Agent callsskill_store_set:
skill_store_query:
Example Extensions
CRM Pipeline
Track contacts, deals, and activities. The sidebar view shows a Kanban-style pipeline with deal stages. Dashboard widget shows active deal summary.| Credentials | Storage | Widget |
|---|---|---|
| Optional webhook import | contacts, deals, activities | Table: Active Deals |
Smart Home Dashboard
Control and monitor your IoT devices from a dedicated sidebar tab. Combines Philips Hue, Sonos, and Eight Sleep into one unified view.| Credentials | Storage | Widget |
|---|---|---|
| Device API tokens | devices, scenes, automations | KV: Device Status |
Portfolio Tracker
Unified portfolio view across all exchanges and wallets. The sidebar shows allocation charts, P&L, and trade history.| Credentials | Storage | Widget |
|---|---|---|
| Exchange API keys | holdings, trades, snapshots | Metric: Portfolio Value |
Content Calendar
Plan, schedule, and track content across platforms. The sidebar shows a calendar grid with publish dates and status badges.| Credentials | Storage | Widget |
|---|---|---|
| Social media tokens | posts, campaigns, analytics | Table: Upcoming Posts |
Modular Workspace Integration
Extension sidebar views integrate with the Modular Workspace system:- Extension views appear in the Custom workspace profile toggle grid
- Users can show/hide extension views like any built-in view
- Extension views respect the active workspace profile
- Hidden extension views preserve their data — nothing is lost
Per-Agent Scoping
Like Skills and Integrations, Extensions are assigned to agents from the Agents tab:- Open the Agents tab → select an agent → go to their Skills sub-tab
- Enable or disable the extension for that agent
- Only assigned agents receive the extension’s instructions and credentials in their prompt
- All agents can read from the extension’s storage (for dashboard rendering)
- Only assigned agents can write to the extension’s storage
- The extension’s sidebar view is always visible (it shows data, not agent context)
Creating Extensions
Extensions are created the same way as integrations, with the addition of[view] and [storage] sections:
- Start with the In-App Wizard or a template
- Add your credentials and instructions (same as an integration)
- Add a
[view]section to declare a sidebar tab - Add a
[storage]section to declare persistent tables - Test with a live agent — use chat to populate storage, verify the view renders
- Publish to PawzHub
Upgrade Path
You can upgrade a Skill to an Integration to an Extension incrementally: Each step is additive. You never need to rewrite — you just add more sections to the manifest.Security
Extensions have the same security model as Integrations, with additional protections for storage:| Layer | Protection |
|---|---|
| Credentials | XOR-encrypted, 32-byte key in OS keychain |
| Network | Domain allowlist/blocklist on every fetch |
| Shell | Docker sandbox routing when enabled |
| Storage | Namespaced — extensions cannot read/write other extensions’ data |
| Write isolation | Only assigned agents can write to storage |
| View rendering | Views are rendered by the app, not by the extension |
| Resource limits | Storage quotas prevent any single extension from filling disk |
- Execute arbitrary Rust code
- Render arbitrary HTML/JavaScript (views use the app’s renderer)
- Access other extensions’ storage namespaces
- Write to storage from unassigned agents
- Bypass domain or shell policies
Tier Badges
Every item in the Skills tab shows its tier badge:| Badge | Color | Meaning |
|---|---|---|
| 🔵 Skill | Blue #3B82F6 | SKILL.md — prompt injection only |
| 🟣 Integration | Purple #8B5CF6 | TOML — credentials, binaries, widgets |
| 🟡 Extension | Gold #F59E0B | TOML — views, storage, full power |
| Badge | Meaning |
|---|---|
| ✓ Verified | Tested in a real workspace, CI-validated |
| ★ Official | Published by the Pawz team |
| 🔥 Popular | 50K+ installs |

