Skip to content

channels.toml reference

~/.yachiyo/channels.toml holds channel credentials and tuning, kept separate from config.toml so bot tokens never mix with the rest of your settings.

Keys here are snake_case, unlike config.toml.

KeyTypeDescription
enabledbooleanWhether the Telegram bot runs
bot_tokenstringToken from @BotFather
model_provider, model_namestringOptional model override for Telegram threads
[telegram.group]tableGroup discussion settings — see below

NapCatQQ over OneBot v11.

KeyTypeDescription
enabledbooleanWhether the QQ bot runs
ws_urlstringNapCatQQ forward WebSocket, e.g. ws://localhost:3001
tokenstringOptional auth token for the WS connection
model_provider, model_namestringOptional model override
[qq.group]tableGroup discussion settings
KeyTypeDescription
enabledbooleanWhether the Discord bot runs
bot_tokenstringToken from the Discord Developer Portal
model_provider, model_namestringOptional model override
[discord.group]tableGroup discussion settings for server text channels

QQ Official Bot API. Direct messages only — no group support.

KeyTypeDescription
enabledbooleanWhether the QQ Official Bot runs
app_idstringApp ID from the QQ Developer Portal
client_secretstringClient secret
model_provider, model_namestringOptional model override

reasoning_effort is optional in [telegram], [qq], [discord], and [qqbot]. Set it with the Effort selector beside DM model. It applies to owner and guest DM replies, independently of group effort. Changes take effect on the next request without restarting the service or clearing history.

Default leaves the override unset and keeps the conversation’s existing effort behavior. Overrides do not overwrite saved conversation preferences. Owner DMs keep their own conversation model; an effort unsupported by that actual model is ignored rather than forcing a model change.

Per-platform group discussion settings. Available for telegram, qq, and discord.

KeyTypeDefaultDescription
enabledboolean—Whether group discussion runs on this platform
modestringprobeprobe follows group activity; mention runs only on a direct mention of the bot account
model_provider, model_namestringtool modelModel for the group probe
visionbooleanfalsePass group images to the probe model
active_check_interval_msnumber60000Probe interval in the active phase
engaged_check_interval_msnumber30000Probe interval in the engaged phase
wake_buffer_msnumber60000Delay before waking on new activity
dormancy_miss_countnumber3Quiet checks before dropping to dormant
disengage_miss_countnumber3Quiet checks before leaving engaged
probe_adapter, probe_adapter_provider, probe_adapter_modelstring—Headless probe adapter override

Both modes share the same conversation history and rolling summary. Saving a Probe/Mention mode or Effort change in Settings applies it without restarting the channel service or interrupting the current reply. Other configuration changes may still restart the service.

Set reasoning_effort in a platform’s group section to override effort for group replies only. The Effort selector next to Group model shows that model’s enabled options; Default leaves the override unset. DeepSeek V4 supports Off, Low, High, and Max. Off explicitly disables server-side thinking. Changing the group model clears the override. The headless Claude Code adapter does not expose this selector.

Group context keeps up to 100 recent buffered entries, without a short time cutoff. Each turn adds only the unseen entries; a new conversation starts with the buffered window. Mention mode buffers ordinary messages locally without calling the reply model, and describes their images only when selected for a turn. Images still follow the image-to-text setting. This is a local buffer, not a backfill of messages sent while the service was offline.

KeyTypeDescription
guest_instructionstringCustom context injected into the system prompt for guest conversations
memory_filter_keywordsstring[]Memory results containing these keywords are hidden from guests
KeyTypeDefaultDescription
enabledbooleanfalsePre-describe images in group messages as alt text

Top-level keys applying across platforms, with per-platform values winning where both are set.

KeyTypeDefaultDescription
check_interval_msnumber—Global override for the active-phase probe interval
dm_compact_token_threshold_knumber64DM context budget, in thousands of tokens
group_context_window_knumber64Group probe sliding window, in thousands of tokens
group_handoff_threshold_knumber2 × group_context_window_kProbe thread size above which older transcript is summarized into a rolling handoff
rewrite_model_provider, rewrite_model_namestring—Model that rewrites outgoing group replies into the persona’s voice. Unset means replies go out as generated.

The handoff threshold’s floor is twice the context window — that gap is hysteresis, so a long-running group does not re-summarize on every turn.