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

@weavetab/sdk

v2.4.0-beta.3

Published

Official TypeScript SDK for developing Weavetab plugins and tools.

Readme

@weavetab/sdk

Official TypeScript SDK and Developer Toolkit for building plugins for Weavetab.

npm version License: MIT Status: Beta


[!WARNING] BETA RELEASE (v2.4.0-beta.3)

The Weavetab Plugin System and SDK are currently in Beta. While the core extension architecture is stable, APIs may receive refinements as the ecosystem evolves. Feedback and issues are welcome!


⚡ Overview

@weavetab/sdk empowers developers to build modular, type-safe plugins and custom Model Context Protocol (MCP) tools that seamlessly hook into the Weavetab runtime.

Whether you are building custom browser automation workflows, DOM scrapers, AI agent extensions, or enterprise integrations, @weavetab/sdk provides the typings, manifest synchronizers, and developer CLI you need.


🔢 Version Alignment (1:1 with MCP)

@weavetab/sdk shares identical version numbering with the core @weavetab/mcp engine:

  • Unified SemVer: @weavetab/[email protected] targets and is tested against @weavetab/[email protected].
  • Zero Confusion: When specifying "engines": { "weavetab": "^2.4.0" } in your weavetab.json, install @weavetab/sdk@^2.4.0.
  • Forward Compatibility: Plugins built on v2.4.0 are forward-compatible across minor and patch releases (e.g. v2.5.0, v2.6.0).

🚀 Quick Start

1. Scaffold a New Plugin

Run the SDK CLI to initialize a ready-to-code plugin repository:

npx @weavetab/sdk init my-custom-plugin
cd my-custom-plugin
npm install

2. Plugin Structure

my-custom-plugin/
├── src/
│   └── index.ts        # Plugin entrypoint (tools, hooks)
├── weavetab.json       # Plugin manifest (auto-synced)
├── package.json
└── tsconfig.json

🛠️ Authoring a Plugin

A Weavetab plugin is an ES module exporting a plugin definition via definePlugin:

import { definePlugin, type PluginContext } from "@weavetab/sdk";

export default definePlugin({
  name: "weavetab-plugin-example",

  async onLoad(ctx: PluginContext) {
    console.log("[MyPlugin] Loaded successfully!");

    // Register a custom tool available to AI agents via MCP
    ctx.mcp.registerTool({
      name: "extract_page_summary",
      description: "Extracts high-level summary and metadata from current active tab",
      schema: {
        type: "object",
        properties: {
          maxLength: {
            type: "number",
            description: "Maximum summary length in characters",
          },
        },
      },
      handler: async (args) => {
        return {
          content: [
            {
              type: "text",
              text: `Summary extracted (max length: ${args.maxLength ?? 500})`,
            },
          ],
        };
      },
    });
  },

  async onUnload(ctx: PluginContext) {
    console.log("[MyPlugin] Unloaded.");
  },
});

📄 Manifest Specification (weavetab.json)

Every plugin contains a weavetab.json describing its runtime requirements, permissions, and tool signatures:

{
  "$schema": "https://weavetab.pages.dev/schema/plugin.json",
  "name": "weavetab-plugin-example",
  "version": "1.0.0",
  "description": "Custom high-performance tools for Weavetab AI agents",
  "entry": "dist/index.js",
  "engines": {
    "weavetab": "^2.4.0",
    "node": ">=18.0.0"
  },
  "environments": ["mcp"],
  "permissions": {
    "cdp": {
      "evaluate": true,
      "reason": "Evaluates DOM scripts for page extraction"
    }
  },
  "tools": [
    {
      "name": "extract_page_summary",
      "description": "Extracts high-level summary and metadata from current active tab"
    }
  ]
}

💻 SDK CLI Reference

The @weavetab/sdk package installs the weavetab CLI in development environments:

| Command | Description | |---|---| | weavetab init [name] | Scaffolds a new TypeScript plugin project | | weavetab build | Compiles TypeScript and updates weavetab.json manifest | | weavetab validate | Audits and validates weavetab.json schema and permissions | | weavetab --version | Displays current SDK version |


📦 Publishing Your Plugin

  1. Build your plugin:
    npm run build
  2. Publish to npm:
    npm publish --access public
  3. End-users can now load your plugin into Weavetab:
    weavetab plugin add your-plugin-name

📜 License

MIT © fy2ne