Skip to content

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

PageDescription
Quick startBuild your first tab module
Manifest schemacanopi-tab.json reference
API referenceJavaScript 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.json

Status

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

Canopi — Metaweb coordination layer for community-aware presence and messaging.