Browser-local LLM playground

Signal Lab

Run a pinned tiny language model in your browser, encode a secret into model-chosen cover text, decode it again, and inspect the exact trace.

Encode

Turn a local secret into model cover text

The primary path runs the pinned TinyStories language model, encryption, coding, self-check, and trace generation inside this tab after you explicitly load the model.

Keep this key out of screenshots and trace exports. Generate creates a 32-byte key locally in the browser.

Browser LLM profile v1 uses this fixed public prompt. Changing it creates an incompatible replay contract, so keep it as shown for real model tests.

Primary path

Browser-local TinyStories LLM

Load the pinned model to enable browser-local encode/decode. No key or secret is sent to the Python server in this path.

Model
onnx-community/TinyStories-1M-ONNX
Revision
b873615e9ceb8f2cdb6c14a90641c99052fa4a7f
Runtime
Transformers.js 4.2.0, q8, browser module worker
Trust boundary
Runtime/model assets are fetched from pinned third-party origins and may be cached by your browser.

This is an educational reversible transport over a local model candidate table. It is not a guarantee of practical undetectability or exact distribution preservation.

Checking optional Python reference…

The reference oracle is deterministic finite-state grammar code for comparison and CI. It is not the primary LLM product.

Current run

Result

Generate a key, load the browser model, enter a short secret, and encode. The generated carrier text will also be loaded into Decode.

Decode

Recover only after authentication passes

Browser decode replays the same local model choices, reconstructs trace bits, and releases the secret only after authenticated recovery. Failures return typed diagnostics, not plaintext.

Decode result

Receiver output

Decode a cover text to see either the recovered secret or a typed safe-failure diagnostic here.

Receiver checklist

Before you blame the key

  1. Use the same key and browser LLM fingerprint.
  2. Paste the full cover text, including punctuation.
  3. Do not normalize, paraphrase, translate, or “clean up” the text.
  4. Expect a replay, token, or authentication failure after any meaningful edit.
Current fingerprint Browser fingerprint will appear after the app loads.

Inspect

Trace rendered from the engine

The browser displays versioned trace JSON. Missing trace fields are marked as missing; codewords and probabilities are never recomputed here.

Envelope

Authenticated payload anatomy

Bit river

Encrypted bits carried by codewords

Token timeline

Every payload/tail choice

No trace loaded

Distribution and code table

Engine-provided candidates for the selected step

Padding, tail, auth

Boundary recovery

Expert

Redacted trace JSON

{}

Learn & verify

What this product proves

Signal Lab is a correctness-first browser LLM playground. It proves authenticated roundtrip behavior under a pinned lightweight language model and makes each step inspectable. It does not prove practical undetectability in the wild.

What happens on encode

  1. The browser worker loads the pinned model/runtime after an explicit user action.
  2. The engine parses the shared key and compatibility configuration.
  3. It encrypts the complete secret into an authenticated envelope.
  4. It maps encrypted bits into model-candidate prefix codewords.
  5. It serializes generated token IDs and self-decodes before returning carrier text.

What failures mean

Invalid key
The key is malformed or wrong length.
Model not loaded
The user has not explicitly loaded the pinned browser model yet.
Replay divergence
The text, prompt, tokenizer, runtime, or model fingerprint no longer matches.
Invalid cover token
A generated token is not valid for that model step.
Authentication failed
The key, text, or configuration does not match an authentic payload.

Operational boundaries

  • Browser mode is designed for static hosting; the key and plaintext stay in your tab.
  • Runtime/model assets are trusted third-party code/data fetched from pinned origins.
  • Do not edit cover text after encoding.
  • Compare fingerprints when sender and receiver use different machines.
  • Treat the prefix-code transport as educational, not covert-channel proof.