Navigation
ELOWEN · Documentation

Last updated: October 27, 2026

Browse documentation · Choose which Discord roles the bot answers
Channels and chatbots

Choose which Discord roles the bot answers

Add Discord role policies so the bot answers the right members, gives a shared room extra instructions and reserves operator commands for the right people.

How a role policy works

  • A policy maps a Discord role ID to access, a role name and optional extra instructions for the room.
  • The first matching named policy applies, and * is evaluated after every named policy whatever its position. Keep * last so the order is readable.
  • A member who matches no policy is ignored. The bot does not answer, and it does not explain why.
  • A policy does not replace identity. The member also needs a linked Chetty account, and that account's Project access and tool permissions apply to the turn.

Add a role policy

  1. Open Settings → Plugins → Discord and find Role policies.
  2. Add a policy with a Discord role ID. Repeat for each role that may use the bot.
  3. Optionally add extra instructions for the room and turn on the administrator flag for operators.
  4. Add a * policy last if every server member should be admitted.
  5. Save. The change requests a restart, because the adapter reads its access rules at start.

Operator commands

The administrator flag belongs to a role policy, not to a Discord role name. A member is an operator when the first policy matching one of their roles has the flag set.

Operators get the shared /model, /reasoning, /context and /display pickers and the room controls /stop, /stats and /compact. /restart restarts Chetty for everyone. Every command that requires an operator still checks the current policy each time it runs.

What a refused member sees

  • A slash command. The member gets a private refusal and cannot reset the shared conversation, not even with /new or /help.
  • A picker. Every button, menu submission and page change checks access again, so losing the mapped role also closes a picker that is already open. The refusal updates only that member's private reply.
  • A question. The refusal is a private notice, and the shared question stays open for everyone else.