Getting Started¶
Quickstart (Docker)¶
Create
config.tomlwith the interactive wizard. It has to run on the host, not in the container:docker-compose.ymlbind-mountsconfig.tomlread-only, so the file must already exist beforedocker compose upstarts.pipx run minibot configure # no pipx? pip install minibot into a throwaway venv and run `minibot configure` there instead.
Same wizard as Quickstart (pip) / Quickstart (Poetry) below — Telegram token and allowlists, provider/model, and tool selection.
mkdir -p logs datadocker compose up --build -ddocker compose logs -f minibot
config.yolo.toml is the all-capabilities-enabled reference template — file storage, STT,
HTTP/KV tools, MCP bridge, unrestricted Python runtime, unrestricted Bash, and patch-based file
editing, all on with nothing gated behind a confirmation step. minibot configure offers the
same profile interactively when creating a new file; see CLI Reference for what it actually takes to
run it safely. The static file itself is there if you’d rather copy or hand-edit it directly.
The Docker image includes:
Python deps with all MiniBot extras (
telegram,stt,rag,rabbitmq,graph,codex,vault,http)Node.js/npm (v24 from official tarball)
Playwright + Chromium
ffmpeg
additional Python packages from
docker-requirements.txt
The minibot-rabbitmq and minibot-qdrant services are commented out by default: both
[tasks].backend and [tools.rag].backend default to "sqlite", which needs no extra
service. Uncomment one (and its depends_on entry on the minibot service) only if you set
the matching backend to "rabbitmq" or "qdrant".
No Telegram bot yet? Run docker compose run --rm minibot minibot console instead of
up to chat with MiniBot in your terminal — see Console Test Channel below.
Quickstart (pip)¶
pip install minibot, adding extras as needed:pip install "minibot[telegram,stt,rag,rabbitmq,graph]".minibot configureto createconfig.tomlinteractively (see below).minibot
No Telegram bot yet? Run minibot console instead to chat with MiniBot in your terminal —
see Console Test Channel below.
Quickstart (Poetry)¶
poetry install --all-extrasRun
poetry run minibot configureto create or updateconfig.tomlinteractively. New files start from theExampleprofile by default;YOLOenables broad host execution and integrations.Configure Telegram, pick which LLM providers to set up (several are fine), choose which one the main agent uses, then enter each provider’s API key and pick the main agent’s model, and finally select enabled tools with arrows and Space. The wizard prints
Step n/6headings as it goes. Iftasksis enabled, you’ll also be asked for the task queue backend (sqliteorrabbitmq).The configurator stores tokens and API keys in plain text; keep
config.tomlprivate.poetry run minibot
No Telegram bot yet? Run poetry run minibot console instead to chat with MiniBot in your
terminal — see Console Test Channel below.
Auto-Created Files & Directories¶
Running minibot creates what it needs on first use — no manual mkdir required for:
logs/— log output directory.data/*.db— SQLite storage for memory, KV notes, tasks, and scheduled prompts.[tools.file_storage].root_dir(default./data/files) — managed file storage.
(The Docker Quickstart’s mkdir -p logs data step above is about host-directory ownership
when Docker bind-mounts a path that doesn’t exist yet — it isn’t something minibot itself needs.)
One directory is the exception: ./prompts (the system prompt and prompt fragments referenced
by llm.system_prompt_file / llm.prompts_dir) is only provisioned by minibot configure,
which seeds it next to the config file it writes (skipped if a prompts/ directory already
exists there). If you hand-write config.toml instead of running the wizard, copy prompts/
yourself — from the repo, or from wherever pip installed the package (the same place
config.example.toml lands).
orchestration.directory (default ./agents) and skill directories (.minibot/skills,
.agents/skills) are optional in the other direction: if missing, minibot just runs with no
custom agents — and with only the skills bundled in the package.
Up & Running with Telegram¶
If you’d rather test without Telegram first, skip to Console Test Channel below.
Open @BotFather on Telegram and create a bot to obtain a token.
Update
config.toml:set
channels.telegram.bot_tokenadd your Telegram ID to
allowed_chat_idsorallowed_user_idsconfigure
[llm](provider,model) and the[providers.<name>]section it names
Run
poetry run minibotand send a message to your bot.Monitor
logs/(logfmt vialogfmter) for structured output.
While the bot is working you can keep writing: corrections such as “also check Barcelona” are
folded into the running turn after the current tool returns. Send /stop to cancel the
running turn (see Events); the web chat shows a stop button in place of send while a reply runs, and the
console TUI stops it with Esc.
Console Test Channel¶
Use the built-in console channel to test through the same dispatcher pipeline without Telegram.
Interactive mode opens a minimal Textual TUI (markdown transcript on top, input pinned to
the bottom; Enter sends, Ctrl+J inserts a newline, Ctrl+T toggles model thinking); pass --plain for the original prompt loop.
# Interactive TUI
poetry run minibot console
# Plain prompt loop
poetry run minibot console --plain
# One-shot
poetry run minibot console --once "hello"
# Read from stdin
echo "hello" | poetry run minibot console --once -
Provider setup¶
See Providers for OpenAI, Anthropic, Google, OpenRouter, ChatGPT Codex, OpenCode, xAI, Z.AI, Ollama, and other OpenAI-compatible endpoint configuration.