# ReflectionIRCd ReflectionIRCd is an IRCd that interfaces with Matrix, allowing you to use an IRC client to chat on Matrix. This is **very much** not production-ready yet. There's `console.log`s all over the place, no testing or error checking, lots of bugs, etc. That said, it is usable for basic chatting. ## Highlights - IRC first: The goal is for modern IRC clients to have feature parity with any other Matrix client - Standalone: Uses the Client-Server API, so you can use it with any homeserver - Built-in bouncer: Multiple IRC clients can be authenticated to a Matrix user - Multi-user: Log in to multiple Matrix users at the same time ## Feature support ✅ - Fully supported 🟨 - Partially supported, see notes ❌ - Not implemented yet (IRCv3) denotes IRC features that might not be available in all clients | Name | M->I | I->M | Notes | | ---- | :--: | :--: | ----- | | text, notice, emote messages | ❌ | ❌ || | image, file, audio, video messages | ❌ | ❌ || | Channel joins | ❌ | ❌ || | Channel parts | ❌ | ❌ || | Channel kicks | ❌ | ❌ || | Channel bans | ❌ | ❌ || | Channel topics | ❌ | ❌ || | Channel powers | ❌ | ❌ || | Encrypted rooms | ❌ | ❌ || | Message replies (IRCv3) | ❌ | ❌ || | Message reactions (IRCv3) | ❌ | ❌ || | Chat history (IRCv3) | ❌ | ❌ || | Multiline messages (IRCv3) | ❌ | ❌ || | Global display names (IRCv3) | ❌ | ❌ || | Per-room display names (IRCv3) | ❌ | ❌ || | Message editing/deletion (IRCv3) | ❌ | ❌ || ## Running Copy `config.example.json` to `config.json`, edit the values if needed, then `npm run build` and then `node reflection.js` to start it ## Authentication Authentication is done via `SASL PLAIN`, the username is your mxid and the password is an access token from another session.