praisonai gateway — you have a working bot. No YAML required.
channels: config.
Quick Start
1
One platform, one line
2
Multiple platforms fan out automatically
channels: block.3
Add YAML only when you want to customise
Explicit
channels: entries always win. Add YAML the moment you need routes, per-channel policy, or a non-env token; leave everything else to the env var.How It Works
Auto-enabled channels getroutes: {dm: <agent>, group: <agent>, default: <agent>}. The <agent> resolves in this order:
routing.default(if set)- First key in
agents:(if any) - Single-bot
agent.name(if set) - Literal
"assistant"(final fallback)
Which env vars trigger which channel
A built-in platform is auto-enabled only when all its credential env vars are present.
Multi-credential platforms (Slack, WhatsApp) stay down until every listed var is set —
SLACK_BOT_TOKEN alone does not auto-enable Slack.
Choosing an Option
Configuration Options
Precedence
Explicit token wins over env
Explicit token wins over env
An explicit
token: overrides the env-resolved one — the auto-enable path never touches a platform you already declared.Opt out even when the token is present
Opt out even when the token is present
enabled: false keeps a channel down and suppresses auto-enable for that platform, even with the credential set.Restore strict behaviour
Restore strict behaviour
Set
auto_enable_from_env: false to require an explicit channels: block. With no channel declared, the gateway fails closed:For Plugin Channel Authors
A plugin platform (registered via thepraisonai.channels entry point or register_platform(...)) becomes auto-enable-able when its ChannelDescriptor.config_fields lets the gateway source every required field from the environment (each has an env fallback).
If a plugin has a required field without an env fallback (e.g. a required server for an IRC-like channel), the gateway leaves it for explicit configuration — auto-enabling it would seed a channel that then fails required-field validation and aborts the whole gateway. When there are no required fields, a single env-backed secret field is enough to identify a ready-to-use credential.
Best Practices
Use a .env file for local development
Use a .env file for local development
praisonai gateway loads ~/.praisonai/.env into the environment without overwriting shell values, so committing an .env.example and running praisonai gateway is enough for a teammate to get a bot up.Put production env vars in your process supervisor
Put production env vars in your process supervisor
In production, set credentials in systemd (
Environment=), Docker (--env-file), or your orchestrator’s secret manager rather than shell dotfiles.Disable auto-enable on multi-tenant deployments
Disable auto-enable on multi-tenant deployments
Set
auto_enable_from_env: false on shared deployments so no unexpected channel comes up just because a token happens to be in the environment.Related
Gateway Overview
Multi-channel agent coordination and the full config surface
Gateway CLI
Start, monitor, and manage the gateway from the command line
Bot Gateway
Routing, approvals, and multi-agent channel wiring
Custom Channel
Add a plugin platform that self-describes its credential fields

