A hardware-attested binary transport for the moment a task outgrows the device in your hand. Specified in the open, numbered in the hussh series, and honest about the distance between the specification and the code.
Document: RFC-003 in the hussh series. Protocol version hu_ssh/2026-07-30, specification v0.1.0-draft. Status: Draft β public request for comments.
This is a numbering in our own series, not an IETF RFC.RFC numbers in the 4-digit range are assigned by the IETF RFC Editor and are not self-assignable. Earlier internal drafts of this work labelled it βRFC 9822β; that was wrong and is corrected here. If this protocol ever warrants IETF standing, that is an Internet-Draft submission and a separate, public process.
No conforming implementation exists today. There is no hu_ssh crate, wire parser or daemon in hushh-labs/hushh-research. The consent layer beneath it β RFC-001 and RFC-002 β is real working code. Do not read this document as a description of shipped software.
A personal agent runs on hardware its owner already has, and most of what it does should never leave that hardware. Occasionally a task genuinely outgrows the device β a long reasoning chain, a compile, a multi-agent negotiation β and the honest options are to fail, to degrade, or to move the work somewhere larger.
Moving the work is only acceptable if the move is governed. hu_ssh is the transport for that move: it carries agent state between machines, and it is designed so the consent layer above it can gate every hop rather than trusting the first one.
The economics that make this worth specifying: Apple Silicon shares one physical memory pool across CPU, GPU and Neural Engine, so on the edge the expensive operation is not compute β it is copying, and that copy has already been eliminated. A transport that respects that fact moves diffs and delegations, not context.
Every frame begins with a fixed header in big-endian network byte order, sized so a reader can validate and dispatch without allocating.
A parser MUSTtreat a short buffer as βnot yetβ rather than as an error β partial reads are the normal case on a network. It MUST reject a frame whose magic bytes are not 0x6875, and MUST NOT process a frame whose sequence number does not exceed the last accepted value on that session.
0x01 | HandshakeInit | Establishes trust and negotiates version. Carries the Secure Enclave attestation; this is the only frame on which a full certificate chain is validated. |
0x10 | AgentCommand | A request for execution on the remote. Verified against the ephemeral session key derived at handshake, not the full chain. |
0x11 | AgentStream | Streamed output from a command already in flight. |
0x20 | ToolCall | Invoke a tool inside the sandbox. |
0x21 | ToolResponse | Return a result to the sender. |
0x30 | StateSync | Chunked transfer of pre-computed attention state, so a burst does not pay prefill twice for context the edge already computed. |
0xFE | Heartbeat | Liveness. Absence is what triggers the fallback to local execution. |
StateSync is the frame that justifies a binary transport at all. Without it, bursting a task to a larger model means the remote re-computes attention state the edge already has β the single largest hidden cost in any hybrid design, and invisible until measured.
Edge (owner's device) Remote (compute the owner burst to) β β βββ 0x01 HandshakeInit βββββββββββββββββββΆβ full attestation chain validated β β ephemeral AES-256-GCM session key derived βββ 0x01 accept (version, capabilities) βββ β β βββ 0x30 StateSync (chunked) βββββββββββββΆβ pre-computed attention state βββ 0x10 AgentCommand ββββββββββββββββββββΆβ verified against session key βββ 0x11 AgentStream ββββββββββββββββββββββ βββ 0x21 ToolResponse βββββββββββββββββββββ β β βββ 0xFE Heartbeat βββββββββββββββββββββββΆβ absence triggers local fallback
Validating a full attestation chain on every frame would be absurd at frame rate, so it happens once. The handshake derives an ephemeral symmetric key, and subsequent frames are verified against that. This is a deliberate trade and it belongs in the specification rather than in someoneβs postmortem.
Loss of the remote is not an error condition. When heartbeats stop, an implementation MUSTcontinue the task on local hardware rather than surfacing a failure. The remote is an optimisation; the personβs task is not.
On the edge β the Secure Enclave
The signing key is generated inside the Secure Enclave and never enters kernel or user-space memory. Software cannot impersonate the device because software never sees the key. A frame claiming enclave signing without a valid signature MUST be dropped before its payload is parsed.
On the remote β the kernel
Execution is bounded by Landlock for the filesystem, seccomp-BPF for syscalls, and eBPF socket rules for egress. The threat is prompt injection reaching a shell: the answer is not a policy document but a kernel that refuses.
What this does not defend against, stated plainly. A compromised owner device signs valid frames β enclave attestation proves the hardware, not the intent of whoever is holding it. A malicious remote operator can read anything delivered to it; the protocol limits what is delivered, it does not make the recipient trustworthy. And nothing here prevents a person from consenting to something they will regret.
hu_ssh sits beneath the consent layer, not beside it. RFC-001 decides whether an exchange may happen; RFC-002 decides what vocabulary it speaks; hu_ssh moves the bytes once both have said yes.
It composes over the same open rails as the rest of the stack rather than replacing them: MCP for tool access, A2A for agent negotiation, AP2 and UCP for anything that moves value. Where MCP standardised how an agent reaches a tool over HTTP, hu_ssh addresses the case MCP explicitly does not: bulk state moving between machines the same person owns, where the bottleneck is memory bandwidth rather than request semantics.
Design decisions here follow the seven changes we adopted from MCPβs 2026-07-28 revision β date-stamped versions carried per request, no held session state above the grant, and a deprecation window we still owe.
StateSync assumes the edge and the remote can agree on an attention-state format. Between different model families they cannot, and the fallback is to pay prefill twice.These are stated because a specification that lists no open problems has either solved everything or not looked. Ours has not solved everything.
The specification is open and unimplemented. That is the best moment to change it.
One is a product of Hushh Technologies Corporation (brand: π€« βhusshβ), an independent company. One runs on third-party silicon, systems, and cloud; platform names are used solely to describe where One software runs and imply no affiliation, endorsement, or sponsorship by those platforms. Our own go-to-market and bill-of-materials partner programs are real and actively in pursuit; we name a partner only once an agreement is executed.