Getting started

Kabukibot is built to be pluggable, so a lot of its functionality depends on the plugins it offers. This also means that the channel owner (the broadcaster) has to manage the plugins and their permissions, before anyone can use them.

Yes, you actually have to take a few seconds to set plugins and their permissions up.

A plugin provides one specific feature to the chat. There's a plugin for GTA-related commands, as well as a plugin for banning links to certain domains. A plugin can have any number of commands and permissions.

All the configuration happens in your channel. Only the initial join has to happen in #kabukibot.

Commands

All commands begin with an exclamation mark and consist of only letters, numbers and the underscore. Upper- or lowercase is generally not important, so !foo and !FOO are equivalent.

#somewheretester_man: !commandx
kabukibot: (response to commandx)
Most commands are introduced by plugins, but there are some exceptions, namely the global commands.

Global Commands

Apart from the functionality and commands that plugins provide, there are also global, fixed commands. These are available everywhere and are used to manage plugins and permissions. To make sure they don't conflict with other bots, they are all prefixed with k_.

Overview

Usually, the workflow is as follows:

  1. Make Kabukibot join your channel.
  2. Enable the plugins you want.
  3. Set their permissions (if any), e.g. granting moderators to use certain commands.
  4. Profit!

Get Kabukibot in your channel

You can make Kabukibot join your channel by visiting its channel and typing !k_join.

#kabukibottester_man: !k_join
kabukibot: tester_man, I've joined your channel.

That's it already. You can now leave #kabukibot and never come back.

Enabling plugins

To get a list of available plugins, type !k_plugins in your channel.

#tester_mantester_man: !k_plugins
kabukibot: tester_man, available plugins are: domain_ban, emote_counter and gta

In the case above, there are three plugins: domain_ban, emote_counter and gta. To enable the domain_ban plugin, use the !k_enable command:

#tester_mantester_man: !k_enable domain_ban
kabukibot: tester_man, the "domain_ban" plugin has been enabled.

Now you have the plugin enabled. You should look in the plugin's documentation on what permissions it allows you to control and what commands exist and how they work.

Managing plugins is only allowed by the channel owner. You cannot grant this to other users.

To disable a plugin again, use !k_disable:

#tester_mantester_man: !k_disable domain_ban
kabukibot: tester_man, the "domain_ban" plugin has been disabled.

Note than when you disable a plugin, all its settings are retained and immediately in effect when you re-enable the plugin at a later time.

Granting permissions

You can ask Kabukibot what permissions are available in your channel. Use the !k_permissions commands.

The chapter on permissions explains the access control in much greater detail.
#tester_mantester_man: !k_permissions
kabukibot: tester_man, available permissions are: configure_domain_bans

Seems like the domain_ban plugin offers you one permission to set, the permission to ban or unban domains in your channel.

By default, nobody is allowed anything, except for you. You can grant the configure_domain_bans permissions now to either user groups or specific users. In most cases, you want to use the groups, of which there are 6: $mods, $subs, $turbos,$staff (Twitch staff members), $admins (Twitch admins) and $all.
You don't have to grant anything, if you are the only one who should be able to ban domains (by default, you as the channel owner are always allowed to use any commands). But for the sake of this example, let's continue.

To grant permissions, use the !k_allow command. Give it the permission you want to grant (configure_domain_bans) and then a list of groups/users whom to grant it to. So if you want to allow moderators, admins and your mom to configure domain bans, you'd type:

#tester_mantester_man: !k_allow configure_domain_bans $mods,$admins,my_mom

Notice how the groups are prefixed with a dollar sign ($mods), while regular usernames are non-prefixed (my_mom). Both usernames and groups are automatically converted to lowercase, so my_mom and MY_MOM are equivalent.

To revoke permissions, use the !k_deny command. It works the same way !k_allow does. So if you decide that admins should not be allowed to configure domain bans, type:

#tester_mantester_man: !k_deny configure_domain_bans $admins
Permissions are not automatically inherited from "higher levels". This means that Twitch admins are not automatically allowed to use stuff you've only granted $mods permissions to. It's your channel and you make the rules.
Managing permissions is also only allowed by the channel owner. You cannot grant this to other users.

Profit!

Now that you know how to manage Kabukibot in your channel, take a look at the available plugins. There you will find all the information about permissions and commands that each of them offer.