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

auto-bot

v0.0.13

Published

Multi-platform bit testing framework

Readme

Autobot: Bot Testing for Humans

CircleCI

autobot terminal image

Autobot is a multi-platform bot testing framework designed for humans. It is designed to have concise, simple test files with strong flexibility and extensibility.

Features:

  • Human readable/writable YAML dialogue files
  • Supports any bot platform.
    • Comes with connectors for botframework
    • Implement a new connector with only two methods: send and onReply.
  • Parallel execution of tests
  • Test against multiple acceptable answers
  • Wildcard matching (<NUMBER>, <WORD>, <*>)
  • Support for testing rich attachments (<IMAGE>, <CARDS>)
  • Support for regular expressions (<(st|nt|nd)>)
  • Show diffs on error
  • Conversation branches
  • Full unicode support
  • Support for preambles and loading variables from locale/translation files

Dialogue Format

Simple Chat file

Title: "Simple Greetings"
Dialogue:
  - Human: Hello
  - Bot:
    - Hi
    - Hello
  - Bot: How are you?
  - Human: I'm good
  - Human: Yourself?
  - Bot: I'm good too!

Complex chat file with variables, branching, and wildcards

Title: "Branching conversation"
Dialogue:
  - Human: Hello
  - Bot: Hi <WORD> // Wildcard match
  - Human: How are you?
  - Bot: I am <$emotion> // variable loaded from external file
  - Wait: 5000
  - Human: How's my campaign doing?
  - Bot: Your impressions are up 20% since last week! Would you like to see more?
  - 1:
      - Human: Sure
      - Bot: Here's a graph of your impressions in the last month.
      - Bot: <IMAGE>
    2:
      - Human: No
      - Bot: Anything else I can help with?
      - Human: What countries is this campaign live in?
      - 1:
          - Bot: Your campaign is live in <NUMBER> countries right now
          - Human: Show me ad spend by country
          - Bot: Here you go
          - Bot: <IMAGE>
        2:
          - Bot: Your campaign is only live in 1 country right now
          - Human: Which one?
          - Bot: <WORD>

Special Tags

You can use the following tags in your test dialogue files:

Tag | Meaning --- | --- <*> | Matches anything, including whitespaces <WORD> | A single word without whitespaces <IMAGE> | An image attachment <CARDS> | A card attachment <(REGEX)> | Any regex expression, i.e. <([0-9]{2})> <$VARNAME> | An expression from the locale/translation file

Install

To install from npm

$ npm install -g auto-bot

To install from source

$ npm run build
$ npm install -g ./

Usage

You must have a config file autobot.yml in the current directory or a parent directory.

$ autobot

  Usage: autobot [options] <chatPath>

  autobot is an multi-platform bot testing framework. It requires an autobot.yml config file to be in the working directory or a parent.


  Options:

    -V, --version               output the version number
    -v --verbose                Enable full logging including bot queries and responses
    -j --json                   Enable seeing the direct JSON responses from the client
    -c, --config <autobot.yml>  autobot.yml config file to use (default current directory and parents)
    -h, --help                  output usage information

To run a specific test:

$ autobot ./path/to/test.yml

To run all tests recursively in a directory:

$ autobot ./path/to/directory

To see the dialogue in the console, add the -v flag

$ autobot -v ./path/to/test.yml

	Discovered 1 tests (1 branches)

  HUMAN testuser-simple-0: Hello
  BOT testuser-simple-0: Hi!

Config File Format

The config file autobot.yml takes the following fields:

client: botframework
directLineSecret: <SECRET IF USING BOT FRAMEWORK>
localeFiles:
  - locale/en/locale.json
timeout: 20000 (timeout in ms)
preamble:
  - Human: Hey there
  - Bot: <*>
  - Human: Hi

Extending to a new platforms

autobot is designed to be super simple to integrate a new platform. You only need to implement the Client interface found in src/clients/client_interface.ts, in either javascript or typescript.

There are only 2 mandatory methods, and 2 optional methods to implement:

export class MyNewClient extends Client {
  send(message) {
    // Mandatory
  }

  onReply(callback) {
    // Mandatory
  }

  onReady(callback) {
    // Optional
  }

  close() {
    // Optional
  }
}