← back

kailinnel
Jan 19, 2026

kailinnel is a Rust + libp2p project for spinning up ad-hoc "flash institutions", the kind of temporary, ownerless coordination layer you want at a hackathon, festival, or pop-up clinic. No accounts, no servers; the network appears when you need it, disappears when you don’t.

Minimal architecture tour

  1. Transport stack: TCP + Noise + Yamux and QUIC for multiplexed, encrypted links.
  2. Discovery: mDNS for LAN, with optional DHT rendezvous + relays if you want to stretch across networks.
  3. State layer: Append-only op-log with anti-entropy sync; snapshots reduce catch-up time and storage churn.
  4. Security posture: Shared secret sealing, per-message signatures, optional PoW gating, kiosk witnesses, and local block/allow lists.
  5. UI surface: Today it’s CLI-first; bindings + UI will come later, but the core events are already exposed for integrations.

Run the quick manual demo

Requires a recent Rust toolchain.

Terminal 1:

cargo run -- start --room "BERLIN-COFFEE" --nick "A"

Terminal 2 (same LAN):

cargo run -- start --room "BERLIN-COFFEE" --nick "B"

Type into either terminal to broadcast on the announcements topic:

hello everyone

Handy commands while a node is running:

Scripted demos (faster happy path)

If you want to see everything without typing commands yourself:

./scripts/demo-all.sh

Other focused flows live under scripts/:

Script outputs land in target/demo-logs.*. Useful overrides:

Configuring persistence and security

Pass a config file to persist identity and state across restarts:

cargo run -- start --config ./config/kailinnel.example.toml

Settings you’ll likely tweak:

Observability hooks

Roadmap snapshot

Current milestone: core networking + CLI applets (announcements, voting, queueing, lost+found, requests) with sealed payloads, signed ops, anti-entropy sync, snapshots, and abuse controls. Next up: richer applet state, CRDT-backed sync, mobile bindings, and UI polish.

If you build something on top of this, drop in your own applet logic or UI; the transport, security, and sync layers are already doing the heavy lifting. Enjoy running pop-up networks without begging a server to stick around.