Saved Isn't Live: the Discord Plugin's Configure Skill

The video explains the Discord plugin's configure skill, which has three modes and two files. A new bot token only takes effect after a restart, while access policy changes apply on the next message, and the skill never checks that a pasted token looks real.

2:04 video3 min readWatch on YouTube

Saving a fresh Discord bot token does not make it live right away. This short video explains why, using the Discord plugin's configure skill as the example. The credential file is read only once, when the session starts, so a saved token and a running token are not the same thing. The video also covers how the skill locks down access and a gap in what it checks.

Three modes, two files

The configure skill reads whatever argument you give it:

  • With no arguments, it shows status. It reads both files and tells you whether a token is set, what the access policy is, who is already paired, and gives you one concrete next step.
  • With a token, it trims stray whitespace, creates the channel folder if it is missing, updates the credential file without disturbing anything else already in it, and locks that file to owner read only.
  • With the word clear, it deletes the token line, or the whole file if the token was all there was.

Two files carry all of this. The credential file holds the token and is read once, when the session starts. The access file holds the policy and is read again on every single incoming message.

Restart for the token, nothing for the policy

This difference is the central point. Save a new token and it does not take effect until you restart the session. Update the allowlist, though, and it is live on your very next message. If you skip the restart after saving a token, you will think you are running the new one when you are not.

The lockdown rule

The skill's rule is explicit: always push toward an allowlist, and never let pairing become permanent. Pairing exists only to capture the Discord ID you do not know yet. Once everyone you want has been captured, the skill offers to flip the switch to an allowlist itself, without waiting to be asked.

No validation

The gap the video highlights is that the skill never checks that what you paste actually looks like a token. There is no length check and no format check. Paste a grocery list and it is written to the credential file exactly as a real token would be. The skill trusts you completely at the one moment it probably should not.

Key takeaways

  • A saved token is not a live token; the credential file is read once at session start.
  • Restart the session after saving a new token.
  • The access policy file is re-read on every incoming message, so policy changes apply immediately.
  • No arguments shows status, a token argument saves it, and clear removes it.
  • The credential file is locked to owner read only.
  • Pairing is only for capturing unknown Discord IDs; the skill pushes toward an allowlist.
  • The skill does no format or length validation on the token.

Try it yourself

Open a Claude Code session with the Discord configure skill and paste an obviously fake token, such as not-a-real-token. Watch two things. Does it save that string without any complaint? And after you tell it your allowlist is complete, does it offer to lock down access itself, or does it wait for you to ask? Run it on your own bot setup rather than a made-up one.

Chapters

  1. 0:00The naive framing: "is a saved token live now?"
  2. 0:11Three modes, two files
  3. 0:46The lockdown rule
  4. 1:15No validation
  5. 1:32Carry-out
  6. 1:42Your turn
  7. 1:59Outro
Full transcript(auto-generated, with timestamps)

The naive framing: "is a saved token live now?"

[0:00]Someone assumed saving a fresh Discord bot token makes it live right away. It doesn't. The credential file only gets read once at startup. So, I saved a new token. It's live now, right? The skill

Three modes, two files

[0:11]Reads whatever argument you give it. No arguments, show status, read both files, tell you whether token is set, what the access policy is, who's already paired, and give you one concrete next step. Give it a token, it trims stray white space, creates the channel folder if it's missing, updates the credential file without disturbing anything else already in it, and locks that file to owner read only. Give it the word clear, it deletes the token line. Or the whole file if that's all there was. Two files carry all of this. The credential file holds the token read once when the session starts. The access file holds the policy and it's read again on every single incoming message. The rule here

The lockdown rule

[0:47]Is explicit. Always push toward an allow list. Never let pairing become permanent. Pairing exists only to capture the Discord ID you don't know yet. Once everyone you want is captured, the skill offers to flip the switch itself without waiting to be asked. One detail is easy to miss. Save a new token and it doesn't take effect until you restart the session. The credential file is only read once at startup. Update the allow list, though. And it's live on your very next message. Skip the restart after saving a token and you'll think you're running the new one when you're not. Here's the gap worth knowing. The

No validation

[1:17]Skill never checks that what you paste actually looks like a token. No length check, no format check, nothing. Paste a grocery list and it gets written to the credential file exactly the same way a real token would. The skill trusts you completely at the one moment it probably shouldn't. A saved token isn't a live

Carry-out

[1:34]Token. The credential file is only read once at restart. The access policy has no such weight. It's checked on your very next message. Your turn. Open a

Your turn

[1:43]Cloud Code session with the Discord configure skill and paste a token that's obviously fake, something like not a real token. Watch two things. Does it save that string without any complaint at all? And after you tell it your allow list is complete, does it offer to lock down access itself, or does it wait for you to ask? Saved isn't live, lay them in

Outro

[2:01]For bare.

More from Extending Claude — Skills, Plugins & Connectors

Humanitarians AI Lyrical Literacy Project