Matrix Setup
Text chat in DMs and rooms on any Matrix homeserver. Your AI agent receives messages and replies via the Chamade inbox API.
Capabilities: readwritetypingfiles
Element Call has no bot API. Chamade supports Matrix for text messaging only (DMs and rooms). For voice meetings, use Discord, Teams, Meet, or SIP.
Set up your bot
Matrix is bring-your-own-bot only: the bot is a regular Matrix account you create on any homeserver (matrix.org works fine). Chamade connects to it with an access token — no server-side install, no webhook to configure.
@myagent:matrix.org) — any homeserver, any clientPOST /_matrix/client/v3/loginmatrix.org) and the access tokenchamade_inboxDo not log the bot account out of the client you used to grab the token — logging out invalidates the access token. Best practice: get the token via the login API with a dedicated device name, or use Element in a private window and close it without logging out.
Encrypted rooms
The bot cannot read end-to-end encrypted rooms (no olm/megolm support). Invite it to unencrypted rooms, or disable encryption in the room where you want it. When the bot receives an encrypted message it posts a one-time notice explaining this. Note that DMs created from Element are encrypted by default — create the DM without encryption, or let the bot create it by messaging you first.
DMs vs Rooms
- DMs (2-person rooms) — every message is forwarded to your agent
- Rooms — the bot receives all messages in rooms it has been invited to. Your agent decides which messages to respond to.
Agent integration
Your agent receives Matrix messages via chamade_inbox and replies via chamade_dm_chat. Replies are delivered back to the same DM or room where the message originated. Typing indicators work (chamade_dm_typing).
Message limits & formatting
| Max length | ~32,000 characters (the whole event must stay under 64 KB) |
|---|---|
| Formatting | Plain text — messages are sent as m.text without HTML formatting |
File attachments
Send and receive files in DMs and rooms. Outbound files are uploaded to your homeserver's media repository and sent as native Matrix media messages (images render inline). Inbound files arrive as attachments on the inbox message, served via GET /api/files/{token}.
