{"version":"2.1.268","anchor":"new-local-pairing-protocol-for-the-chrome-extension-bridge","canonical_anchor":"new-local-pairing-protocol-for-the-chrome-extension-bridge","heading":"New local-pairing protocol for the Chrome extension bridge","tier":"internal","area":"Chrome & Browser","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.268\/e\/new-local-pairing-protocol-for-the-chrome-extension-bridge","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.268","markdown":"### New local-pairing protocol for the Chrome extension bridge\n\nClaude Code adds an encrypted local-pairing handshake for connecting to the Claude-in-Chrome extension\n\n**What**\n\nClaude Code now includes a new subsystem for establishing a secure, end-to-end encrypted connection to the Claude-in-Chrome browser extension, called \"local pairing.\" It uses ECDH key exchange (a way for two parties to agree on a shared secret) over the P-256 curve, HKDF key derivation, and AES-GCM encryption to build a sealed communication channel, alongside the existing plain local socket bridge.\n\nThe system includes:\n\n- JWT-based attestation checked against an issuer and JWKS endpoint (`\/api\/oauth\/local_pairing\/attest` and `\/api\/oauth\/local_pairing\/jwks.json`)\n\n- pairing offer\/accept\/done handshake messages\n\n- sealed request\/response message framing\n\n- liveness probing to detect a dropped connection\n\n- pairing-state callbacks (`onPairingState`) reporting states like `pairing`, `established`, `refused`, and `closed`\n\n**Why**\n\nThis strengthens the connection between Claude Code and the Claude-in-Chrome extension by encrypting and authenticating the pairing handshake, rather than relying on a plain local socket.\n\n- Area: Chrome & Browser\n- Tier: Under the hood\n- Useful: 4\/5\n- Signal: 4\/5"}