
Privacy-first, offline automation platform for home IoT and process control; typed Node graph, real-time SSE state, peer-to-peer mesh, GPIO/camera support, color sensing, SVG dashboards, local LLM integration.
Krill is a privacy-first, offline-first automation platform for home automation, IoT, and process control. It runs on Raspberry Pi and any Debian-based Linux machine, connecting your devices into a secure peer-to-peer mesh — no cloud account, no subscription, no internet required. Your data never leaves your network.
Everything in Krill is a typed Node: data points, triggers, executors, hardware pins, projects, peers. You wire nodes together and the system reacts in real time. State changes flow over Server-Sent Events to every connected client with sub-second latency.
krill-pi4j gRPC daemon (JDK 25, Pi4J 4.x) so the main server stays on JDK 21.DOUBLE, DIGITAL, TEXT, JSON, or the new COLOR type. Filter incoming values with deadband, debounce, and discard-above/below filters; visualize with built-in mini graphs.COLOR data points + a Color trigger that fires when an RGB reading falls within a target range. Pairs with TCS34725-style sensors for things like pH-indicator monitoring on a CO₂ reactor.cookbook/SVG Templates/.krill-mcp/) and bundled krill skill let Claude Code or Claude Desktop drive your swarm directly.This repo is the public, open half of the Krill platform. Each Gradle root has its own wrapper — there is no umbrella build.
| Path | What it is |
|---|---|
krill-sdk/ |
Kotlin Multiplatform client SDK. Common, JVM, Android, iOS, and wasmJs targets. Published to Maven Central as com.krillforge:krill-sdk. |
krill-mcp/ |
MCP server daemon (Ktor, JVM-only) plus the bundled krill Claude skill that teaches Claude how to drive the MCP tools. |
pi4j-ktx-service/ |
Pi4J client library (krill-pi4j, JDK 21) and the gRPC daemon (krill-pi4j-service, JDK 25) that owns GPIO/PWM/I²C on the Pi. |
cookbook/lambdas/ |
Ready-to-use Python lambda examples for sensors, actuators, and CircuitPython boards. |
cookbook/SVG Templates/ |
Stock SVGs for Diagram dashboards. Drop into the app or customize in Inkscape. |
docs/lessons/ |
Per-fix lesson entries — every PR ships one. |
The fastest path is to install a server on a Raspberry Pi or Debian box, then point an app at it:
curl -fsSL https://krillswarm.com/apt/krill.gpg | sudo gpg --dearmor -o /usr/share/keyrings/krill.gpg
echo "deb [signed-by=/usr/share/keyrings/krill.gpg] https://krillswarm.com/apt stable main" | sudo tee /etc/apt/sources.list.d/krill.list
sudo apt update
sudo apt install krill
# For Raspberry Pi GPIO support:
sudo apt install krill-pi4jYou'll be prompted for a 4-digit cluster PIN during install — every server, app, and MCP client in your swarm shares it. The server listens on https://<hostname>:8442.
Apps:
sudo apt install krill-desktop or download from krillswarm.com
https://<server-ip>:8442 in a browser (accept the self-signed cert)Full walkthrough: Getting Started.
Krill is free to download and use — every app, every server, every release. The Kotlin Multiplatform platform source is synced daily to GitHub under a source-available license: read it, learn from it, audit the security model, fork for personal use, or build integrations on top. Redistribution and competing products are the only things off limits — that's what keeps the project sustainable.
These pieces are fully open source under permissive licenses with no restrictions:
krill-pi4j — Standalone gRPC service for Pi GPIO/PWM/I²C. Use it from any JVM project, with or without Krill.krill-sdk — KMP client SDK on Maven Central.krill-mcp + the krill Claude skill — MCP server and the bundled markdown/JSON specs that drive Claude integrations.Pull requests welcome on any of the above. See Our Open Source Philosophy for the long-form version.
| Project | Role in Krill |
|---|---|
| Kotlin Multiplatform | Shared codebase across Android / iOS / Desktop / Web |
| Compose Multiplatform | UI on every client target |
| Ktor | Server framework on Raspberry Pi |
| Pi4J | GPIO / I²C / SPI access on the Pi |
| H2 Database | Embedded time-series storage |
| Eclipse Mosquitto | MQTT broker integration |
| Firejail | Sandbox for Python lambda execution |
| Ollama | Local LLM runtime for the LLM Node |
Krill is offline-first by design. By default it does not collect personally identifiable information, and all data stays on your local devices. See the Privacy Policy for details.
Krill is a privacy-first, offline-first automation platform for home automation, IoT, and process control. It runs on Raspberry Pi and any Debian-based Linux machine, connecting your devices into a secure peer-to-peer mesh — no cloud account, no subscription, no internet required. Your data never leaves your network.
Everything in Krill is a typed Node: data points, triggers, executors, hardware pins, projects, peers. You wire nodes together and the system reacts in real time. State changes flow over Server-Sent Events to every connected client with sub-second latency.
krill-pi4j gRPC daemon (JDK 25, Pi4J 4.x) so the main server stays on JDK 21.DOUBLE, DIGITAL, TEXT, JSON, or the new COLOR type. Filter incoming values with deadband, debounce, and discard-above/below filters; visualize with built-in mini graphs.COLOR data points + a Color trigger that fires when an RGB reading falls within a target range. Pairs with TCS34725-style sensors for things like pH-indicator monitoring on a CO₂ reactor.cookbook/SVG Templates/.krill-mcp/) and bundled krill skill let Claude Code or Claude Desktop drive your swarm directly.This repo is the public, open half of the Krill platform. Each Gradle root has its own wrapper — there is no umbrella build.
| Path | What it is |
|---|---|
krill-sdk/ |
Kotlin Multiplatform client SDK. Common, JVM, Android, iOS, and wasmJs targets. Published to Maven Central as com.krillforge:krill-sdk. |
krill-mcp/ |
MCP server daemon (Ktor, JVM-only) plus the bundled krill Claude skill that teaches Claude how to drive the MCP tools. |
pi4j-ktx-service/ |
Pi4J client library (krill-pi4j, JDK 21) and the gRPC daemon (krill-pi4j-service, JDK 25) that owns GPIO/PWM/I²C on the Pi. |
cookbook/lambdas/ |
Ready-to-use Python lambda examples for sensors, actuators, and CircuitPython boards. |
cookbook/SVG Templates/ |
Stock SVGs for Diagram dashboards. Drop into the app or customize in Inkscape. |
docs/lessons/ |
Per-fix lesson entries — every PR ships one. |
The fastest path is to install a server on a Raspberry Pi or Debian box, then point an app at it:
curl -fsSL https://krillswarm.com/apt/krill.gpg | sudo gpg --dearmor -o /usr/share/keyrings/krill.gpg
echo "deb [signed-by=/usr/share/keyrings/krill.gpg] https://krillswarm.com/apt stable main" | sudo tee /etc/apt/sources.list.d/krill.list
sudo apt update
sudo apt install krill
# For Raspberry Pi GPIO support:
sudo apt install krill-pi4jYou'll be prompted for a 4-digit cluster PIN during install — every server, app, and MCP client in your swarm shares it. The server listens on https://<hostname>:8442.
Apps:
sudo apt install krill-desktop or download from krillswarm.com
https://<server-ip>:8442 in a browser (accept the self-signed cert)Full walkthrough: Getting Started.
Krill is free to download and use — every app, every server, every release. The Kotlin Multiplatform platform source is synced daily to GitHub under a source-available license: read it, learn from it, audit the security model, fork for personal use, or build integrations on top. Redistribution and competing products are the only things off limits — that's what keeps the project sustainable.
These pieces are fully open source under permissive licenses with no restrictions:
krill-pi4j — Standalone gRPC service for Pi GPIO/PWM/I²C. Use it from any JVM project, with or without Krill.krill-sdk — KMP client SDK on Maven Central.krill-mcp + the krill Claude skill — MCP server and the bundled markdown/JSON specs that drive Claude integrations.Pull requests welcome on any of the above. See Our Open Source Philosophy for the long-form version.
| Project | Role in Krill |
|---|---|
| Kotlin Multiplatform | Shared codebase across Android / iOS / Desktop / Web |
| Compose Multiplatform | UI on every client target |
| Ktor | Server framework on Raspberry Pi |
| Pi4J | GPIO / I²C / SPI access on the Pi |
| H2 Database | Embedded time-series storage |
| Eclipse Mosquitto | MQTT broker integration |
| Firejail | Sandbox for Python lambda execution |
| Ollama | Local LLM runtime for the LLM Node |
Krill is offline-first by design. By default it does not collect personally identifiable information, and all data stays on your local devices. See the Privacy Policy for details.