agentsclimarketplace

Matrix communication

Skill netresearch/matrix-skill/skills/matrix-communication

Use when communicating via Matrix chat, notifying teams, or managing E2EE. Triggers on #room:server references, Matrix URLs, and chat requests.From its SKILL.md

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

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

5.9 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it

Matrix Communication

Matrix rooms: send, read, download media. Always use *-e2ee.py scripts.

Bash ! rule: Prepend set +H && when arguments contain !

Quick Reference

ROOM: name (test), ID (!abc:server), or alias (#room:server).

# Send (E2EE)
set +H && uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-send-e2ee.py ROOM "message"
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-send-e2ee.py ROOM "message" --no-prefix
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-send-e2ee.py ROOM "is deploying" --emote
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-send-e2ee.py ROOM "πŸ“¦ Release: …" --notice    # unattended automation; no auto-reply loops
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-send-e2ee.py ROOM "reply" --thread '$rootEventId'
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-send-e2ee.py ROOM "reply" --reply '$eventId'

# Read (E2EE) β€” JSON includes media URL/info for m.image/m.file/m.video/m.audio
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-read-e2ee.py ROOM --limit 10
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-read-e2ee.py ROOM --limit 20 --json

# Download media (E2EE) β€” decrypts and saves by event ID
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-download-e2ee.py ROOM '$eventId' --output /tmp

# Edit / Delete / React
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-edit-e2ee.py ROOM '$eventId' "new text"
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-redact.py ROOM '$eventId' "reason"
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-react.py ROOM '$eventId' "βœ…"

# Rooms
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-rooms.py
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-rooms.py --search ops
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-resolve.py "#room:server"

# Room management (create, invite, promote)
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-create-room.py "Room Name" --alias localpart --invite '@user:server'
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-invite.py ROOM '@user:server'
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-power-level.py ROOM --show
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-power-level.py ROOM --set '@user:server' 50

# E2EE management
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-e2ee-setup.py --status
MATRIX_PASSWORD="pass" uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-e2ee-setup.py
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-e2ee-verify.py --timeout 180
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-fetch-keys.py ROOM --sync-time 60
uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-key-backup.py --recovery-key "EsTj ..." --import-keys

# Health check (uses python3, not uv run)
python3 ${CLAUDE_SKILL_DIR}/scripts/matrix-doctor.py --install

Script Selection

OperationE2EE (preferred)Non-E2EE Fallback
Sendmatrix-send-e2ee.pymatrix-send.py
Readmatrix-read-e2ee.pymatrix-read.py
Editmatrix-edit-e2ee.pymatrix-edit.py
Downloadmatrix-download-e2ee.pyβ€”
Reactmatrix-react.py(same)
Deletematrix-redact.py(same)

Other: matrix-rooms.py, matrix-resolve.py, matrix-create-room.py, matrix-invite.py, matrix-power-level.py, matrix-e2ee-setup.py, matrix-e2ee-verify.py, matrix-fetch-keys.py, matrix-key-backup.py, matrix-doctor.py.

matrix-power-level.py --set: --show first on rooms you didn't create (see references/api-reference.md).

Config

~/.config/matrix/config.json β€” required: homeserver, user_id. Optional: access_token

Error Handling

ErrorSolution
M_FORBIDDENJoin room first in Element
M_UNKNOWN_TOKENGet new token from Element
M_LIMIT_EXCEEDEDWait and retry
Could not find roommatrix-rooms.py to list rooms
[Unable to decrypt]First: uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-fetch-keys.py ROOM --sync-time 60 (requests keys from other devices, no recovery key needed); fallback: uv run ${CLAUDE_SKILL_DIR}/scripts/matrix-key-backup.py --recovery-key "..." --import-keys
libolm not foundLinux: apt install libolm-dev; macOS 26+ unsupported (see references/setup-guide.md)
matrix-nio not foundpython3 ${CLAUDE_SKILL_DIR}/scripts/matrix-doctor.py --install
Invalid passwordUse env var: MATRIX_PASSWORD="pass" uv run ...
signature failedDedicated device via matrix-e2ee-setup.py

Common Mistakes

  • Using non-E2EE scripts for encrypted rooms β€” always use *-e2ee.py
  • Forgetting set +H β€” ! in messages gets mangled by bash
  • Skipping --import-keys β€” key backup doesn't save without it
  • Using Element X for verification β€” use Element Desktop or Android
  • Hardcoding passwords β€” use MATRIX_PASSWORD env var

No editorializing

In messages and announcements, state what happened, not how good or careful the work is β€” no narrating expected results ("all tests green", "shipped") or self-praise ("clean", "the honest breaking change"). Judged by tone, not a wordlist. See references/no-editorializing.md.

References

  • references/setup-guide.md β€” setup
  • references/e2ee-guide.md β€” E2EE, key recovery, verification
  • references/messaging-guide.md β€” formatting, reactions
  • references/api-reference.md β€” Matrix API
  • references/hookshot-integration.md β€” provisioning webhooks via the matrix-hookshot bridge bot
  • references/no-editorializing.md β€” writing without self-praise / narrating the expected
  • netresearch/matrix-skill

What ships with it: 37 files

240.4 KB alongside SKILL.md, 28 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.