<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Emre Sokullu</title>
    <description>The latest articles on DEV Community by Emre Sokullu (@emresokullu).</description>
    <link>https://dev.to/emresokullu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4151249%2F843efbb3-e830-4891-911e-12d8da1e711a.png</url>
      <title>DEV Community: Emre Sokullu</title>
      <link>https://dev.to/emresokullu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/emresokullu"/>
    <language>en</language>
    <item>
      <title>I built an open-source browser agent that runs on your local LLM (and now plugs into Claude Code via MCP)</title>
      <dc:creator>Emre Sokullu</dc:creator>
      <pubDate>Wed, 30 Sep 2026 03:52:53 +0000</pubDate>
      <link>https://dev.to/emresokullu/i-built-an-open-source-browser-agent-that-runs-on-your-local-llm-and-now-plugs-into-claude-code-4fmc</link>
      <guid>https://dev.to/emresokullu/i-built-an-open-source-browser-agent-that-runs-on-your-local-llm-and-now-plugs-into-claude-code-4fmc</guid>
      <description>&lt;p&gt;Most "AI in the browser" extensions I tried had the same three problems: closed source, locked to one vendor's model, and a monthly subscription. So I built &lt;strong&gt;WebBrain&lt;/strong&gt; — a free, GPL-3.0 browser extension that puts an agent in your sidebar and lets &lt;em&gt;you&lt;/em&gt; pick the model, including a fully local one.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Site: &lt;a href="https://webbrain.one" rel="noopener noreferrer"&gt;https://webbrain.one&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Code: &lt;a href="https://github.com/webbrain-one/webbrain" rel="noopener noreferrer"&gt;https://github.com/webbrain-one/webbrain&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Works in Chrome, Edge, Brave, Firefox&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;It has three explicit modes, because I don't want an agent clicking things I didn't ask for:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mode&lt;/th&gt;
&lt;th&gt;Can do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Ask&lt;/strong&gt; (default)&lt;/td&gt;
&lt;td&gt;Read-only: read the page, answer questions, extract tables/lists, read PDFs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Act&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Click, type, navigate, fill forms, upload/download — and it asks before consequential actions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Dev&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Page source, styles, console, network, reversible page edits&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Typical things I use it for: "summarize this thread", "pull every product name and price on this page into a table", "fill this form from what you remember about me, but stop before submit".&lt;/p&gt;

&lt;h2&gt;
  
  
  Bring your own model (or none at all)
&lt;/h2&gt;

&lt;p&gt;Any OpenAI-compatible endpoint works. For local:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;llama-server &lt;span class="nt"&gt;-m&lt;/span&gt; your-model.gguf &lt;span class="nt"&gt;--port&lt;/span&gt; 8080   &lt;span class="c"&gt;# llama.cpp&lt;/span&gt;
ollama serve                                   &lt;span class="c"&gt;# Ollama  -&amp;gt; :11434/v1&lt;/span&gt;
vllm serve your-model &lt;span class="nt"&gt;--port&lt;/span&gt; 8000              &lt;span class="c"&gt;# vLLM&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;LM Studio, Jan, LocalAI, GPT4All, etc. work the same way. Cloud options (OpenAI, Claude, OpenRouter, Gemini, DeepSeek, Mistral, Grok) are there if you want them, with your own key.&lt;/p&gt;

&lt;p&gt;A few things I learned making it usable on small local models:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Context is the bottleneck, not intelligence.&lt;/strong&gt; Give the model at least a 16k context window (8k works in Compact mode). WebBrain trims history and caps tool output automatically as it gets close to the limit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep the tool surface small.&lt;/strong&gt; Local models get confused by 40 tools. Narrow, stable tool schemas matter more than clever prompts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Screenshots are expensive.&lt;/strong&gt; It leans on the accessibility tree first and only sends screenshots when needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With a local model, no page data leaves your machine. No telemetry, no account.&lt;/p&gt;

&lt;h2&gt;
  
  
  New: use it as an MCP server
&lt;/h2&gt;

&lt;p&gt;This is the part I'm most excited about. Coding agents like Claude Code, Codex, Cursor or OpenCode can now drive &lt;strong&gt;your real, already-signed-in browser&lt;/strong&gt; through WebBrain — no cookie export, no headless login, no credential replay.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Claude Code --stdio--&amp;gt; webbrain-mcp --ws://127.0.0.1:17374--&amp;gt; WebBrain extension --&amp;gt; your tabs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; stdio webbrain &lt;span class="nt"&gt;--&lt;/span&gt; npx &lt;span class="nt"&gt;-y&lt;/span&gt; @webbrain/mcp-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then in WebBrain → Settings → General → Advanced → MCP, point it at &lt;code&gt;ws://127.0.0.1:17374/extension&lt;/code&gt;. The permission gate stays in the browser, so the coding agent still can't do consequential things without your approval. (Chromium-only for now; Firefox MV3 has no offscreen document to host the bridge.)&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd love feedback on
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Which local models are you running for agentic/tool-use tasks? I'm collecting real-world results.&lt;/li&gt;
&lt;li&gt;Sites where it fails — issues with a URL and the task are gold.&lt;/li&gt;
&lt;li&gt;Anything about the safety model (Ask/Act/Dev + confirmations) that feels too loose or too annoying.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Issues and PRs welcome: &lt;a href="https://github.com/webbrain-one/webbrain/issues" rel="noopener noreferrer"&gt;https://github.com/webbrain-one/webbrain/issues&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>opensource</category>
      <category>ai</category>
      <category>selfhosted</category>
    </item>
  </channel>
</rss>
