LXMF Ecosystem - Remaining Features
This document tracks LXMF features that are not yet implemented in styrened but exist in the broader LXMF ecosystem (Sideband, MeshChat, NomadNet).
Last Updated: 2026-02-02 Current Compatibility: ~85-90% (after Phase 4 + Interoperability Fixes)
Priority: High
Group Messaging (FIELD_GROUP = 0x0B)
What it does: Enables multi-party conversations where messages are distributed to all group members.
LXMF Implementation:
- FIELD_GROUP contains group identifier/metadata
- Messages addressed to group destination, not individual peers
- Requires group membership tracking and key distribution
Effort: High (new service, storage schema, key management)
Files to modify:
- New: src/styrened/services/group_service.py
- New: src/styrened/models/group.py
- Update: src/styrened/daemon.py (message routing)
- Update: src/styrened/ipc/messages.py (group commands)
- Update: Database schema (group membership tables)
Priority: Medium
Telemetry/Location (FIELD_TELEMETRY = 0x02)
What it does: Attach location, sensor data, or device telemetry to messages.
LXMF Implementation:
- FIELD_TELEMETRY contains structured telemetry data
- Used by Sideband for location sharing
- Can include GPS coordinates, battery level, signal strength
Effort: Medium (extraction + optional forwarding)
Use case for styrened: Edge devices with sensors, location-aware routing
Attachment Send (complement to Attachment Receive)
What it does: Allow styrened to send messages with file/image/audio attachments.
Current state: Receive-only (metadata extraction implemented)
Effort: Medium (file handling, MIME detection, size limits)
Priority: Low
Embedded Messages (FIELD_EMBEDDED_LXMS = 0x01)
What it does: Nest LXMF messages within other messages (forwarding, quoting).
Effort: Medium (serialization/deserialization)
Events (FIELD_EVENT = 0x0D)
What it does: Calendar events, scheduled occurrences.
Effort: Low-Medium (schema + UI considerations)
Tickets (FIELD_TICKET = 0x0C)
What it does: Issue/task tracking within mesh network.
Effort: Medium (new model + service)
Icons (FIELD_ICON = 0x0A, FIELD_ICON_APPEARANCE = 0x0E)
What it does: Custom user/peer icons and appearance metadata.
Effort: Low (extraction + storage)
Commands (FIELD_COMMANDS = 0x04)
What it does: Advertise available commands/capabilities to peers.
Effort: Low (styrened already has RPC; this adds advertisement)
Stamp Cost (announce metadata)
What it does: Anti-spam mechanism requiring proof-of-work for delivery.
Effort: Low (configuration option)
Not Planned
Paper Messages (FIELD_PAPER_MESSAGE = 0x09)
Out of scope for headless daemon. Better suited for GUI clients.
Custom Renderers (beyond RENDERER_PLAIN/RENDERER_MARKDOWN)
styrened is headless; rendering is client responsibility.
References
- LXMF Source: .venv/lib/python3.14/site-packages/LXMF/LXMF.py
- Sideband: https://github.com/markqvist/Sideband
- NomadNet: https://github.com/markqvist/NomadNet
- MeshChat: https://github.com/liamcottle/meshtastic-meshchat