Why Linda
The case for an in-page agent.
You can hand a user a chatbot in a sidebar, or you can hand them a real agent on the page itself. The difference is the difference between an assistant and a colleague.
What a chatbot widget can't do
Chatbot widgets are stateless UIs over chat-completion APIs. They're great for Q&A. They fall over when the user wants the AI to do anything that touches your app:
- Read the form the user is looking at, in real time.
- Fill its fields one at a time as the user types.
- Switch persona mid-flow when the conversation pivots.
- Pull in a CSV the user just dropped without uploading it.
- Talk to your CRM through MCP without rewriting your backend.
These aren't UI problems. They're agent problems — they need a loop that can plan, call tools, and operate on a workspace.
The architectural bet
Modern LLMs are trained on filesystem-shaped workflows. They're
remarkable at ls, cat, grep, and
editing files. So we gave the model the live page as a filesystem.
That's the whole bet. /page/dom.html is the DOM snapshot.
/page/form/fields/email.json is an input — read it to see what
the user typed, write it to fill it. /user/files/<id>/parsed/text.md
is the resume the user dropped. /host/crm/accounts.json is your
CRM, mounted via MCP. /skills/installed/kyc-id-check/SKILL.md is
a capability the model can opt into.
Everything else falls out of that. Hooks are the moments you care about in the loop. Skills are bundles the model loads on demand. Multi-agent is multiple loops handing off via the same VFS. MCP is a way to mount other people's filesystems.
Who picks Linda over the alternatives
| You are… | You probably want… |
|---|---|
| Building an in-page copilot for your SaaS | Linda — its VFS reads your live DOM without state-plumbing. |
| Replacing a long signup form | Linda — drop a script tag, it fills the inputs. |
| Adding a sidebar Q&A bot to docs | Probably CopilotKit, or Linda's chat with a config that just answers. |
| Automating browsers from a server | Stagehand. Linda is user-in-the-loop on their browser; Stagehand is headless on yours. |
| Building a hosted form-builder SaaS | Typeform. Linda is an SDK, not a hosted product. |
| Streaming LLM responses in a Next.js app | Vercel AI SDK for plumbing + Linda for the agent loop. They're complementary. |
What we said no to
Linda is opinionated. Here's what we deliberately don't ship:
- No hosted service. We're not a SaaS. There's no Neul Labs endpoint between you and your LLM provider.
- No server-side file processing. Browsers can parse PDFs, DOCXs, images, audio — we lean into that and skip the server entirely.
- No vendor lock. Five providers, plus any OpenAI-compatible endpoint. Swap with one config line.
- No CLA. MIT, no relicensing risk.
- No "smart" magic. The system prompt is readable. The tool loop is six tools. The VFS layout is documented. You can debug it.
Convinced?
The fastest test is the 10-second script-tag demo.