Skip to content

Plugins Overview

KinBot’s plugin system lets you extend functionality without modifying core code. Drop a folder into plugins/ and get new capabilities instantly.

A single plugin can contribute one or more of these:

TypeDescription
ToolsNew AI-callable functions for Kins (weather, SMS, RSS…)
ProvidersCustom LLM, embedding, image, or search providers
ChannelsNew messaging platforms
HooksIntercept lifecycle events (before/after chat, tool calls…)
  1. Low barrier to entry — A plugin is a folder with a manifest and a TypeScript file
  2. TypeScript-first — Compiled by Bun at load time, no separate build step
  3. Safe by default — Plugins declare permissions; users approve before activation
  4. Kin-scoped — Enable plugins globally or per-Kin
  5. Compatible — Built-in tools remain unchanged; plugins use the same patterns

Navigate to Settings → Plugins to browse, install, enable/disable, and configure plugins. The UI auto-generates settings forms from the plugin’s config schema.

Kins can manage plugins autonomously using built-in tools (opt-in, disabled by default):

ToolDescription
list_installed_pluginsList all installed plugins with status
browse_plugin_storeSearch the community plugin registry
install_pluginInstall from store, git URL, or npm
uninstall_pluginRemove an installed plugin
enable_pluginActivate a disabled plugin
disable_pluginDeactivate without uninstalling
configure_pluginUpdate plugin settings
get_plugin_detailsGet detailed info, config schema, registered tools

To enable these tools for a Kin, go to the Kin’s tool settings and enable the plugin management tools.

Server Start
→ Scan plugins/ directory
→ Validate each plugin.json
→ Register discovered plugins (not yet activated)
→ Activate globally-enabled plugins
→ For each Kin, activate Kin-specific plugins

Plugins have two levels of enablement:

  • Global — Plugin is active at the platform level. Its providers, channels, and hooks are registered.
  • Per-Kin — Plugin’s tools are available to specific Kins. Configured in each Kin’s settings.
  • Config changes — Applied immediately (no restart). Plugin deactivates, re-initializes with new config, then activates.
  • Code changes — Require clicking Reload Plugins or restarting KinBot.
  • Manifest changes — Require reload.
MethodHowUse Case
ManualCopy folder to plugins/Development, local plugins
GitInstall via UI or API from a Git URLShared plugins
npmInstall via UI or API from npmPublished packages
UI uploadUpload ZIP via Plugin ManagerNon-technical users (future)

See Developing Plugins for the full development guide.