Specification
Version 1.0 · 2026-08-22 · Normative. The complete specification of the protocol — wire, storage, connected apps, runtime contracts, and linked-device connections. One section is explicitly provisional and so marked: §17 (standing approvals). Machine-readable JSON Schemas are published byte-identical from the reference implementation; the published record lives in snugprotocol/spec.
The document
Section titled “The document”- Part I — The wire protocol
- Part II — The portable user database
- Part III — Connected apps: requirements, grants, and credential custody
- Part IV — Runtime contracts and the app chat surface
- Part V — Linked-device connections (the sidecar surface)
- Part VI — Conformance
- Appendices — error codes, constants, published schemas
- Schema reference
Stability at a glance
Section titled “Stability at a glance”| Part | Surface | Stability |
|---|---|---|
| I | Wire protocol — the nine core frames, chat envelope, rules R1–R7 | Normative (core published since v0.1; R7 since v0.3) |
| II | Portable user database (storage schema v6), .snug naming, SNUGENC1 | Normative (first published as the v0.2 draft) |
| III | Connected apps: requirements, grants, custody, the executor | Normative at 1.0 |
| IV | Runtime contracts and the app chat surface | Normative at 1.0 |
| V | Linked-device connections (the sidecar surface) | Normative at 1.0 |
The net and open-url frame pairs, capabilities.net/openUrl, and rule R7 joined Part I
with the v0.3 consolidation and are normative at 1.0 (Appendix C records the publication
line). One section is explicitly provisional and so marked: §17 (standing approvals).
Conventions
Section titled “Conventions”The key words MUST, MUST NOT, SHOULD, and MAY are used in the sense of RFC 2119. Constants are stated with their exported names so they can be checked mechanically against the reference implementation.