Build type-safe Chrome extensions with the @theluckystrike/webext-* toolkit
defineSchema(), createStorage(), TypedStorage
const storage = createStorage({ schema, area: "local" });
await storage.set("theme", "light");
const theme = await storage.get("theme");
→ Storage Quickstart
createMessenger<M>(), sendMessage, onMessage
const msg = createMessenger<Messages>();
const user = await msg.send("getUser", { id: 1 });
→ Messaging Quickstart
checkPermission, requestPermission, PERMISSION_DESCRIPTIONS
const result = await checkPermission("tabs");
console.log(result.description);
→ Permissions Quickstart
npm install @theluckystrike/webext-storage @theluckystrike/webext-messaging @theluckystrike/webext-permissions
Learn how to define schemas, create type-safe storage, and use reactive watchers.
Set up typed message passing between content scripts, background scripts, and popups.
Check, request, and manage Chrome permissions with human-readable descriptions.