skills/timeraa/skills/webext-core

webext-core

SKILL.md

webext-core - Browser Extension Utilities

When to Use

Apply this skill when:

  • package.json has any @webext-core/* dependency
  • Code imports defineProxyService, flattenPromise from @webext-core/proxy-service
  • Code imports defineExtensionMessaging, defineWindowMessaging from @webext-core/messaging
  • Code uses MatchPattern from @webext-core/match-patterns
  • Tests use fakeBrowser from @webext-core/fake-browser
  • Code uses defineJobScheduler from @webext-core/job-scheduler
  • Code uses createIsolatedElement from @webext-core/isolated-element

Quick Reference

Package Purpose Reference
@webext-core/proxy-service Cross-context RPC — call background services from anywhere references/proxy-service.md
@webext-core/messaging Type-safe extension/window/custom event messaging references/messaging.md
@webext-core/match-patterns URL pattern matching utilities references/match-patterns.md
@webext-core/fake-browser In-memory browser API for unit testing references/fake-browser.md
@webext-core/job-scheduler Background job scheduling via Alarms API references/job-scheduler.md
@webext-core/isolated-element Shadow DOM containers for content script UIs references/isolated-element.md
@webext-core/storage localStorage-like wrapper (prefer WXT storage if using WXT) references/storage.md
Cross-package patterns and anti-patterns references/patterns.md

Most Common Pattern

// services/counter.ts
import { defineProxyService } from '@webext-core/proxy-service';

const [registerCounter, getCounter] = defineProxyService('CounterService', () => {
  let count = 0;
  return {
    increment: () => ++count,
    getCount: () => count,
  };
});

export { registerCounter, getCounter };

// background.ts — register the real implementation
registerCounter();

// popup or content script — call via proxy (all methods return Promise)
const counter = getCounter();
const newCount = await counter.increment();
Weekly Installs
6
Repository
timeraa/skills
First Seen
6 days ago
Installed on
opencode6
github-copilot6
codex6
kimi-cli6
amp6
cline6