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

@squeebot/cli

v3.7.0

Published

Squeebot v3 runtime, environments and configuration

Readme

Squeebot CLI

Squeebot is a plugin runtime coordinator which, in its original intention, is used to create a multi-platform chat bot. The core and CLI provide tooling to install, update, execute and coordinate JavaScript plugins. The plugins all get access to a communication channel - a scoped event emitter - the flow of which can be controlled using channels.

Typically, the plugin repositories providing plugins that connect to a message/event source start with service- and the repositories that provide plugins which do something with the messages/events start with plugins-.

  services     channel     handlers
     +-----+      |      +----------+
     | IRC | -->  |  --> | commands |  -  handles "message" event
     +-----+      |      +----------+     and resolves it with the response
                  |          /|\
                  |           |   the plugin below accesses plugin above's API
                  |           |   to register a command
                  |           |
 +---------+      |      +-----------------+
 | Discord | -->  |      | calendar events |
 +---------+      |      +-----------------+

This package provides the runtime and tooling for Squeebot 3.x.x! This package provides two binaries via npm: squeebot and squeebotd.

Running Squeebot

  1. Create an environment: $ squeebot new <name> [<path>]
  2. Execute the environment in interactive mode using squeebotd: $ squeebotd -i <path>/<name>.json
  3. Install plugins (documented below)

squeebotd just takes the path to the generated json file and creates all other necessary files and directories by itself. The primary configuration will be located in <path>/configs/squeebot.json.

Installing plugins

In order to install plugins, you have to add a repository. Repositories are JSON files served over HTTP.

For example, installing core plugins (Interactive mode -i on squeebotd):

  1. repository install https://squeebot.lunasqu.ee/pkg/plugins-core/repository.json
  2. plugin install control simplecommands
  3. plugin list

Interactive mode commands

The following commands are available when starting in interactive mode:

  • repository help - Repository management commands
  • plugin help - Plugin management commands
  • channel help - Channel management commands
  • quit - Exit Squeebot
  • inspector - Enter JavaScript REPL (basically the same as running node without arguments)

Creating a repository

In order to create a repository, you need to do the following:

  1. Create a new repository: $ squeebot repository new <name> [<path>]
  2. Build your new repository: $ squeebot repository build <path>
  3. Your built plugins, both archived and unarchived, are in <path>/.out.

Repositories are created with a TypeScript build environment by default. If you do not wish to use TypeScript (not recommended) for your plugins, add the -t flag to squeebot repository new command.

The build command supports a -w argument which will execute the entire build command again when you make changes (watch mode). Including deployments, if -d is present!

Creating plugins

Within your new repository, each directory you make will be a plugin. The plugin must contain the following:

  1. plugin.json - Manifest for your plugin.
  2. plugin.js - Has to be a JavaScript file which exports a class inherited from Plugin at @squeebot/core/lib/plugin.
  3. schema.json - (optionally) include a JSON schema for the plugin's configuration.

Note: plugin.js only has to exist in the distribution, so .ts is fine, but you have to use $ squeebot repository build <path> to build them into JavaScript files.

Plugin manifest (plugin.json) example:

{
  "name": "plugin-name",  // The name of your plugin, must match the name of the directory
  "version": "0.0.0",     // The version of your plugin, must be semantic versioning!
  "description": "",      // Optional description for this plugin
  "tags": [],             // Optional list of tags describing this plugin
  "dependencies": [],     // List of plugins this plugin depends on
  "npmDependencies": [],  // List of npm modules this plugin depends on. Supports versions, example '[email protected]'
}

Deploying the repository

You can configure deployment options using a file called deployment.json in your repository root.

In order to activate your configured deployment, use the -d flag when building your repository. -o flag skips build and deploys immediately.

Development

{
  "devSqueebot": "<full path to environment>.json",
}

Use -d dev to deploy this.

SSH deployment

{
  "prod": {
    "ssh": true,
    "key": "<path to id_rsa>",
    "host": "<ssh host>",
    "user": "<ssh user>",
    "target": "<full remote path>"
  }
}

Official repositories

All official repositories are here. Production-ready builds are available to download via Squeebot CLI from https://squeebot.lunasqu.ee/pkg/<repo name>/repository.json by using the repository install command.