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
dbis 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 |
Quick links
- Repository: github.com/nicebots-xyz/botkit
- Example config:
config.example.yamlin the repo root - Bundled extensions under
src/extensions/may include a smallreadme.mdeach — this site covers Botkit mechanics, not every bundled feature's options.