the local agent

a small mind, in this tab

an AI you can talk to that runs inside your browser. on this path, what you type stays on your device.

looking at your browser…

the mind

not fetchedsealed · hash agreesrefusedyour gpu

local-agent://
pins enforced by ./sw.jsinference refuses on any mismatch

wake pipeline · estate rails only

    receipt · the wire since page-open

    pins

    fileclassstate
    verify · no trust in this page needed
    1. cd surfaces/local-agent && sha256sum qwen05/*.json qwen05/*.txt qwen05/*.wasm ../blight/web-llm.mjs → the 9 buffered pins above, byte for byte (the 8 shards hash while they stream)
    2. devtools · network · page-open → nothing model-shaped
    3. grep -c PUBLIC-CONSTANT surfaces/local-agent/sw.js → one line per pin

    ↗ opens a new tab · the member key is never read by these fronts

    the whole mind

    the local agent

    skaists · a mind that runs in your page
    277MB once · then cached
    17sha256 pins enforced
    0hf · jsdelivr at render

    An agent you can talk to that lives in this tab — its engine, its wasm, its tokenizer and its whole 0.5-billion-parameter Qwen mind load from the estate's own rails, pinned by sha256 and enforced by this page's service worker before a single byte runs: zero HuggingFace, zero jsdelivr, ever. Once loaded it answers with the network reading zero. Nothing you type leaves your device on the local path.

    route A · the local mind — your browser has WebGPU: Qwen2.5-0.5B-Instruct runs in this tab.
    talk to it
    the wire — the honest reading
    counting starts when the mind wakes.
    the mind's custody — every byte pinned

    Seventeen artifacts, seventeen sha256 pins, enforced by this page's own service worker. The engine bundle, the wasm and every small file are hashed before a byte is served; the eight weight shards (30–65 MB each) hash while they stream — and inference refuses if any final hash disagrees. Verified = capped ⬡ · refused = the flag hue.

    waiting for the first fetch…