2.4 KiB
2.4 KiB
Matrix Hermes — Agent Guide
Matrix authentication, client, and bridge integration for Hermes Agent. Provides login/token management, async client wrapper, room management, messaging, sync engine, and Kanban board monitoring over Matrix.
Stack
- Python ≥3.10, mautrix (Matrix client SDK), aiohttp
- python-dotenv — config loading
- Optional:
mautrix[encryption]for E2EE - pytest, pytest-asyncio, ruff — dev tooling
Project Structure
src/matrix_hermes/
__init__.py
auth.py # Login/logout, access token management, device ID
client.py # Async MatrixClient wrapper (mautrix-based)
config.py # MatrixConfig dataclass, .env-based loading
cli.py # CLI entry point — `matrix-hermes` command
rooms.py # Room CRUD operations
messaging.py # Send/edit/reaction/typing indicators
sync.py # Incremental sync engine
kanban.py # Kanban DB monitoring over Matrix
tests/
__init__.py
conftest.py
test_auth.py
test_cli.py
test_config.py
test_kanban.py
test_messaging.py
test_rooms.py
test_sync.py
pyproject.toml # Build config, dependencies
.env.example # Config template
README.md
How to Run
# Install
pip install -e ".[dev]"
# Login
matrix-hermes login
# Check status
matrix-hermes whoami
# Show config
matrix-hermes show-config
# Logout
matrix-hermes logout
# Check connection
matrix-hermes check
# Monitor Kanban
matrix-hermes kanban
Key Architecture
- Package-based — installable via
pip install -e . - CLI entry:
matrix-hermes(click-based) - Sessions persist to
~/.hermes/matrix_sessions/ - Config via
.envfile (template in.env.example) - Async core built on
mautrix— all network calls are async
Production
- CLI tool / library — no server, no systemd
- Used as a library by Hermes Agent gateway for Matrix platform support
Environment Variables
| Var | Description |
|---|---|
| MATRIX_HOMESERVER | Matrix server URL (e.g. https://matrix.ourpad.casa) |
| MATRIX_ACCESS_TOKEN | Persistent access token (after login) |
| MATRIX_USER_ID | User MXID (after login) |
| MATRIX_DEVICE_ID | Device identifier (after login) |
Pitfalls
- E2EE is optional — requires
mautrix[encryption]install extra - Session tokens stored at
~/.hermes/matrix_sessions/— keep secure - All matrix network operations are async — synchronous wrappers may need event loop management