Back to Discover

cc_matrix_channel

connector

IA-PieroCV

Matrix channel bridge for Claude Code — two-way MCP server in Rust

View on GitHub
15 starsMITSynced Aug 2, 2026

Install to Claude Code

/plugin marketplace add IA-PieroCV/cc_matrix_channel

README

CI License: MIT

Matrix Channel for Claude Code

Chat with your running Claude Code session from any Matrix client.

Works with any Matrix homeserver (Continuwuity, Synapse, Conduit, Dendrite). Full E2EE support.

Features

  • Two-way messaging with reply threading
  • File attachments (send, receive, auto-decrypt E2EE media)
  • Permission relay — approve/deny tool calls remotely
  • Runtime config — change settings without restart
  • Pairing-based access control

Setup (one-time)

Requires Bun.

/plugin marketplace add IA-PieroCV/cc_matrix_channel
/plugin install matrix@cc-matrix-channel
/reload-plugins
# You must need to restart your session to get the slash commands working and connect to the channel MCP
# claude --dangerously-load-development-channels plugin:matrix@cc-matrix-channel
/configure https://matrix.example.com @bot:example.com YOUR_PASSWORD
OR
/matrix:configure https://matrix.example.com @bot:example.com YOUR_PASSWORD

Then pair your account — DM the bot from your Matrix client:

/access pair <code>
OR
/matrix:access pair <code>

/access policy allowlist
OR
/matrix:access policy allowlist

Usage (every session)

claude --dangerously-load-development-channels plugin:matrix@cc-matrix-channel

Skills

SkillDescription
/matrix:accessPairing, allowlists, groups, delivery settings
/matrix:configureCredentials, status, setup guide

Tools

ToolDescription
replySend text + optional files, with threading
reactEmoji reaction
edit_messageEdit a sent message
download_attachmentDownload files (auto-decrypts E2EE)
send_attachmentSend local files
fetch_messagesRoom history
approve_pairingApprove user access (terminal only)

Configuration

Connection (~/.claude/channels/matrix/.env)

VariableRequiredDescription
MATRIX_HOMESERVER_URLYesHomeserver URL
MATRIX_USER_IDYesBot user ID (@bot:server)
MATRIX_PASSWORDYes*Bot password (first-run only)
MATRIX_STORE_PATHNoE2EE key storage (default: ./data/matrix_store)
MATRIX_ACCESS_TOKENNoFallback auth (limited E2EE)
MATRIX_DEVICE_IDNoDevice ID hint (auto-generated)
MATRIX_STORE_PASSPHRASENoEncrypt store at rest

Access & Delivery (~/.claude/channels/matrix/access.json)

Managed via /matrix:access. Changes take effect immediately.

SettingDefaultDescription
dmPolicypairingpairing, allowlist, or disabled
allowFrom[]Allowed user IDs
groups{}Per-room mention-only + patterns
ackReaction👀Ack emoji (empty to disable)
textChunkLimit4096Max chars per chunk
chunkModenewlinenewline or length
replyToModefirstfirst, all, or off

Manual Install

Without the plugin system:

  1. Download binary from Releases
  2. Save credentials to ~/.claude/channels/matrix/.env
  3. Add to .mcp.json:
    { "mcpServers": { "matrix": { "command": "/path/to/cc_matrix_channel" } } }
    
  4. claude --dangerously-load-development-channels server:matrix

Build from Source

git clone https://github.com/IA-PieroCV/cc_matrix_channel
cd cc_matrix_channel
cargo build --release   # Requires Rust 1.85+

Testing / Development

Test an RC build with --plugin-dir

The dev branch produces pre-release binaries. The Bun launcher downloads the exact version listed in plugin.json directly from GitHub Releases, so RC builds work the same as stable ones:

git clone https://github.com/IA-PieroCV/cc_matrix_channel
cd cc_matrix_channel
git checkout dev
# In your terminal:
claude --dangerously-load-development-channels --plugin-dir /path/to/cc_matrix_channel plugin:matrix@cc-matrix-channel

The launcher fetches the RC binary on first run and caches it.

Test local code changes (no GitHub release needed)

Build the binary and drop it in the launcher's cache path — the launcher skips the download when the file already exists:

cargo build --release
VERSION=$(grep '^version' .claude-plugin/plugin.json | sed 's/.*"\(.*\)".*/\1/')
cp target/release/cc_matrix_channel \
   ~/.claude/channels/matrix/plugin-data/bin/cc_matrix_channel-v${VERSION}
chmod +x ~/.claude/channels/matrix/plugin-data/bin/cc_matrix_channel-v${VERSION}

Then run with --plugin-dir as above. Repeat the cp after each cargo build.

Troubleshooting

ProblemFix
E2EE failsDelete store directory, restart with password
"Cannot send to this room"Send a message to the bot first
Bot ignores messagesCheck /matrix:access or complete pairing
Session won't restoreVerify MATRIX_STORE_PATH

Licensed under MIT.

Rendered live from IA-PieroCV/cc_matrix_channel's GitHub README — not stored, always reflects the source repo.

1 Plugin

NameDescriptionCategorySource
matrixMatrix channel for Claude Code — two-way messaging bridge with E2EE, access control, and permission relayproductivity./

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.