Add AGENTS.md for AI agent context
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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 `.env` file (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
|
||||
Reference in New Issue
Block a user