{"id":43091107,"url":"https://github.com/netresearch/matrix-skill","last_synced_at":"2026-04-26T06:06:23.431Z","repository":{"id":335678414,"uuid":"1146641845","full_name":"netresearch/matrix-skill","owner":"netresearch","description":"Agentic Skill for Matrix chat communication. Send messages to Matrix rooms on behalf of users via access token authentication. Works with any Matrix homeserver.","archived":false,"fork":false,"pushed_at":"2026-03-26T15:19:58.000Z","size":257,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-27T05:51:05.698Z","etag":null,"topics":["agent-skills","agentic-skill","ai-agent","chat","claude-code-skill","communication","element","matrix","open-standard","skill"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/netresearch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-CC-BY-SA-4.0","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY-AUDIT.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-01-31T12:42:05.000Z","updated_at":"2026-03-26T15:25:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/netresearch/matrix-skill","commit_stats":null,"previous_names":["netresearch/matrix-skill"],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/netresearch/matrix-skill","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Fmatrix-skill","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Fmatrix-skill/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Fmatrix-skill/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Fmatrix-skill/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/netresearch","download_url":"https://codeload.github.com/netresearch/matrix-skill/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netresearch%2Fmatrix-skill/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292431,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-skills","agentic-skill","ai-agent","chat","claude-code-skill","communication","element","matrix","open-standard","skill"],"created_at":"2026-01-31T16:13:44.322Z","updated_at":"2026-04-26T06:06:23.425Z","avatar_url":"https://github.com/netresearch.png","language":"Python","readme":"# Matrix Skill\n\nAgentic Skills for Matrix, distributed as a Claude Code plugin. Two skills ship in this repo:\n\n| Skill | Purpose | API surface |\n|-------|---------|-------------|\n| [**matrix-communication**](skills/matrix-communication/) | Send / read / edit / react in chat rooms on behalf of a regular user, with full E2EE support | Matrix Client-Server API |\n| [**matrix-administration**](skills/matrix-administration/) | Operate a Synapse homeserver — snapshot rooms, rate room health, render a Graphviz map, force-join, promote, harden, deactivate, search history | Synapse Admin API |\n\nThe two skills are independent — you can install the plugin and use either or both. They share the same config file (`~/.config/matrix/config.json`).\n\n**What is an Agentic Skill?** Platform-agnostic instructions and tools that AI coding agents can use. This skill is packaged as a Claude Code plugin but follows the open [Agentic Skills specification](https://github.com/anthropics/agentic-skills).\n\n## matrix-communication — Features\n\n- **Send messages** to any joined Matrix room\n- **Rich formatting** - bold, italic, code, strikethrough, spoilers, lists, blockquotes\n- **Smart link shortening** - Jira, GitHub, GitLab URLs become readable links\n- **Matrix mentions** - `@user:server` becomes clickable user pill\n- **Room links** - `#room:server` becomes clickable room link\n- **Code blocks** - Syntax-highlighted multi-line code\n- **Emotes** - `/me` style action messages (`--emote`)\n- **Thread replies** - Keep discussions organized (`--thread`)\n- **Reactions** - Add emoji reactions to messages (✅ 👍 🚀)\n- **Edit messages** - Modify sent messages\n- **Redact messages** - Delete messages from rooms\n- **Visual effects** - Confetti 🎉, fireworks 🎆, snowfall ❄️ (Element clients)\n- **List rooms** to find the right destination\n- **Read messages** - both unencrypted and E2EE decryption\n- **Bot prefix** - optional 🤖 prefix for automated messages\n- **Device verification** - SAS emoji verification for E2EE\n\n## Installation\n\n### Marketplace (Recommended)\n\nAdd the [Netresearch marketplace](https://github.com/netresearch/claude-code-marketplace) once, then browse and install skills:\n\n```bash\n# Claude Code\n/plugin marketplace add netresearch/claude-code-marketplace\n```\n\n### npx ([skills.sh](https://skills.sh))\n\nInstall with any [Agent Skills](https://agentskills.io)-compatible agent:\n\n```bash\nnpx skills add https://github.com/netresearch/matrix-skill --skill matrix-communication\n```\n\n### Download Release\n\nDownload the [latest release](https://github.com/netresearch/matrix-skill/releases/latest) and extract to your agent's skills directory.\n\n### Git Clone\n\n```bash\ngit clone https://github.com/netresearch/matrix-skill.git\n```\n\n### Composer (PHP Projects)\n\n```bash\ncomposer require netresearch/matrix-skill\n```\n\nRequires [netresearch/composer-agent-skill-plugin](https://github.com/netresearch/composer-agent-skill-plugin).\n## Prerequisites\n\n**For E2EE support** (most Matrix rooms), install libolm:\n\n```bash\nsudo apt install libolm-dev    # Debian/Ubuntu\nsudo dnf install libolm-devel  # Fedora\nbrew install libolm            # macOS\n```\n\n## Usage\n\n### Send a Message\n\n```bash\n# By room alias\nuv run skills/matrix-communication/scripts/matrix-send.py \"#myroom:matrix.org\" \"Deployment complete!\"\n\n# By room ID\nuv run skills/matrix-communication/scripts/matrix-send.py \"!abc123:matrix.org\" \"Hello!\"\n\n# With markdown formatting\nuv run skills/matrix-communication/scripts/matrix-send.py \"#dev:matrix.org\" \"**Build passed** for commit abc123\"\n```\n\n### List Joined Rooms\n\n```bash\n# List all rooms\nuv run skills/matrix-communication/scripts/matrix-rooms.py\n\n# Search for specific room\nuv run skills/matrix-communication/scripts/matrix-rooms.py --search ops\n```\n\n### Read Messages\n\n```bash\n# Read last 10 messages (unencrypted rooms)\nuv run skills/matrix-communication/scripts/matrix-read.py \"#myroom:matrix.org\"\n\n# Read E2EE encrypted messages\nuv run skills/matrix-communication/scripts/matrix-read-e2ee.py \"#myroom:matrix.org\" --limit 10\n\n# Read more messages\nuv run skills/matrix-communication/scripts/matrix-read.py \"#myroom:matrix.org\" --limit 50\n```\n\n### Resolve Room Alias\n\n```bash\nuv run skills/matrix-communication/scripts/matrix-resolve.py \"#myroom:matrix.org\"\n```\n\n## E2EE Support\n\nE2EE is set up automatically when you configure the skill via the agent. The agent creates a dedicated \"Matrix Skill E2EE\" device that works alongside your Element client without conflicts.\n\n| Script | Purpose |\n|--------|---------|\n| `matrix-send-e2ee.py` | Send encrypted messages |\n| `matrix-read-e2ee.py` | Read/decrypt messages |\n| `matrix-edit-e2ee.py` | Edit messages (encrypted) |\n| `matrix-e2ee-verify.py` | Device verification |\n\n*First run ~5-10s (key sync), subsequent runs faster.*\n\n⚠️ Using `access_token` fallback causes key sync conflicts - use dedicated device.\n\n**Device verification** (optional):\n```bash\nuv run skills/matrix-communication/scripts/matrix-e2ee-verify.py --timeout 120\n# Then start verification from Element: Settings → Security → Sessions\n```\n\n## matrix-administration — Features\n\nSynapse homeserver administration via the [Synapse Admin API](https://element-hq.github.io/synapse/latest/usage/administration/admin_api/index.html). **Stdlib-only Python** (no E2EE deps required). Works against any Synapse 1.x server.\n\n- Paginated room snapshot (`synapse-fetch-rooms.py` → `rooms.json`)\n- Health rating with EN+DE phrasing — public, unencrypted, orphaned-from-spaces\n- Colour-coded Graphviz SVG of the entire room/space tree\n- Force-join, promote-admin, link-room-to-space\n- One-shot hardening pipeline: add to space + restrict joins + enable encryption + restore power levels\n- **Destructive** user deactivation with optional GDPR `--erase`\n- Inspection: list user's admin/membership rooms, replay join/leave timelines, search unencrypted history, find biggest rooms by DB size\n\nQuick start:\n\n```bash\n# Snapshot all rooms (the admin token comes from ~/.config/matrix/config.json)\npython3 skills/matrix-administration/scripts/synapse-fetch-rooms.py\n\n# Rate them in German, treating !home:example.com as our home space\npython3 skills/matrix-administration/scripts/synapse-rate-rooms.py \\\n    --language de --space '!home:example.com'\n\n# Render a Graphviz SVG (requires the `dot` binary)\npython3 skills/matrix-administration/scripts/synapse-graph.py --space '!home:example.com'\n```\n\nFull reference and safety guide live in [`skills/matrix-administration/`](skills/matrix-administration/).\n\n## Structure\n\n```\nmatrix-skill/\n├── .claude-plugin/\n│   └── plugin.json              # Plugin manifest (lists both skills)\n├── skills/\n│   ├── matrix-communication/    # Client-Server API, E2EE chat\n│   │   ├── SKILL.md\n│   │   ├── scripts/\n│   │   │   ├── matrix-send-e2ee.py      # Send (E2EE) — USE THIS\n│   │   │   ├── matrix-read-e2ee.py      # Read (E2EE) — USE THIS\n│   │   │   ├── matrix-edit-e2ee.py      # Edit (E2EE) — USE THIS\n│   │   │   ├── matrix-send.py           # Send (non-E2EE fallback)\n│   │   │   ├── matrix-read.py           # Read (non-E2EE fallback)\n│   │   │   ├── matrix-edit.py           # Edit (non-E2EE fallback)\n│   │   │   ├── matrix-react.py          # React to messages\n│   │   │   ├── matrix-redact.py         # Delete messages\n│   │   │   ├── matrix-rooms.py          # List rooms\n│   │   │   ├── matrix-resolve.py        # Resolve aliases\n│   │   │   ├── matrix-e2ee-setup.py     # E2EE setup\n│   │   │   └── matrix-e2ee-verify.py    # Device verification\n│   │   └── references/\n│   └── matrix-administration/   # Synapse Admin API, server ops\n│       ├── SKILL.md\n│       ├── scripts/\n│       │   ├── _lib/                    # stdlib-only shared helpers\n│       │   ├── synapse-fetch-rooms.py\n│       │   ├── synapse-rate-rooms.py\n│       │   ├── synapse-graph.py\n│       │   ├── synapse-biggest-rooms.py\n│       │   ├── synapse-join-room.py\n│       │   ├── synapse-make-admin.py\n│       │   ├── synapse-add-to-space.py\n│       │   ├── synapse-migrate-room.py\n│       │   ├── synapse-deactivate-user.py\n│       │   ├── synapse-user-admin-rooms.py\n│       │   ├── synapse-user-rooms.py\n│       │   ├── synapse-room-member-flow.py\n│       │   └── synapse-search.py\n│       └── references/\n│           ├── synapse-admin-api.md\n│           ├── room-health-checks.md\n│           ├── room-graph-pipeline.md\n│           └── safety-guide.md\n├── LICENSE-MIT           # Code license (MIT)\n├── LICENSE-CC-BY-SA-4.0  # Content license (CC-BY-SA-4.0)\n└── README.md\n```\n\n## License\n\nThis project uses split licensing:\n\n- **Code** (scripts, workflows, configs): [MIT](LICENSE-MIT)\n- **Content** (skill definitions, documentation, references): [CC-BY-SA-4.0](LICENSE-CC-BY-SA-4.0)\n\nSee the individual license files for full terms.\n## Author\n\nNetresearch DTT GmbH - https://www.netresearch.de\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetresearch%2Fmatrix-skill","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetresearch%2Fmatrix-skill","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetresearch%2Fmatrix-skill/lists"}