Skip to content

Slash commands, plugins & webhooks

Built-in slash definitions live in src/slash/ and are registered during composition. Clients list commands for their current channel/thread, invoke one with arguments, and receive command-specific responses. External registrations can add/remove definitions and answer pending calls through slash_response.

Signed slash interactions can carry author/key/signature/timestamp/nonce metadata into messages. Connection cleanup drops outstanding slash ownership when a socket closes.

Plugins register through src/plugins/ and wrap the central dispatcher, allowing extensions to intercept or delegate without bypassing the authentication gate. Plugin configuration remains under config.json.

Webhooks are server-managed endpoints with generated credentials/paths. GitHub payload handling has a focused adapter under src/webhooks/; generic payload processing translates accepted inbound events into server behavior. Management commands require manage_server.