Skip to content

About

Vencord-style mod manager for the Element (Matrix) desktop client: apply modular patches, themes and tweaks.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Element Mods logo

Element Mods

Vencord-style mods for the Element (Matrix) desktop client.
Pick a patch, apply, restart. Undo any time.

CI MIT license Node 18+


Element Mods patches the app's bundled webapp to load a set of JavaScript mods. Everything is local: no telemetry, no server, and every change can be reverted with one command.

Unofficial project, not affiliated with Element or the Matrix.org Foundation.

Requirements

  • Node.js 18+
  • A Linux install of Element (e.g. /opt/Element-Nightly or /opt/Element)

Install

npm install

Usage

Run commands from this directory with node src/cli.js. Since the app lives in /opt (root-owned), any command that writes to it needs sudo:

node src/cli.js detect            # auto-detect the install path
node src/cli.js path /opt/Element-Nightly   # set the Element install path
sudo node src/cli.js apply        # patch Element

Then restart Element. All patches are loaded but disabled by default; toggle them on/off in Settings -> Modding.

Other commands:

node src/cli.js list              # show available patches and patch status
node src/cli.js status            # show whether the app is currently patched
sudo node src/cli.js restore      # restore the original webapp

Available patches

Click a patch to see its description.

Autocorrect

LanguageTool-style spelling and grammar checker for the message composer. Mistakes are underlined (red for spelling, blue for grammar); click one for suggestions, Ignore or Disable rule. It works with any LanguageTool-compatible backend, either your own server or the official API, configured in Settings -> Autocorrect.

Force User Status

Force-enables Element's built-in MSC4426 User Status feature (the emoji/text status row in your user menu and the status editor in Settings) even when your homeserver does not advertise support for the org.matrix.msc4429 unstable feature it requires. Element silently force-disables that feature on servers that don't support it, so the setting alone does nothing β€” this patch bypasses the server-support check. Restart is recommended after enabling.

Works on any server, including matrix.org and custom servers.

Status Control

Lets you control your presence from your profile picture in the top-left corner. Right-click it to pick a status: Online, Away, Offline, Busy or Automatic (left-click keeps the normal user menu), and the chosen mode is forced on the server β€” Element's own idle/away logic can no longer change it. The current status is shown as a presence dot on your avatar.

GIF Picker

Adds a GIF picker button to the message composer to search GIFs from Giphy or Klipy (switchable via a dropdown in the picker header; your last choice is remembered) and send them into the current room.

image

To use it you need a (free) API key for each provider:

  1. Giphy: go to https://developers.giphy.com, sign in, click Create an App and copy the API key.
  2. Klipy: go to https://partner.klipy.com/api-keys, create a platform, click Create Key and copy it.
  3. In Element, open the GIF picker, pick the provider in the dropdown, and click the gear (βš™) icon in its header.
  4. Paste the key into the field and press Enter.

Keys are stored locally in your browser's localStorage and never leave your machine.

Hidden Features

Adds a 'Hidden Features' tab to the Settings dialog with toggle switches for Element features that aren't exposed in the normal UI: the MSC4426 user-status system (status rows in your user menu/Settings plus an automatic πŸ“ž on-call status), QR-code login, reaction images, developer mode, timeline debug panels, hidden-event display and more. Changes take effect after restarting the app.

Hide Room

Right-click a room and choose 'Hide room' to remove it from the room list. Hidden rooms are saved locally and can be unhidden from a 'Hidden rooms' tab in Settings.

image
Message Subscriptions

Creates local-only subscription channels: a channel that gathers every message containing a word you pick from a channel you pick, visible only to you (everything is stored locally, nothing is sent to any server). Configure subscriptions in Settings -> Subscriptions by choosing a source channel and typing a word. Each subscription appears as a button in the left sidebar, below the pinned rooms; clicking it opens a live view (newest first) of every matching message, with a button to jump to each one in its real room. It updates in real time as new matching messages arrive.

For example: choose the channel Escalade Support-DEV and the word notidoc β€” every message in that channel containing "notidoc" will appear in your new subscription channel.

Message Logger

Remembers message text locally and shows deleted messages in red, with a dismiss button that restores the grey 'Message deleted' placeholder.

image
Modding Tab

Adds a 'Modding' tab to the Settings dialog showing the mod platform version and the list of active patches.

image
No Quick Settings

Removes the quick settings menu. Clicking the settings gear (bottom of the space panel) opens the full Settings page directly.

Pin Rooms

Pin/unpin rooms via the room right-click menu and show them as avatar buttons in the left sidebar, below the spaces.

image
Room List Sections

Adds a 'Room list' tab to the Settings dialog to show or hide each section of the conversation list (Unreads, People, Rooms, Mentions, Invites). It also adds a new Latest section that lists every conversation (rooms and chats together) in chronological order, from the most recent message to the oldest.

Save Message

Right-click a message to save it, and open a 'Saved messages' page from a new button in the left sidebar.

image image
Themes

Theme engine modeled after Vencord's theme system: apply and manage custom CSS themes (bundled, added by URL, pasted, or generated from an uploaded image β€” a color palette is extracted from the image and turned into a theme automatically.

image

Development

npm install
npm test        # validates manifests and runs patch self-checks

Patches live in patches/<id>/ (a manifest.json plus an index.js). See CONTRIBUTING.md to write your own.

Uninstall

sudo node src/cli.js restore

License

MIT

About

Vencord-style mod manager for the Element (Matrix) desktop client: apply modular patches, themes and tweaks.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages