- The channel registry — a DB-backed record of which channels are installed and enabled, plus their credentials in the vault. Managed from the Channels page in the console, not from YAML. See Managing skills, agents, and channels.
config/local.yamlunderchannel_accounts— used only for the multi-account email layout (one set of credentials per logical account). Single-account email, Signal, CLI, and HTTP do not need this block.
The channel registry
Each channel is described by a catalog entry and tracked by a row in thechannel_registry table (enabled, is_toggleable, install/enable provenance). A channel implements a small interface:
HTTP and CLI are always on. They have
isToggleable: false and cannot be disabled or uninstalled — this is an operator-lockout safeguard, so you can never accidentally cut off your own access to the instance. Email and Signal are toggleable: install/enable them from the Channels page once their credentials are in the vault.Credential fields and vault keys
Each channel declares its credential fields in the catalog. Every field is stored in the vault under a namespaced key following the conventionchannel.<name>.<field>:
| Channel | Vault keys |
|---|---|
email | channel.email.nylas_api_key, channel.email.nylas_grant_id, channel.email.nylas_self_email |
signal | channel.signal.signal_phone_number |
install.requires_secrets gates skills.
Email accounts
Thechannel_accounts.email block in config/local.yaml is for connecting multiple email accounts. A single-account deployment does not need it — its credentials come from the vault keys above.
Field details
account-name
The logical name for this account (e.g., curia, personal, work). Used as the account parameter in email skills (email-list, email-get, email-draft-save, email-archive).
nylas_grant_id
The Nylas grant identifier for the connected email account. Supports env:VAR_NAME references to pull the value from an environment variable.
self_email
The email address this account reads from and sends as. Supports env:VAR_NAME references.
excluded_sender_emails
Additional sender email addresses to suppress from this account’s inbox, beyond the account’s own self_email. Primary use case: exclude other connected accounts’ addresses to prevent processing loops. Supports env:VAR_NAME references.
env:VAR_NAME references
Use env:VAR_NAME syntax in any string field to reference an environment variable rather than inlining credential values in the YAML:
Example: multi-account setup
When
channel_accounts.email is present in config/local.yaml, the single-account mode sourced from the vault keys channel.email.nylas_api_key / channel.email.nylas_grant_id / channel.email.nylas_self_email is ignored.Email setup
Step-by-step guide to connecting your email.
Initial configuration
Environment variables and first-run config.