Config Schema Reference

A detailed reference for all configuration keys in BotBox.


Global Config ($HOME/.config/botbox/config.json)

KeyTypeDescription
cli.versionstringBotBox CLI version (auto-managed)
cli.check_updatesbooleanEnable/disable update notifications
cli.auto_updatebooleanEnable/disable automatic updates
user.default_userstringDefault username
user.github_usernamestringGitHub username
display.scroll_enabledbooleanEnable/disable scrolling in UI
display.color_schemestringUI color scheme (default, dark, ubuntu)
defaults.command_prefixstringDefault bot command prefix
defaults.python_versionstringDefault Python version
defaults.auto_git_initbooleanAuto-initialize git repositories
dev.editorstringPreferred code editor

Local Project Config (botbox.conf)

KeyTypeDescription
botbox.versionstringProject config version
bot.namestringBot’s name
bot.descriptionstringDescription
bot.command_prefixstringCommand prefix
bot.authorstringAuthor name
cogsarrayList of cog objects (see below)

Cog Object:

KeyTypeDescription
namestringCog class name
filestringPython file name (without .py)
envstringEnvironment (development, production)
slash_commandsarrayList of slash command objects
prefix_commandsarrayList of prefix command objects

Command Object:

KeyTypeDescription
NamestringCommand name
Typestringslash, prefix, or modal
Scopestringguild or global
DescriptionstringCommand description. For a modal this also becomes the modal title, truncated to 45 characters
ArgsarrayList of argument objects. Must be empty for a modal command
FieldsarrayList of field objects. Modal commands only, 1 to 5 entries
ReturnTypestringReturn type (str, int, None, etc.). Always None for a modal
📝 NOTE
Modal commands are app commands, so they are stored in the slash_commands array alongside regular slash commands rather than in a list of their own.

Argument Object:

KeyTypeDescription
NamestringArgument name
TypestringArgument type (str, int, etc.)
DescriptionstringArgument description

Field Object (modal commands, 2.7.0+):

KeyTypeDescription
NamestringPython attribute name. No spaces or dashes, unique within the command
LabelstringLabel shown in Discord, at most 45 characters
Stylestringshort or paragraph
RequiredbooleanWhether Discord requires a value
PlaceholderstringOptional hint text, skipped when empty

Environment Variables

VariableTypeDescription
DISCORD_TOKENstringYour bot’s token (required)
DISCORD_GUILDstringYour Discord server (guild) ID (required for guild commands)
ENVIRONMENTSstringComma-separated list of environments (e.g., development,production). Controls which cogs are loaded based on their env field. (required)
LOG_LEVELstringLog level for src/utils/logger.py (DEBUG, INFO, WARNING, ERROR, CRITICAL). Defaults to INFO
LOG_DIRstringDirectory for bot.log, created if missing. Defaults to logs
BOTBOX_TOKENstringRead by the BotBox CLI, not by your bot. Supplies the token to botbox create and botbox init in headless mode

Global Flags

FlagDescription
--headlessRun without the TUI. Implied by any value flag
-h, --helpHelp for the command
--versionPrint the installed BotBox version
📝 NOTE
cli.version and defaults.python_version are managed by BotBox and cannot be set with botbox config set.

For more examples, see Configuration.