Skip to content

Botkit

Botkit is a Python 3.12 application template and runtime for Discord bots built on py-cord (bridge-style bot with optional prefix commands). It wires together:

  • Extensions under src/extensions/ — each folder is a feature module discovered at startup.
  • YAML + environment configuration merged at load time (BOTKIT__ prefix for env vars).
  • An optional FastAPI backend (Uvicorn) that can share a process with the bot.
  • Internationalization helpers and translation YAML per extension.
  • Optional Tortoise ORM + Aerich migrations when db is enabled.

It is a framework and project layout, not a single-purpose bot product. You implement behavior in extensions and ship your own config.yml / secrets.

Documentation map

Page What you will learn
Getting started Clone, install with PDM, minimal config, first extension, run the bot
Configuration Full reference: YAML sections, env vars, process layout, cache
Extensions Required exports, examples, patches, translations, logging
Runtime What starts when you run the bot, hook order, REST vs backend
Internationalization translations.yml, slash command locales, ctx.translations
Database Enabling Tortoise, URLs, SSL, migrations
Scripts convert-config, check-listings
Deployment Docker image, env-first deploys, health checks
Development Working on your bot with the template tooling
Contributing Pull requests to the Botkit repo, docs build, commit conventions
API reference Extension loader and startup APIs
  • Repository: github.com/nicebots-xyz/botkit
  • Example config: config.example.yaml in the repo root
  • Bundled extensions under src/extensions/ may include a small readme.md each — this site covers Botkit mechanics, not every bundled feature's options.