Standalone Matrix CLI client with E2E encryption. Send messages, listen to rooms, manage invitations, manage devices, and list joined rooms — all from the command line.
docker run --rm xomoxcc/minimatrix:latest
# List joined rooms and pending invites
minimatrix --user myuser --password mypass --homeserver https://matrix.example.com rooms
# List and accept invitations
minimatrix --user myuser --password mypass invites
minimatrix --user myuser --password mypass invites accept --room '!abc:example.com'
# Send a message
minimatrix --user myuser --password mypass send --room '!abc:example.com' "Hello!"
# Send a file (or multiple with repeated -f)
minimatrix --user myuser --password mypass send --room '!abc:example.com' --file /path/to/image.png
minimatrix --user myuser --password mypass send --room '!abc:example.com' -f photo.jpg -f doc.pdf "Check these!"
# Listen for messages
minimatrix --user myuser --password mypass listen --room '!abc:example.com'
# Manage devices
minimatrix --user myuser --password mypass devices
minimatrix --user myuser --password mypass devices purge
minimatrix --user myuser --password mypass devices import-keys --delete-old-stores
Or use a config file at ~/.config/minimatrix/config.yaml:
homeserver: "https://matrix.example.com"
user: "myuser"
password: "mypassword"
| Variable | Description | Default |
|---|---|---|
MATRIX_HOMESERVER | Matrix homeserver URL | http://synapse.matrix.svc.cluster.local:8008 |
MATRIX_USER | Matrix username (required) | — |
MATRIX_PASSWORD | Matrix password (required) | — |
CRYPTO_STORE_PATH | Path for E2E encryption crypto store | ~/.local/share/minimatrix/crypto_store |
AUTH_METHOD | Auth method (password, sso, or jwt) | password |
AUTO_JOIN | Auto-accept pending room invitations on startup | false |
LOGURU_LEVEL | Log verbosity (DEBUG, INFO, WARNING, ...) | DEBUG |
Set AUTH_METHOD=jwt to authenticate via Keycloak ROPC grant instead of direct Matrix password login.
| Variable | Description | Default |
|---|---|---|
KEYCLOAK_URL | Keycloak base URL (required if jwt) | — |
KEYCLOAK_REALM | Keycloak realm name (required if jwt) | — |
KEYCLOAK_CLIENT_ID | Keycloak client ID (required if jwt) | — |
KEYCLOAK_CLIENT_SECRET | Keycloak client secret | "" |
JWT_LOGIN_TYPE | Matrix login type for JWT auth | com.famedly.login.token.oauth |
Requires synapse-token-authenticator on the Synapse side. See the README for a full setup guide.
python:3.14-slim-trixiepythonuser)tini --linux/amd64, linux/arm64# Simple local build
docker build -t minimatrix .
# Multi-arch build & push (via GitHub Actions or local script)
./repo_scripts/build-container-multiarch.sh
This project is licensed under the LGPL where applicable/possible — see LICENSE.md. Some files/parts may use other licenses: MIT | GPL | LGPL. Always check per‑file headers/comments.
This is a development/experimental project. For production use, review security settings, customize configurations, and test thoroughly in your environment. Provided "as is" without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software. Use at your own risk.
Content type
Image
Digest
sha256:a19716027…
Size
200.3 MB
Last updated
6 months ago
docker pull xomoxcc/minimatrix