# Leuria > Bring your own AI to the web This file contains links to documentation sections following the llmstxt.org standard. ## Table of Contents - [Leuria documentation](https://leuria.dev/docs/README.md): Leuria lets a website offer AI features that run on the visitor's own AI, instead of the site's API keys. - [Architecture](https://leuria.dev/docs/contributing/architecture.md): Leuria has two sides and one contract: an **engine** on the visitor's machine, a **browser SDK** in the website, and the **engine protocol** betwee... - [Development](https://leuria.dev/docs/contributing/development.md): You need Node.js 22+ (see `.nvmrc`) and pnpm 10 (`corepack enable`). - [Run Leuria from a terminal](https://leuria.dev/docs/developers/cli.md): People who use Leuria install the [desktop app](https://leuria.eu/download). While you build a site, you can run the same engine from a terminal in... - [Ask AI for your Docusaurus site](https://leuria.dev/docs/developers/docusaurus.md): `@leuria/docusaurus` gives your docs an assistant that answers from your pages, with links to them, on each reader's own AI. You hold no API keys a... - [A conversation with context](https://leuria.dev/docs/developers/examples/conversation-context.md): Keep a conversation going, and bind values to each turn that the AI reads but never sets. - [A first answer](https://leuria.dev/docs/developers/examples/first-answer.md): Ask a question and get the text back, from whichever AI this visitor has. - [Examples](https://leuria.dev/docs/developers/examples.md): Small recipes, each one complete. On the portal you can edit and run them in the page, with your own AI once you connect it, or your browser's buil... - [Middleware](https://leuria.dev/docs/developers/examples/middleware.md): Wrap every tool call: log it, block it, or change what the AI gets back. This needs an AI that can use tools. - [A page tool](https://leuria.dev/docs/developers/examples/page-tool.md): Let the AI call a function of your page, and answer from what it returns. This needs an AI that can use tools, such as your own through Leuria. - [Who answers](https://leuria.dev/docs/developers/examples/routing.md): See which AIs this visitor has, route a request, and handle the case where none can answer. - [Search by meaning](https://leuria.dev/docs/developers/examples/search-by-meaning.md): Index your content in the browser, then find it by what it means rather than its words. This needs an embedding model: the one on your computer thr... - [Structured output](https://leuria.dev/docs/developers/examples/structured-output.md): Turn free text into an object your code can use. - [The visitor answers](https://leuria.dev/docs/developers/examples/visitor-answers.md): A tool without `execute` waits for your page to answer: here, the visitor confirms an order. This needs an AI that can use tools. - [Connect UI](https://leuria.dev/docs/developers/guides/connect-ui.md): How to let visitors bring their own AI to your page: Leuria's ready-made elements, or the connect flow behind them for your own UI. - [Conversations and turns](https://leuria.dev/docs/developers/guides/conversations.md): How to send requests and keep a conversation going: one-shot chats, multi-turn conversations, turn context, and the events and state a UI follows. - [Custom providers](https://leuria.dev/docs/developers/guides/custom-providers.md): How to plug another AI into the cascade: an in-page model (Transformers.js, WebLLM), another API, anything that can chat or embed. - [Embeddings and search by meaning](https://leuria.dev/docs/developers/guides/embeddings.md): How to turn text into vectors with the visitor's own model, and search your site's content by meaning in their browser. - [Providers and the cascade](https://leuria.dev/docs/developers/guides/providers.md): How the SDK picks the AI that answers each request, and how a page follows that choice. - [React](https://leuria.dev/docs/developers/guides/react.md): How to use Leuria from React: the visitor's AI, conversations and the connect flow, as React state. - [Skills](https://leuria.dev/docs/developers/guides/skills.md): How to give the visitor's AI instructions for tasks on your site, as skills. Leuria fetches them, shows them to the visitor, and gives them to the ... - [Structured output](https://leuria.dev/docs/developers/guides/structured-output.md): How to get JSON that matches a schema back from any provider, parsed and typed. - [Page tools](https://leuria.dev/docs/developers/guides/tools.md): How to give the AI tools that run in your page, whichever provider answers. - [Going to production](https://leuria.dev/docs/developers/production.md): What to decide before your AI feature meets real visitors. - [The Prompt API, in every browser](https://leuria.dev/docs/developers/prompt-api.md): Write your AI feature for the web standard, the [Prompt API](https://github.com/webmachinelearning/prompt-api) (`LanguageModel`), and it works for ... - [Leuria engine protocol](https://leuria.dev/docs/developers/protocol.md): **Version 0.2, draft.** This page specifies how a web page talks to the Leuria engine on the visitor's computer. [`@leuria/client`](sdk.md) impleme... - [Quickstart](https://leuria.dev/docs/developers/quickstart.md): Add an AI feature that runs on your visitor's own AI. Pick the path that fits your site; each one is complete. - [The core SDK (`@leuria/client`)](https://leuria.dev/docs/developers/sdk.md): A site writes each AI feature once. For each request, the SDK picks the best AI this visitor has. - [Security notes (R1)](https://leuria.dev/docs/security.md): This is the working threat model. Every website is untrusted until the visitor allows it, and even then it only reaches an agent that can do nothin... - [Add Ask AI to Docusaurus in 5 minutes, with no API keys](https://leuria.dev/tutorials/docusaurus-ask-ai.md): Add Ask AI to Docusaurus with one plugin: answers from your pages, with links, on each reader's own AI. No API keys, nothing to pay per question. - [LiteLLM as the fallback for your site's AI assistant](https://leuria.dev/tutorials/litellm-docs-fallback.md): Use LiteLLM as your site's last-resort AI: no API key in the page, a budget and a rate limit. Visitors with their own AI still cost you nothing. - [Use LM Studio models on any website, without CORS](https://leuria.dev/tutorials/lm-studio-websites.md): Let websites use the model in LM Studio on the visitor's computer, with their consent: no Enable CORS switch, no API key, no cost to the site. - [Use Ollama in a web app, without CORS or API keys](https://leuria.dev/tutorials/ollama-web-app.md): Let your website use the Ollama model on each visitor's computer: no OLLAMA_ORIGINS, no CORS setup, no API key, and no cost to you. - [Run oMLX models on websites, on Apple Silicon](https://leuria.dev/tutorials/omlx-apple-silicon.md): Use oMLX, the MLX model server for Apple Silicon, to answer on the websites you allow, on your Mac. Plus oMLX as a site's own fallback AI. - [Page tools, WebMCP and agent skills for every AI](https://leuria.dev/tutorials/tools-webmcp-skills.md): Write page tools once: the visitor's own AI uses them through Leuria, the browser's agents through WebMCP. Then guide the AI with agent skills.