Sidebar Tab SDK
Build custom sidebar tabs that run inside Canopi with scoped permissions, storage, and access to user context.
What you can build
- Archive assistants (Wayback, Archive.today, etc.)
- Page analytics or note-taking tools
- Community-specific dashboards
- Integrations with external APIs (with declared permissions)
Documentation
| Page | Description |
|---|---|
| Quick start | Build your first tab module |
| Manifest schema | canopi-tab.json reference |
| API reference | JavaScript bridge APIs |
Architecture
┌─────────────────────────────────────────┐
│ Canopi extension (host) │
│ ┌───────────────────────────────────┐ │
│ │ Your tab module (iframe/sandbox) │ │
│ │ canopi-tab.json + bundled JS │ │
│ └───────────────┬───────────────────┘ │
│ │ postMessage bridge │
│ Tab SDK host APIs (storage, user, theme)│
└─────────────────────────────────────────┘Module manifest
Every tab ships a canopi-tab.json manifest declaring:
- Tab id, name, icon
- Required permissions (storage, user profile, page URL, etc.)
- Entry point (HTML/JS bundle)
- Optional configuration schema
Validate against the JSON Schema:
docs/schemas/canopi-tab-manifest-v1.schema.jsonStatus
The Sidebar Tab SDK is in progressive rollout. See internal status doc docs/SIDEBAR_TAB_SDK_STATUS.md for phase details.
Consolidated roadmap (sidebar + smart tag + overlay SDKs): docs/planning/CANOPI_EXTENSION_SDK_CONSOLIDATED_PLAN.md.
TypeScript support
Copy type definitions from the repo:
docs/types/canopi-sdk.d.ts
