Skip to content
Sneak peek — you found hosted ggui early · official launch soon

For LLM agents

read as .md

This page is for non-human readers — LLM agents, coding-assistant devtools (Claude Code, Cursor, Cline, Continue, Codeium), evaluators, and scrapers. Humans, the rest of the site is for you.

Resource URL When to fetch
Dump pointer /llms.txt First contact. A short llms.txt file naming the two dumps below plus 11 per-section subsets, one per top-level sidebar group. It is not a per-page list — the finest granularity it indexes is the section.
Whole-site dump /llms-full.txt One-shot context loading. Every page in one file, sorted to lead with Get Started, Concepts, then the hosted track — around 800 KB, roughly 200K tokens. Check Content-Length before you load it.
Compact dump /llms-small.txt The same page set with navigational chrome stripped. Only about 15 percent smaller than the full dump — if full does not fit, this probably will not either.
Per-section subset /_llms-txt/<slug>.txt One sidebar group at a time — get-started, concepts, hosted, build, connect, self-host, protocol, api, cli, architecture, reference (slugs listed in /llms.txt). A few pages are cross-listed in two sets where the sidebar itself repeats them (e.g. cli/login in both hosted and cli).
Per-page raw markdown /<slug>.md Reading one specific page. No HTML, no chrome.
Stable anchors /<slug>#<id> Deep-linking to a section. Every H2/H3 has a Starlight-derived id.

Both dumps carry the site’s 404 — page not found stub as an early section. It is navigation copy, not documentation — skip it.

Every page is also served as raw markdown at the same slug with a .md extension. Examples:

The .md response is the source markdown with a small ---\ntitle: ...\n--- envelope on top. For the markdown-authored pages — every page except the four named below — there is no other transformation.

Four pages are authored in MDX and their companions carry that through: /index.md, /design/tokens.md, /protocol/showcase-trimly.md and /build/dev-loop.md keep their JSX component tags (<Card>, <Tabs>, <LinkButton>), and showcase-trimly also carries the inline JS block that computes its wire counts. The ESM import preamble is stripped, so the response opens on prose, but the components are not rendered. Prose and code blocks are intact on all four; layout wrappers are not. Fetch the HTML page when you need the rendered form — on /design/tokens.md and /protocol/showcase-trimly.md in particular, much of the substance lives inside the components.

Fetch from any origin:

Terminal window
curl https://docs.ggui.ai/protocol/envelopes.md
const res = await fetch("https://docs.ggui.ai/protocol/envelopes.md");
const body = await res.text();

CORS is open (Access-Control-Allow-Origin: *); Cache-Control permits 5-minute CDN caching.

Any LLM agent can connect to mcp.ggui.ai/docs and search / read these docs programmatically — no auth required. See Docs MCP route for the tool catalog and connection details.

You want → Fetch
─────────────────────────────────────────── ──────────────────────────────────
See which dumps and sets exist /llms.txt
Orient quickly, plan a session /index.md, then /<slug>.md
Drop everything into context (one-shot) /llms-full.txt (~800 KB)
Load just one sidebar section /_llms-txt/<slug>.txt
Read one specific page /<slug>.md
Deep-link to a section in conversation /<slug>/#<anchor>

/llms.txt, /llms-full.txt, /llms-small.txt, the 11 /_llms-txt/<slug>.txt section subsets, and the per-page .md companions are the whole machine-readable surface.

Every H2 and H3 has a stable id derived by Starlight from its text. Anchors don’t change between releases unless the heading text changes. Examples:

The same anchors work on the .md companions: /protocol/envelopes.md#actionenvelope — markdown clients with anchor-scroll support honor them.

The wire envelopes (ActionEnvelope, StreamEnvelope) and the MCP method shapes (ggui_handshake, ggui_render, ggui_consume, …) live in TypeScript in @ggui-ai/protocol. Protocol version: see PROTOCOL_VERSION in @ggui-ai/protocol (currently draft-2026-09-10). Standalone JSON-Schema endpoints at /api/schemas/<envelope>.json are planned but not yet shipped.

Until then, the canonical wire shapes live at:

For machine-parseable types, install the npm package:

Terminal window
npm install @ggui-ai/protocol

Things to know if you’re writing code against these docs:

  • ggui = the open protocol. Self-host with ggui serve, or use the hosted endpoint at mcp.ggui.ai. Open source at github.com/ggui-ai/ggui. Documented on this site.
  • guuey = a separate SaaS platform at guuey.com. Different surface, different docs. Don’t conflate the two.
  • gadget = renderer-side capability — a wrapped 3rd-party library (Leaflet, Stripe, …). Formerly called clientLibraries.
  • tool = agent-side action (an MCP tool the agent invokes).
  • blueprint = cached UI recipe (matched at ggui_handshake by intent + contract similarity).

These three nouns are not interchangeable; mixing them in generated code will confuse readers.

Every page has frontmatter with at least title and description. Most also carry audience (one of agent-builder, host, operator, llm-agent, agentic-app-builder, all) and optionally prereqs. The .md companion re-emits title and description at the top of the response; other frontmatter fields (audience, prereqs) are only in the repo source.

The site sends pageview events to PostHog and tags requests from known LLM-agent user-agents (claude-bot, gptbot, perplexitybot, cursor, cline, continue, codeium, …) with is_bot: true. No PII, no fingerprinting. Set a useful user-agent and you’ll show up in the bot-traffic dashboard — that helps us prioritize docs machine readers actually use.

Found a page that’s hard for LLM consumption, or want a .md companion that’s missing something? Open an issue at github.com/ggui-ai/ggui/issues tagged docs/llm-readability.