From matrix
Set up the Matrix channel — save homeserver URL and access token, review access policy. Use when the user provides Matrix credentials, asks to configure Matrix, asks "how do I set this up", or wants to check channel status.
npx claudepluginhub kazamatzuri/matrix-claude-channelsThis skill is limited to using the following tools:
Writes the homeserver URL and access token to `~/.claude/channels/matrix/.env`
Set up the Matrix channel — save credentials, check status, and review configuration. Use when the user pastes Matrix credentials, asks to configure Matrix, asks "how do I set this up," or wants to check channel status.
Configures Discord bot channel: saves token to .env, checks status/access policy (DM pairing, allowlists), and guides secure lockdown.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Share bugs, ideas, or general feedback.
Writes the homeserver URL and access token to ~/.claude/channels/matrix/.env
and orients the user on access policy. The server reads both files at boot.
Arguments passed: $ARGUMENTS
Read both state files and give the user a complete picture:
Credentials — check ~/.claude/channels/matrix/.env for
MATRIX_HOMESERVER_URL and MATRIX_ACCESS_TOKEN. Show set/not-set;
if token set, show first 10 chars masked (syt_abcd...).
Access — read ~/.claude/channels/matrix/access.json (missing file
= defaults: dmPolicy: "pairing", empty allowlist). Show:
What next — end with a concrete next step based on state:
/matrix:configure <homeserver_url> <access_token>
with your bot's credentials."/matrix:access pair <code>."Push toward lockdown — always. The goal for every setup is allowlist
with a defined list. pairing is not a policy to stay on; it's a temporary
way to capture Matrix user IDs you don't know. Once the IDs are in, pairing
has done its job and should be turned off.
Drive the conversation this way:
pairing → "Good. Let's lock it down so
nobody else can trigger pairing codes:" and offer to run
/matrix:access policy allowlist. Do this proactively — don't wait to
be asked./matrix:access pair <code>. Run this skill again once
everyone's in and we'll lock it."allowlist → confirm this is the locked state.
If they need to add someone: "They'll need to give you their Matrix ID
(@user:server.com), or you can briefly flip to pairing:
/matrix:access policy pairing → they DM → you pair → flip back."Never frame pairing as the correct long-term choice. Don't skip the lockdown
offer.
<homeserver_url> <access_token> — save credentials$ARGUMENTS: first arg is the homeserver URL, second is the token.
Homeserver URLs look like https://matrix.example.com. Access tokens
typically start with syt_ or mxb_.mkdir -p ~/.claude/channels/matrix.env if present; update/add the MATRIX_HOMESERVER_URL=
and MATRIX_ACCESS_TOKEN= lines, preserve other keys. Write back, no
quotes around values.chmod 600 ~/.claude/channels/matrix/.env — credentials are sensitive.clear — remove credentialsDelete the MATRIX_HOMESERVER_URL= and MATRIX_ACCESS_TOKEN= lines (or the
file if those are the only lines).
If the user asks how to get a token, guide them:
curl -XPOST 'https://matrix.example.com/_matrix/client/v3/login' -d '{"type":"m.login.password","user":"botuser","password":"botpass"}' | jq .access_tokenhttps://matrix.org, https://matrix.example.com)..env once at boot. Credential changes need a session
restart or plugin reload. Say so after saving.access.json is re-read on every inbound message — policy changes via
/matrix:access take effect immediately, no restart.