BIP · the substrate spec

Behavioral Interrupt Protocol — the open spec for behavioral context.

What loop is the user in right now? BIP is the spec that answers that question in a shape any LLM, wearable, coordinator, or downstream protocol (PAP, EAP, UAP, RAP) can read.

Apache 2.0. Reference-implemented by COYL Cloud. The substrate underneath the four sibling specs — behavior context flows into PAP's proactive interrupt, EAP's cross-device action, UAP's standing-authority gate, and RAP's irreversibility scoring.

Status, honestly: the spec is published under Apache 2.0; the reference engine and the typed @coyl/protocol SDK are in alpha. BIP context feeds the live stack — PAP proposes, EAP acts, UAP authorizes, and the RAP safety floor gates every one of them. Built for foundation labs; design partners invited.

What the spec defines

The shape behavioral context travels in.

  • The BehavioralContext envelope. A signed JSON document carrying loop identity (what recurring behavior), phase (entry / window / exit), confidence, danger-window proximity, and the consent-scope under which it was authored.
  • Loop taxonomy + ontology. The canonical vocabulary for recurring behavior — dose-trough rebound, weekend-collapse, post-deadline reward, stress-event window — that consumers and producers of BIP agree to use.
  • Conformance + transport. How a context-emitter (wearable, journaling app, prescription bridge) signs and transmits a context, and how a context-consumer (LLM coordinator, interrupt service) validates the signature, the scope, and the freshness window.

What’s actually shipped

A typed SDK, a runnable demo, and a live safety floor. Not a slide deck.

BIP is the read substrate. The context it carries feeds a stack that is implemented in this repository, in alpha — PAP proposes, EAP acts, UAP authorizes, RAP gates. Three proofs make that concrete.

The SDK · alpha

@coyl/protocol

A typed, zero-dependency TypeScript client. UAPClient does grant / precheck / execute / revoke / audit / kill-switch / verify-provenance; EAPDeviceClient registers a device, polls approved actions, and publishes sensor snapshots — the same snapshots that become BIP context. Typed against the live route handlers; wire shapes can change before 1.0.

The demo · runnable

Grant it, then try to break it.

One script walks the whole trust contract: grant → reversible action allowed and audited → irreversible send denied (it fails closed) → provenance verified on an allowed representation action → kill switch → the next action is dead. The fail-closed denial is the point.

The safety floor · live

Gates everything BIP feeds.

RAP's classifier, routing envelopes, and store are implemented and gating live in the app — the closed-coaching-path check runs ahead of every other gate on the agent path and before any consumer interrupt. A person in a closed path is never nudged, no matter what BIP context says.

The protocol family

BIP is the substrate. Four siblings build on it.

AI for the moment before behavior happens.