Groove is a protocol where independent systems discover each other at runtime, negotiate capabilities through type-safe interfaces, and compose — or don’t — without either side needing configuration or the other to function.
A groove is the shape cut into the surface of a system. It is passive until engaged. It guides without constraining. Fit is structural: compatibility is a property of the manifests, checked at handshake, not a config option.
# Terminal 1: start the reference provider (this repo)
groove-provider --port 6470
# Terminal 2: probe for groove-aware services
groove probeThe provider answers GET /.well-known/groove with its capability manifest;
groove probe discovers it on both [::1] and 127.0.0.1. Stop the provider —
consumers keep working; the capability disappears gracefully.
Bare by default — every system works alone, unplugged
Structural fit — compatibility is a manifest property, not a config option
Zero configuration — start services, they find each other
Graceful degradation — losing a groove partner is not an error
Linear safety — connection handles are consumed exactly once
Provenance — every groove connection is attestable
| The protocol specification: SPEC, TRANSPORT, IPV6T, MODULARITY, INNERVATION-SIGNALS, CONFORMANCE (executable checklist), LAYERING (aspirational cleave annex) |
| groove-registry.json — the single source of truth for ports, services, and capability types. All other port tables are generated from or validated against it. |
| Shared Rust library: manifest data model, registry, compatibility checking |
|
|
|
|
|
|
| Browser-side harness for PanLL-style panels |
| GRV6 typed-frame reference implementation (Zig) |
| Idris2 proof modules relocated from gossamer — not yet decoupled or typechecked; see proofs/README |
| Papers ( |
| Example manifests (JSON and A2ML) |
Stage | Working Draft |
Version | 0.3.0 (draft: lease modes §4.6 + signed manifests §2.1.5) |
Media Types |
|
Spec | Drafted ( |
CLI | Builds and runs; tested against the reference provider |
Reference provider | Implements discovery + connect/heartbeat/disconnect/mesh lifecycle |
GRV6 (Zig) | Has tests and bench; verified in CI only (zig job) |
Browser extension | Firefox MV2, conformant dialect, generated port table |
Proofs | Relocated, not typechecked — task PROOFS-1, allow-fail CI |
Consumers named in the papers and registry (Burble, Gossamer, VeriSimDB, Vext, PanLL) live in their own repositories and are not vendored here.