Skip to content
WM KeyboardWM Keyboard
Accessibility

Using the docs with AI

Point ChatGPT, Claude, Gemini, Cursor or the keyboard's own AI at this documentation: llms.txt, Markdown copies of every page, a search API and an MCP server.

An assistant asked about WM Keyboard answers from whatever it remembers, and the keyboard changes faster than any model’s training data. This site is built to be read by one instead: every page exists as plain text, the whole site can be searched with one request, and an assistant that supports tools can be connected to it directly. With that, a question like “how do I import the Sogou dictionary for Chinese?” gets an answer from the page that covers it, with a link, rather than a guess.

Nothing here needs an account or a key. It’s the same public text the pages show.

The keyboard’s own AI already uses it. WM Keyboard docs is one of the keyboard’s own tools, on by default: ask the AI chat, on the keyboard or in the app, about anything the keyboard does and the model searches these pages, reads the sections that match and answers with links to them. The Settings assistant uses the same search for questions its settings rows can’t answer.

WM Keyboard  Tools  AI writing tools  Keyboard tools  WM Keyboard docs

A search sends the words the model chose, and nothing else, to this site (wmkeyboard.pages.dev). Nothing on the site stores them. Set the tool to Off and the model isn’t told it exists. With an on-device model the search still goes over the network, so a phone with no connection gets an answer from the model alone.

The docs are a Model Context Protocol server at:

https://wmkeyboard.pages.dev/mcp

It speaks Streamable HTTP, needs no sign-in, and offers three read-only tools: search_docs finds the sections that answer a question, read_page reads one page in full, and list_pages lists every page with its summary. Each page is also offered as a resource. Its description lives at /.well-known/mcp/server-card.json for clients that discover servers by domain.

How to add it in the common clients:

  • Claude (claude.ai and the desktop app): Settings › Connectors › Add custom connector, and paste the address.
  • Claude Code: claude mcp add --transport http wmkeyboard-docs https://wmkeyboard.pages.dev/mcp
  • ChatGPT: Settings › Apps & Connectors, turn on developer mode under Advanced, then create a connector with the address and no authentication.
  • Cursor: add it under mcpServers in ~/.cursor/mcp.json as "wmkeyboard-docs": { "url": "https://wmkeyboard.pages.dev/mcp" }.
  • VS Code (Copilot agent mode): run MCP: Add Server, pick HTTP, and paste the address.
  • Gemini CLI: add "wmkeyboard-docs": { "httpUrl": "https://wmkeyboard.pages.dev/mcp" } under mcpServers in ~/.gemini/settings.json.
  • WM Keyboard itself: under MCP servers, though the built-in WM Keyboard docs tool already does the same job.

Menu names move around between versions of these apps; the address is the part that matters.

An assistant that reads the web finds the docs without any setup, and these files make what it reads cleaner:

AddressWhat it holds
/llms.txtAn index of every page with its one-line summary, in the llms.txt format.
/llms-full.txtEvery page’s text in one file, for a model with a large context.
/wm-keyboard-docs.zipEvery page as its own Markdown file, in folders by section, to keep or read offline.
/<page>.mdAny page as Markdown: add .md to its address without the final slash, so /languages/cjk/ is /languages/cjk.md. Each page names its copy in a <link rel="alternate" type="text/markdown">.
/api/docs/search?q=…The sections that best match a question, as JSON with each section’s address and text. Try ?q=import rime dictionary.
/openapi.jsonThe search API described in OpenAPI 3.1, for a custom GPT action or any other agent builder that takes one.

To ask about a page you are reading, paste its address into the chat and ask for the .md version to be read; that is a fraction of the size of the HTML and has none of the navigation.

robots.txt lets the search and answer crawlers in, the assistant ones by name, and states the site’s Content Signals: search, answers built from the pages, and training are all allowed. The documentation is MIT-licensed like the app.

The docs describe the current release. A model that searched them can still misread a section, so the link it gives is worth a tap before you change anything important. Search ranks by the words in your question, in English best: a question in another language still works when it names the feature (fcitx5, Rime, Avro), and Chinese and Japanese terms the pages use are matched as written. It knows nothing about your own phone, your settings or what you typed; for those, the Settings assistant is the one that can look.