agentsclimarketplace

Matrix administration

Skill netresearch/matrix-skill/skills/matrix-administration

Use when administering a Synapse / Matrix homeserver — list or snapshot all rooms, rate room health (public, unencrypted, orphaned), render a Graphviz map of the room/space tree, force-join users, promote room admins, harden rooms (add-to-space + restrict + encrypt), deactivate Matrix users (with GDPR erase), find biggest rooms by DB size, audit where a user is admin or member, replay join/leave timelines, or search unencrypted history. Trigger on any '/_synapse/admin', server-wide room operation, Matrix user offboarding, or anything requiring a homeserver-admin token — even without 'admin API' in the prompt. Companion to matrix-communication.From its SKILL.md

Install
npx -y skills add netresearch/matrix-skill --skill matrix-administration

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as (MIT AND CC-BY-SA-4.0). See LICENSE-MIT and LICENSE-CC-BY-SA-4.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

4.5 KB, 968 tokens by cl100k_base, as published. Nobody here has run it

Matrix Administration

Stdlib-only Python wrappers around the Synapse Admin API and the Client-Server API. Reads ~/.config/matrix/config.json (the same file matrix-communication uses).

Quick Reference

S=skills/matrix-administration/scripts

python3 $S/synapse-fetch-rooms.py [--server :example.com]
python3 $S/synapse-rate-rooms.py --space '!home:srv' [--language de]
python3 $S/synapse-graph.py --space '!home:srv'
python3 $S/synapse-biggest-rooms.py [-n 10]

python3 $S/synapse-join-room.py    '!room:srv' '@user:srv'
python3 $S/synapse-make-admin.py   '!room:srv' '@user:srv'
python3 $S/synapse-add-to-space.py '!room:srv' '!space:srv'
python3 $S/synapse-migrate-room.py '!room:srv' '@admin:srv' '!space:srv'

python3 $S/synapse-deactivate-user.py   '@user:srv'   # DESTRUCTIVE
python3 $S/synapse-user-rooms.py        '@user:srv'
python3 $S/synapse-user-admin-rooms.py  '@user:srv'
python3 $S/synapse-room-member-flow.py  '!room:srv'
python3 $S/synapse-search.py            '!room:srv' '@bot:srv' deploy

Scripts

ScriptPurpose
synapse-fetch-rooms.pySnapshot all rooms + state → rooms.json
synapse-rate-rooms.pyHealth checks (EN/DE) on rooms.json
synapse-graph.pyRender rooms.json → Graphviz .dot + .svg
synapse-biggest-rooms.pyTop-N rooms by DB size
synapse-join-room.pyForce-join a user
synapse-make-admin.pyPromote to PL 100
synapse-add-to-space.pySend m.space.child
synapse-migrate-room.pyAdd to space + restrict + encrypt
synapse-deactivate-user.pyDestructive deactivation (--erase for GDPR)
synapse-user-admin-rooms.pyLocal: rooms where user is PL 100
synapse-user-rooms.pyLocal: rooms a user belongs to
synapse-room-member-flow.pyJoin/leave timeline
synapse-search.pyUnencrypted history search

Setup

~/.config/matrix/config.json (respects $XDG_CONFIG_HOME):

{
  "homeserver": "https://matrix.example.com",
  "admin_token": "syt_admin_…",
  "room_filter": ":example.com",
  "default_space_id": "!home:example.com",
  "home_space_ids": ["!home:example.com"]
}

homeserver and either admin_token or access_token (server-admin) are required. The other fields are optional. Env fallbacks: MATRIX_USER_ID, MATRIX_SPACE_ID, LANGUAGE=en|de, NO_COLOR.

Safety

The token is server-admin. Read references/safety-guide.md before any destructive op.

  • synapse-deactivate-user.py is irreversible.
  • synapse-migrate-room.py enables encryption (one-way) and restricts joins; power-level changes restored on exit including Ctrl-C.
  • synapse-make-admin.py raises PL 100 permanently.
  • synapse-search.py cannot read E2EE — empty ≠ no messages.
  • rooms.json exposes user IDs; never commit it.

References

What ships with it: 27 files

83.1 KB alongside SKILL.md, 20 of them executable

evals/

Keep looking

Skills are one crate of 326,871. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.