docs: initial wiki page
+65
@@ -0,0 +1,65 @@
|
|||||||
|
# Matrix-Hermes
|
||||||
|
|
||||||
|
Matrix bridge for Hermes Agent — provides authentication, client connectivity, and bridge utilities.
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~/projects/matrix-hermes
|
||||||
|
pip install -e ".[dev]"
|
||||||
|
cp .env.example .env
|
||||||
|
# Edit .env with your Matrix credentials
|
||||||
|
matrix-hermes check
|
||||||
|
matrix-hermes login
|
||||||
|
```
|
||||||
|
|
||||||
|
## Environment Variables
|
||||||
|
|
||||||
|
| Variable | Description | Required |
|
||||||
|
|----------|-------------|----------|
|
||||||
|
| `MATRIX_HOMESERVER` | Homeserver URL (e.g. https://matrix.org) | Yes |
|
||||||
|
| `MATRIX_ACCESS_TOKEN` | Existing access token (preferred) | Yes* |
|
||||||
|
| `MATRIX_USER_ID` | Full Matrix user ID (@user:server) | Yes* |
|
||||||
|
| `MATRIX_PASSWORD` | Password for login | Yes* |
|
||||||
|
| `MATRIX_DEVICE_ID` | Stable device ID for E2EE | No |
|
||||||
|
| `MATRIX_SESSION_DIR` | Session persistence dir | No |
|
||||||
|
| `MATRIX_ENCRYPTION` | Enable E2EE (true/false) | No |
|
||||||
|
| `MATRIX_ALLOWED_USERS` | Comma-separated user whitelist | No |
|
||||||
|
| `MATRIX_HOME_ROOM` | Room ID for notifications | No |
|
||||||
|
|
||||||
|
*Either MATRIX_ACCESS_TOKEN or MATRIX_USER_ID + MATRIX_PASSWORD is required.
|
||||||
|
|
||||||
|
## Authentication Flow
|
||||||
|
|
||||||
|
1. **Access token** — if `MATRIX_ACCESS_TOKEN` is set, it's validated via `/whoami`
|
||||||
|
2. **Session file** — if no token, checks `~/.hermes/matrix_sessions/<user>.json`
|
||||||
|
3. **Password login** — falls back to `MATRIX_USER_ID` + `MATRIX_PASSWORD`; token auto-saved
|
||||||
|
|
||||||
|
## CLI Commands
|
||||||
|
|
||||||
|
```bash
|
||||||
|
matrix-hermes login # Authenticate with homeserver
|
||||||
|
matrix-hermes whoami # Validate current token
|
||||||
|
matrix-hermes logout # Invalidate token + remove session
|
||||||
|
matrix-hermes check # Check config from env
|
||||||
|
matrix-hermes show-config # Show config as env vars
|
||||||
|
```
|
||||||
|
|
||||||
|
## Project Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
src/matrix_hermes/
|
||||||
|
├── __init__.py # Package init
|
||||||
|
├── auth.py # Login, token, session persistence
|
||||||
|
├── client.py # Async MatrixClient (mautrix wrapper)
|
||||||
|
├── config.py # Env-based configuration
|
||||||
|
└── cli.py # CLI entry point
|
||||||
|
tests/ # 60 unit tests
|
||||||
|
```
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
- Python >= 3.10
|
||||||
|
- mautrix >= 0.20.0
|
||||||
|
- aiohttp >= 3.9
|
||||||
|
- python-dotenv >= 1.0
|
||||||
|
|||||||
Reference in New Issue
Block a user