---
title: Web LLM
description: Run a chat model in your browser with WebGPU, on your device.
---

Give an AI node a chat model that runs inside your browser: free, private, offline once downloaded, and no API key.

## Try it

## What it does

Web LLM is a model you plug into the **Model** slot of an AI node, such as the [Tools Agent](/nodes/builtin/ai/aiagents/toolsagentnode/) or [Basic LLM Chain](/nodes/builtin/ai/aiagents/basicllmchainnode/). It does not run on its own and has no output. When the AI node runs, the model answers on your device, using your graphics card through WebGPU.

* The model downloads the first time you use it, then stays in the browser. Installed models start right away.
* It loads and runs in the background, so the page stays responsive. The run log shows the loading progress.
* **Temperature** is 0.5 by default.
* It works with the [Tools Agent](/nodes/builtin/ai/aiagents/toolsagentnode/): the tools are described in the prompt and the model writes its tool calls in its reply. The common formats (`<tool_call>…</tool_call>`, `[TOOL_CALLS]`, fenced JSON, or a reply that is only the JSON call) are all understood. Instruct models trained for tool use do this much better than very small ones.

## When to use it

* Private text that must not leave your computer.
* Workflows that must work offline, or without paying for an AI service.
* Short, simple jobs: rewrite, tag, extract, short summaries.

For bigger models, use [Ollama](/nodes/builtin/ai/aidependencies/llm/ollama/). On a device without WebGPU, use [Transformers Chat](/nodes/builtin/ai/aidependencies/llm/transformerschat/).

## Inputs and settings

The **Model** picker shows which models are installed and lets you download one inline. A new node starts with the local model you chose as your default. To install, compare or delete models ahead of time, use the [Local Models](/app/local-models/) page.

When you publish or share the workflow, **Model** is cleared, so whoever installs it picks a model on their own device.

## Outputs

This node has no output port. It plugs into a slot on another node instead of passing items along.

* **Model** slot of [Tools Agent](/nodes/builtin/ai/aiagents/toolsagentnode/), [Q\&A Agent](/nodes/builtin/ai/aiagents/qanode/), [RAG Agent](/nodes/builtin/ai/aiagents/ragnode/), [Basic LLM Chain](/nodes/builtin/ai/aiagents/basicllmchainnode/), [Indexer](/nodes/builtin/ai/aiagents/indexernode/), [Text Classifier](/nodes/builtin/ai/aiagents/textclassifiernode/), [Sentiment Analysis](/nodes/builtin/ai/aiagents/sentimentanalysisnode/), [Summarization](/nodes/builtin/ai/aiagents/summarizationchainnode/), [Information Extractor](/nodes/builtin/ai/aiagents/informationextractornode/), [Guardrails](/nodes/builtin/ai/aiagents/guardrails/), [Auto-fixing Output Parser](/nodes/builtin/ai/aidependencies/outputparser/autofixingoutputparser/)

The AI node you connect it to produces the output. Web LLM only decides which model answers.

## Dependencies and credentials

None. This node needs no connection and has no slots for other nodes.

## Example workflow

1. A [Context Menu](/nodes/builtin/trigger/contextmenu/) trigger on selected text.
2. [Basic LLM Chain](/nodes/builtin/ai/aiagents/basicllmchainnode/) with **Prompt** `Rewrite this to sound more professional: {{ $input.selectionText }}`.
3. Web LLM in its **Model** slot, with an installed model.
4. [Clipboard Write](/nodes/extension/clipboardwrite/) with **Text** `{{ $input.response }}`.

## Common issues

* **"Model parameter is required and cannot be empty".** Pick a model in **Model**.
* **"Invalid model ID: …".** The model is not in this browser's model list, for example after importing a workflow from another device. Pick a model again.
* **The first run takes minutes.** The model is downloading (often hundreds of MB to a few GB). Install it in advance from [Local Models](/app/local-models/).
* **It fails on this computer.** Your browser or graphics card has no WebGPU support. Use [Transformers Chat](/nodes/builtin/ai/aidependencies/llm/transformerschat/) or a cloud model.
* **The agent never calls a tool.** Small models often answer in plain text instead. Use a larger instruct model, and give your tools clear descriptions.

## Recipes with this node

## Related nodes

* [Transformers Chat](/nodes/builtin/ai/aidependencies/llm/transformerschat/): small on-device chat that also works without WebGPU.
* [Ollama](/nodes/builtin/ai/aidependencies/llm/ollama/): larger local models through the Ollama app.
* [Chrome AI](/nodes/builtin/ai/aidependencies/llm/chrome-ai/): the model built into Chrome.
* [Tools Agent](/nodes/builtin/ai/aiagents/toolsagentnode/): an agent that can use tools and memory.