# C24: the SDK/docs portal ## CHANGELOG ### Documentation - **A docs portal at /docs.** The manual the binary carries — the pages `llmgw docs` prints and the console's Manual shows, the configuration reference among them — rendered on the client port in the portal's own look: a sidebar of the documents in reading order, the open one's sections under it, a link on every heading, and links between documents kept inside the portal (links to files that are not in the binary, such as `deploy/`, go to the repository). No script on the page, so the Content-Security-Policy has nothing to allow. Public by default, like the landing page; set `landing.docs_sign_in: true` to send visitors to sign in first. Signed in, the page carries the usual menu, which now has a **Docs** link. - **A client developer's guide, `docs/clients.md`.** How to use llmgw from the official OpenAI and Anthropic SDKs — there is no llmgw SDK, and none is needed — in Python, TypeScript, Go and curl: the base URL and key, streaming, tools, embeddings, the Responses API, batches, the Anthropic SDK against `/v1/messages`, and what llmgw adds as headers (`x-llmgw-thread`, `x-session-id`, metadata and `x-llmgw-tags`, `x-llmgw-variant`, `/v1/memory`, `/mcp`), with the statuses a client meets. The portal's index leads with it, and the landing page and the account page link to it. - The console's Manual and the portal read one list of documents in one order (`llmgw.Manual`), so the two cannot drift. ## BACKLOG - [x] 24 (SDK/docs portal): built — /docs renders the embedded manual (goldmark, GFM, heading anchors, links rewritten, no script; public, `landing.docs_sign_in` to require a session), and docs/clients.md shows the official OpenAI/Anthropic SDKs against llmgw. Left: the console's generated "Commands" page is not in the portal (it is built from the cobra tree, which internal/web cannot see); no search across documents; the clients.md sections on /v1/messages, batches, tags and x-llmgw-variant were written against the features-c2 commit messages and must be checked against that code when merging (exact `x-llmgw-tags` format, `canary` as the variant value, Anthropic-shaped errors on /v1/messages).