npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

Iโ€™ve always been into building performant and accessible sites, but lately Iโ€™ve been taking it extremely seriously. So much so that Iโ€™ve been building a tool to help me optimize and monitor the sites that I build to make sure that Iโ€™m making an attempt to offer the best experience to those who visit them. If youโ€™re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, ๐Ÿ‘‹, Iโ€™m Ryan Hefnerย  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If youโ€™re interested in other things Iโ€™m working on, follow me on Twitter or check out the open source projects Iโ€™ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soonโ€“ish.

Open Software & Tools

This site wouldnโ€™t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you ๐Ÿ™

ยฉ 2026 โ€“ย Pkg Stats / Ryan Hefner

create-extenkit

v1.0.7

Published

๐Ÿงฉ ExtenKit CLI โ€” Build modular browser extensions with zero config.

Readme

๐Ÿงน ExtenKit

A lightweight, build-free JavaScript framework for creating cross-browser extensions โ€” with a single command.

npm version License: MIT Made with JavaScript


๐Ÿš€ What is ExtenKit?

ExtenKit is a minimal, modular framework and CLI for building browser extensions using vanilla JavaScript + HTML โ€” no bundlers, no React, no Webpack.

It runs instantly in your browserโ€™s extension environment and generates all files for you.

It works seamlessly with:

  • โœ… Chrome, Edge, Brave (Manifest V3)
  • ๐ŸฆŠ Firefox (Manifest V2 fallback)
  • ๐ŸŒ Any browser supporting the WebExtensions API

โœจ Features

  • ๐Ÿ”ง One-command scaffolding: npx create-extenkit my-extension
  • โšก Zero build step โ€” just edit HTML/JS directly
  • ๐Ÿง  Reactive component system (ExtenKit Core)
  • ๐Ÿ’ฎ Persistent store with Chrome Storage & local fallback
  • ๐Ÿงฉ Flag-based generation for options pages, background scripts, and custom templates
  • ๐ŸฆŠ Firefox Manifest V2 support out of the box
  • ๐Ÿ–พ๏ธ Includes a default icon and fully working popup

๐Ÿงฎ Installation

1๏ธโƒฃ Create your extension

npx create-extenkit my-extension

2๏ธโƒฃ Load into Chrome

  1. Open chrome://extensions/
  2. Enable Developer mode
  3. Click Load unpacked
  4. Select your new folder
  5. Done ๐ŸŽ‰

3๏ธโƒฃ Load into Firefox

npx create-extenkit my-extension --manifest-v2

Then open about:debugging#/runtime/this-firefox, click Load Temporary Add-on, and choose the generated folder.


โš™๏ธ CLI Flags

| Flag | Description | | ------------------- | ---------------------------------------------------------- | | --with-options | Adds an options.html page automatically | | --with-background | Adds a background service worker | | --manifest-v2 | Generates a Firefox-compatible manifest | | --blank | Generates a minimal scaffold (no popup UI) | | --template=<name> | Uses a custom template from /templates/templates/<name>/ |


๐Ÿงฉ Example Usage

# Basic popup extension (MV3)
npx create-extenkit my-extension

# Firefox-friendly version
npx create-extenkit my-extension --manifest-v2

# With background + options
npx create-extenkit my-extension --with-background --with-options

# Minimal blank template
npx create-extenkit minimal --blank

๐Ÿ“ Folder Structure

my-extension/
โ”œโ”€โ”€ manifest.json
โ”œโ”€โ”€ popup.html
โ”œโ”€โ”€ popup.js
โ”œโ”€โ”€ icon.ico
โ”œโ”€โ”€ assets/
โ”‚   โ”œโ”€โ”€ icon.png
โ”‚   โ””โ”€โ”€ styles.css
โ”œโ”€โ”€ modules/
โ”‚   โ”œโ”€โ”€ home/
โ”‚   โ”‚   โ””โ”€โ”€ index.js
โ”‚   โ”œโ”€โ”€ about/
โ”‚   โ”‚   โ””โ”€โ”€ index.js
โ”‚   โ”œโ”€โ”€ options/
โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ””โ”€โ”€ background/
โ”‚       โ””โ”€โ”€ ...
โ”œโ”€โ”€ extenkit/
โ”‚   โ”œโ”€โ”€ component.js
โ”‚   โ”œโ”€โ”€ mount.js
โ”‚   โ”œโ”€โ”€ store.js
โ”‚   โ””โ”€โ”€ index.js
โ””โ”€โ”€ package.json

๐Ÿง  ExtenKit Core

Each generated project contains an /extenkit folder โ€” the lightweight reactive runtime that powers your UI.

| File | Purpose | | ---------------- | ---------------------------------------------------- | | component.js | Define reactive components with templates & bindings | | mount.js | Mount and unmount components safely | | store.js | Persistent, reactive global state | | index.js | Entry point re-exporting all core helpers |


๐Ÿ’ก Example Component

import { createComponent, mount } from "./extenkit/index.js";

const Counter = createComponent({
  name: "Counter",
  state: { count: 0 },
  template: (s) => `
    <div class="counter">
      <h3>Count: <span data-bind="count"></span></h3>
      <button data-click="inc">+</button>
    </div>
  `,
  methods: {
    inc() {
      this.state.count++;
    },
  },
});

mount(Counter, document.body);

๐Ÿฆฏ Roadmap

  • [ ] extenkit-router โ€” hash-based navigation
  • [ ] extenkit-ui โ€” built-in UI components
  • [ ] Advanced templates (modern, dashboard, chat)
  • [ ] Plugin support for MV3 scripting APIs
  • [ ] Publish @extenkit/core as a standalone npm module

๐Ÿง‘โ€๐Ÿ’ป Development Setup (for contributors)

# 1. Clone repo
git clone https://github.com/exagonsoft/extenkit.git
cd extenkit/cli

# 2. Link locally
npm link

# 3. Test
npx create-extenkit demo-extension

# 4. Publish
npm login
npm publish --access public

๐Ÿ“œ License

MIT ยฉ 2025 โ€” Built with โค๏ธ by the ExtenKit Team (ExagonSoft)


๐Ÿฆฏ Why ExtenKit?

Because extension development should be instant:

No bundlers. No frameworks. No waiting โ€” just HTML, JS, and your br