A modular Matrix client built on Trixnity 5.x. 116 custom views across 6 domains render AI, governance, and compliance events natively — approvals, cost dashboards, deadline timers — all inside one sovereign app.
OpenEarth Messenger is an open-source Matrix client written in Kotlin with Compose Multiplatform for desktop (macOS, Linux, Windows). It extends the trixnity-messenger platform (AGPL-3.0) with a modular architecture for domain-specific event views.
Where a standard Matrix client shows a generic "unknown event" for custom types, OpenEarth Messenger renders each foundation.protocols.* event as a purpose-built card: Claude sessions as timeline entries with cost summaries, Hopsworks training runs as progress cards, compliance deadlines as live countdowns, approvals as buttons wired back to the relevant daemon.
Each event family has two modules: an events-* module for Kotlin data classes + serialisers (Apache-2.0) and a views-* module for Compose UI (AGPL-3.0). Views carry a domain-specific accent band.
foundation.protocols.ai.claude.* — session start/end, request/response, tool calls, approval cards, cost summaries. Accent: Anthropic burnt orange.
foundation.protocols.ai.hopsworks.* — feature groups, training runs, model registry, deployments, cost dashboards. Accent: Hopsworks teal.
foundation.protocols.ai.gryph.* — system-hook observation events. Accent: SafeDep teal.
foundation.protocols.ai.observation.* — bridge observation layer. Accent: OpenEarth process cyan.
foundation.protocols.ai.claude.hook.* — rule evaluation, session init/close, agent spawn/completion. Accent: Claude orange.
foundation.protocols.ai.certification.* — correlation pass/fail, coverage gaps, session verdict. Accent: OpenEarth cyan.
Total: 116 custom views across 6 domains. Adding a new domain means adding a module pair — existing modules unaffected.
Unified sticky view combining foundation.protocols.jurisdiction.* posture + foundation.protocols.compliance.* active deadlines. Countdown bars for NIS2 24h early warning, GDPR/NIS2 72h notification, NIS2 1-month final report. Re-assess buttons per law. See the compliance spec for event details.
Sync-based SessionMonitor captures Claude session costs in real time. Room-level cost dashboard aggregates across users, projects, sessions. Schema published as foundation.protocols.ai.cost v1.0.
Any event with an approval_required field renders buttons that emit foundation.protocols.ai.claude.approval.response. Bridge daemons subscribe and act on the response — consent-gated data flow enforced at the protocol level.
The core messenger ships unbranded. A Python generator produces per-deployment branded builds: each build can set its own primary accent, logo, application name, default homeserver, and event-module subset. Organisations deploying domain-specific data commons get a messenger that surfaces only the relevant event families by default.
foundation.protocols.* family means adding an events module and a views module — no changes to the core app.OpenEarth Messenger is in active development. Source currently on GitLab (internal fork) during pre-release integration. Target: public release on Codeberg under AGPL-3.0.
Dependencies with hardened pre-release status:
Copyright 2026 VakeWorks AB and the OpenEarth contributors. Licensed under AGPL-3.0. The AGPL is chosen deliberately: if you host a modified messenger for users, you share your modifications.