Feature Roadmap
Krill Feature Roadmap
Last updated: 2026-04-03
This roadmap reflects the current state of the Krill platform. Features are categorized by status:
- Shipped — Implemented and available in the current release
- In Progress — Actively being worked on
- Planned — Committed to building, not yet started
- Exploring — Under consideration, not yet committed
Node Types — Completeness Matrix
All 35 node types have full UI (create, edit, view, row) across all platforms.
Root & Container Nodes
| Node | Status | Notes | |——|——–|——-| | Client | Shipped | Auto-discovery, FTUE, swarm visualization | | Client.About | Shipped | Version info and links | | Server | Shipped | Raspberry Pi and Linux server management | | Project | Shipped | Dashboard view with organized child sections, QR code |
Hardware & Connectivity
| Node | Status | Notes | |——|——–|——-| | Server.Pin (Digital I/O) | Shipped | Input monitoring, output control via krill-pi4j gRPC | | Server.Pin (PWM) | Planned | PWM output mode acknowledged in UI but not yet functional (#150) | | Server.SerialDevice | Shipped | USB serial with configurable protocol, auto-recovery | | Server.Peer | Shipped | LAN beacon discovery, PIN-based cluster trust, SSE sync | | Server.LLM | Shipped | Ollama integration, node creation from prompts | | Server.Backup | Shipped | ZIP archive creation, retention cleanup, restore from archive | | MQTT (Publish) | Shipped | Publish DataPoint state to MQTT broker topics | | MQTT (Subscribe) | Shipped | Subscribe to topics and write to target DataPoints |
Data & Visualization
| Node | Status | Notes | |——|——–|——-| | DataPoint | Shipped | Time-series with 4 data types (Double, Digital, Text, JSON) | | DataPoint.Filter (all 4) | Shipped | DiscardAbove, DiscardBelow, Deadband, Debounce | | DataPoint.Graph | Shipped | Time-series visualization with zoom/pan, mini embeds | | Project.Diagram | Shipped | SVG upload, anchor-based live data overlays | | Project.Camera | Shipped | Pi Camera Module 3 snapshot polling, live feed in dashboard | | Project.TaskList | Shipped | Task management with completion tracking | | Project.Journal | Shipped | Chronological entries with photo attachments |
Triggers
| Node | Status | Notes | |——|——–|——-| | Trigger.Button | Shipped | Manual one-shot execution | | Trigger.CronTimer | Shipped | 6-field cron scheduling | | Trigger.HighThreshold | Shipped | Fires when value >= threshold | | Trigger.LowThreshold | Shipped | Fires when value <= threshold | | Trigger.SilentAlarmMs | Shipped | Watchdog for missing data updates | | Trigger.IncomingWebHook | Shipped | HTTP endpoint trigger |
Executors
| Node | Status | Notes | |——|——–|——-| | Executor.LogicGate | Shipped | 10 gate types (AND, OR, NOT, NAND, NOR, XOR, XNOR, BUFFER, IMPLY, NIMPLY) | | Executor.Calculation | Shipped | Formula-based math with multi-source references | | Executor.Compute | Shipped | Statistical summaries over time ranges | | Executor.OutgoingWebHook | Shipped | HTTP methods with headers, body, auth | | Executor.Lambda | Shipped | Python execution with Firejail/Docker sandboxing | | Executor.SMTP | Shipped | Email alerts via SMTP |
Platform Infrastructure
| Feature | Status | Notes |
|---|---|---|
| Kotlin Multiplatform codebase | Shipped | JVM, Android, iOS, WASM, Desktop |
| Android app (Play Store) | Shipped | Native Compose Multiplatform |
| iOS app (App Store) | Shipped | Native Compose Multiplatform |
| Desktop app (Linux/Mac/Windows) | Shipped | Installable via apt or standalone |
| WASM web app (kiosk mode) | Shipped | Served from server, auto-discovers host |
| PIN-based cluster authentication | Shipped | 4-digit PIN, HMAC-SHA256 derived tokens |
| Self-signed TLS with TOFU | Shipped | Auto-generated certs, certificate download |
| LAN beacon peer discovery | Shipped | UDP multicast with rolling TOTP validation |
| Server-Sent Events (SSE) | Shipped | Real-time state sync to all clients |
| H2 embedded database | Shipped | Persistent node and snapshot storage |
| Force-graph swarm visualization | Shipped | Interactive node layout with drag |
| Pi4J gRPC hardware bridge | Shipped | Separate daemon for GPIO access (JDK 25) |
| QR code generation | Shipped | Branded shrimp logo, unauthenticated endpoint |
In Progress
| Feature | Description | Tier |
|---|---|---|
| Serializer completeness | All 35 KrillApp types now registered in polymorphic serializer | Tier 1 |
| Backup restore | Full restore from ZIP archive with safety backup | Tier 1 |
| MQTT subscribe write-through | Incoming messages write to target DataPoints | Tier 1 |
| LLM agentic actions | CREATE_LINKS and UPDATE_NODE for LLM-driven automation | Tier 1 |
| Documentation accuracy sync | Aligning blog posts with actual implementation state | Tier 2 |
| Feature roadmap (this document) | Public visibility into platform status | Tier 2 |
Planned
| Feature | Description | Tier |
|---|---|---|
| Guided onboarding | Empty-swarm overlay, project creation guide, hint cards | Tier 2 |
| Getting-started documentation | Step-by-step guide matching actual current UI | Tier 2 |
| Data export (CSV) | Server-side CSV export of DataPoint time-series | Tier 3 |
| Node search and filtering | Search by name/type in swarm view, section filters in projects | Tier 3 |
| Visual alerting | Pulsing node icons for WARN/ERROR, project alert banners | Tier 4 |
| Audio alerting | Optional alert sounds on Desktop/WASM for state changes | Tier 4 |
Exploring
| Feature | Description |
|---|---|
| PWM output mode | Pulse-width modulation for LED dimming, motor speed control (#150) |
| I2C bus support | Direct I2C sensor communication (#151) |
| Camera MJPEG streaming | Live video stream proxy (currently snapshot polling) |
| Mesh auto-reconnect | Automatic re-establishment of peer SSE connections after failure |
| Serial device auto-identification | Fingerprinting for known device types (#147) |
| Role-based access control (RBAC) | Multi-user permissions and audit logging |
| Multi-site WAN mesh | Server-to-server connections across networks |
| Lambda security hardening | Enhanced Firejail/Docker restrictions for Python execution |
How to Contribute
Krill is open source. If you’re interested in working on any planned or exploring feature:
- Check the GitHub issues for existing discussions
- The Pi4J gRPC service welcomes contributions
- Join the community and share your use cases
This roadmap is updated as features ship. Check back for the latest status.