vk-chat-bot icon indicating copy to clipboard operation
vk-chat-bot copied to clipboard

:package: node package for building chat bots for VK communities (uses Callback API)


version downloads bundle size

Package for easy creation of chat bots for VK communities (groups). Uses Callback API.
documentation »changelog »featuresusagecontributinglicense


  • Easy to use — setting up behavior is simple — see 2. Behavior setup below
  • Respects the quota — the package calls VK API not more then 20 times/second, so you don't exceed the quota

The version of VK API used by this package can be found here.



$ yarn add vk-chat-bot


You can find an example bot in the u32i64/vk-chat-bot-example repository.

  • Deploying on Glitch

    Simply press the button below and follow the SETUP.md file there:

    remix this

  • Deploying on Heroku

    You can find a step-by-step guide on deploying the example to Heroku here.

Quick Start

1. Preparation

First, require() the package:

const vk = require('vk-chat-bot');

Then, create your bot using the vk.bot function (see Params object for more information about params):

const params = {
  vkToken: 'your_vk_access_token',
  confirmationToken: 'f123456',
  groupId: 1234567,
  secret: 's3r10us1y_s3cr3t_phr4s3',
  port: 12345,

  cmdPrefix: '/'

var { bot, core } = vk.bot(params);

2. Behavior setup

See Core wiki to learn more about behavior functions. Here are some examples:

// Use stuff from the package...
const { Color, button, Keyboard } = vk.kbd;

// ...to create a keyboard like this.
// +-----------+---------+----------+----------+
// | Secondary | Primary | Negative | Positive |
// +-----------+---------+----------+----------+
// |      Maximum rows is 10, columns - 4.     |
// +-------------------------------------------+
var kbd = new Keyboard([
  [ /* Row (array of buttons) */
    button.text('Primary', Color.Primary),
    button.text('Negative', Color.Negative),
    button.text('Positive', Color.Positive)
    button.text('Maximum rows is 10, columns - 4.')

// When user presses the `Start` button...
// (you have to enable the button in community settings)
core.on('start', $ => {
  // ...send them our keyboard.
  $.text('Thanks for messaging us! Choose from the options below:');

  // Here, $.send() is added automatically.
// Searches for cmd_prefix + 'help', e.g. '/help'
core.cmd('help', $ => {
  // core.help() returns the help message
  $.text('Test Bot v1.0' + core.help());

  // Attach an image from
  // https://vk.com/team?z=photo6492_45624077
  $.attach('photo', 6492, 456240778);
}, 'shows the help message');
// Use case-insensitive regular expression to find words 'hi', 'hello' or 'hey'
core.regex(/h(i|ello|ey)/i, $ => {
  $.text('Hello, I am a test bot. You said: ' + $.msg);

3. Start it!

Start the bot:


The bot will log some useful information, see Logging documentation for more information.


  • Something does not seem right or you have a feature request? Open an issue.
  • You know how to make vk-chat-bot better? Open a pull request!


This project is licensed under the terms of the MIT license.