for agents/llms.txtv0.6.4

Home / Articles / A chat box on a site with no server, the plan, and the trade it makes / Versions / v1.2.0

A chat box on a site with no server, the plan, and the trade it makes: what changed in v1.2.0

From v1.1.0 (2026-09-08, 79c5ae92b) to v1.2.0 (2026-09-20, 8b46d2853), paragraph by paragraph.

0 paragraphs added, 0 removed, 15 changed in place, 16 unchanged. About 0 words added and 20 removed. Insertions are marked like this, deletions like this; unchanged runs are folded to one line; figures appear as their file names.

← v1.1.0 · all versions · v1.2.1 →

# A chat box on a site with no server —server, the plan, and the trade it makes

Summary: Nineteen sibling sites is too many to browse, so the directory now answers questions. The design problem is that sgit.ai has no server and no vault host, which means the honest options are a local matcher, a key in your browser, or moving the page into a vault —vault, and only one of those is free.

The network directory now has a chat box. It answers one question —question, *which of these nineteen sites is mine?* —mine?*, and it works with no key, no account and no network call.

6 unchanged paragraphs, under The constraint nobody can design around, The three tiers

Tier 0 —0, match. Shipped, on by default, needs nothing.

1 unchanged paragraph

It is not clever. It is instant, free, private, works offline, and —and, the part that made it the default —default, it tells you why it chose. An LLM answer does not give you that. The scorer weights a hit in a site's thesis or domain above one in its summary, and stops there.

1 unchanged paragraph

Tier 1 —1, bring your own key. Shipped, opt-in, and it costs you something.

Paste an OpenRouter key and the browser calls https://openrouter.ai/api/v1/chat/completions directly, streaming, with the catalogue as the system prompt. This is not a new pattern here —here, the SG/Vault workbench vault already does exactly this, using the same endpoint and the versioned sg-llm-request module served from dev.tools.sgraph.ai, so this reuses a proven client rather than inventing one.

The cost is real and the UI states it rather than burying it: with no host, there is no permission floor, so the key lives in this page's origin. It goes into localStorage and into a fetch to openrouter.ai. It is never sent to sgit.ai —sgit.ai, there is no server here to send it to —to, but the page cannot protect it the way a vault app can. That is a trust decision, and it belongs to the reader, so it is presented as one.

1 unchanged paragraph

Tier 2 —2, the bridge. Not built, and the one that removes the trade.

1 unchanged paragraph

The striking detail in that documentation is that there are three chat surfaces, and two of them need no application code at all —all, the vault chat panel, and the same panel beside any running app. *"Every existing vault app gets this without being changed."*

3 unchanged paragraphs, under What would need building

| Piece | State | Note | |---|---|---| | The catalogue | Done | Emitted at build from admin/content/sites/*.md; nineteen entries | | Tier 0 matcher | Done | assets/network-chat.js, no dependencies | | BYOK client | Done | Streams from OpenRouter; the workbench vault's proven pattern | | A vault build of the directory | Not started | The generator already emits a .md twin of every page; a vault app is a different target, not a different site | | sg.llm detection | Not started | The panel should prefer the bridge when it exists and fall back when it does not —not, the same shape as the Tier 1 → Tier 0 fallback already in the file | | Shared component | Partly, 7 September | A site-wide pane now sits on every page here, and its model can *call tools* over the site's own index and markdown twins (v0.2.63). Still one site's copy rather than a versioned module the other eighteen can load |

That last row is the one that decides whether this was worth doing. A chat box on one site is a feature. The same panel on all nineteen, reading each site's own catalogue, is the thing that makes a network of nineteen sites navigable —navigable, and it is why the catalogue is generated rather than written.

Addendum, 7 September —September, the pane grew tools

The directory chooser above answers one question. Ten days later every page carries a pane — *Ask(*Ask this site*, bottom right —right) whose model does not read a catalogue pasted into its prompt. It is given seven tools as function definitions: search_site, read_page, list_vaults, list_sites, latest_updates, get_board, current_page. Each call runs in the page, over an index the build emits from the same data as llms.txt, the vaults table, the network directory, the feed and the board —board, and the pane shows every call it made. With no key, the same tools run directly: type words to search, or /vaults, /board, /read PATH. The three tiers are unchanged; Tier 2 is still not wired, and is now on the board as T11.

2 unchanged paragraphs, under What it does not do

It also does not know anything that is not in the catalogue. Nineteen theses, nineteen summaries, nineteen categories —categories, all quoted from each site's own words rather than paraphrased, which is the same rule the directory follows.

1 unchanged paragraph

← v1.1.0 · all versions · v1.2.1 →