1.1 KiB
1.1 KiB
meshbot
Bridges a MeshCore companion radio to any OpenAI-compatible LLM endpoint
(e.g. llama-server, vLLM, Ollama). Listens for direct messages on the device, runs each
conversation through the LLM with full per-sender history stored in SQLite, and replies back
over the mesh — trimmed to the MeshCore packet payload limit.
Quick start
python -m venv .venv && source .venv/bin/activate
pip install -e .
cp config.example.toml config.toml
# edit serial_port and [llm] in config.toml
python -m meshbot
Config file path defaults to ./config.toml and can be overridden with MESHBOT_CONFIG.
Any field can be overridden via env vars, e.g. MESHBOT_LLM__API_KEY=sk-....
Layout
src/meshbot/bot.py— connect, subscribe toCONTACT_MSG_RECV, dispatch each DM.src/meshbot/db.py— SQLite schema and per-conversation repo functions.src/meshbot/llm.py—AsyncOpenAIwrapper.src/meshbot/messages.py— UTF-8-safe byte-length trimming.src/meshbot/config.py— TOML + env-var settings (pydantic-settings).