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 🙏

© 2024 – Pkg Stats / Ryan Hefner

yowl

v0.6.1

Published

Extensible multi-platform chat bot framework.

Downloads

9

Readme

Yowl

Fast, minimal, multi-platform chatbot framework for NodeJS

Example - A Simple Echo Bot

var yowl = require('yowl');
var bot = yowl();

bot.name = "Echo Bot";

var local = require('yowl-platform-cli');
bot.extend(local);

bot.use(function(context, event, callback) {
  var message = event.message;
  event.send(message, callback);
});

bot.run();
$ npm install yowl yowl-platform-cli
$ node bot.js --local

Complex Example - A Reminder Bot

Reminder Bot - Leverages a combination of yowl packages to create a bot that allows users to set reminders for themselves.

Installation

$ npm install yowl --save

About

Yowl is a chatbot framework that is structured in a similar way to express.

It is unopinionated and comes with very little out of the box. It allows you to chain together middleware that helps you do things like

  • connect to chat platforms
  • run classifiers on in-bound messages
  • add persistentence
  • structure and manage multi-message dialogs

Middleware

This is not necessarily an exhaustive list but rather a good starting point for tools you can use to build your bot.

Platforms

To talk to your users, bots need to integrate with outside platforms.

planned middleware: telegram platform, sms platform

Context Persistence

You will most likely want to maintain an on-going state for interactions your users have with your bot. These modules take care of that.

  • yowl-session-memory - in-memory session persistence. good for getting up and running with a development environment or for testing.
  • yowl-session-redis - good for bots that don't need to keep a lot of session information and need quick session access.
  • yowl-session-rethink - good for deployed bots that may benefit from rethinkdb's ease of operation/scaling

Interaction Locking

Often you'll wait your bot to perform an asynchronous call to an external API or send multiple messages in reply to a user query. Locking allows you to limit a user to one active request at a time.

planned middleware: in-memory locking

Interaction Management

Bots aren't useful if they can't handle multi-step interactions with your users.

  • yowl-dialog-manager - a structured approach for defining and chaining dialogs, making it easier to create complex workflows for your bot

Scheduled/Async Jobs

Often, you'll want to schedule some processing and messaging to take place asynchronously or at some point in the future.

Text Parsing

You're going to need to make sense of text.

Examples

Examples can be found at brianbrunner/yowl-examples.

People

The author of Yowl is Brian Brunner

License

MIT