1import{f as b,a as i,c as N}from"./CeOD2e6I.js";import{G as p,K as s,I as y,J as O,L as u,M as R,N as M,z as a,O as F}from"./C5Iyu3w9.js";import{d as P}from"./BgyuWewX.js";import{i as B}from"./DJK3LPYy.js";import{s as r}from"./D1z2Jf5u.js";import{s as x}from"./C303owcw.js";import{s as _}from"./ByTXDipk.js";import{o as W,c as E}from"./DaPjyIne.js";const I=""+new URL("../assets/skills-install.mqDCNO1p.webp",import.meta.url).href,Y={title:"agent-browser à¸à¸à¸à¸à¸£à¸±à¸ à¹à¸à¹à¸¡à¸² 2 สัà¸à¸à¸²à¸«à¹à¸¥à¸°",description:"วิà¸à¸µà¸à¸´à¸à¸à¸±à¹à¸ agent-browser à¸à¸±à¸ Claude Code à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹ à¸à¸´à¸à¸à¸±à¹à¸ skill à¹à¸¥à¹à¸§à¹à¸£à¸´à¹à¸¡à¹à¸à¹à¸à¸²à¸à¹à¸ 5 à¸à¸²à¸à¸µ",date:"2026-03-28",published:!0,image:"/blog/agent-browser-ai-automation/og.png"},{title:Z,description:$,date:ee,published:se,image:oe}=Y;var q=b(`<p><a href="https://github.com/vercel-labs/agent-browser" rel="nofollow">agent-browser</a> is a CLI that lets AI agents interact with your browser â click, type, read elements, take screenshots. Think of it as giving Claude Code hands in the browser.</p> <p>If youâve used Chrome DevTools MCP (30k tokens per call) or the Claude Chrome extension (permission prompts on every click), this is the lightweight alternative. ~100 tokens per snapshot instead of 30,000.</p> <h2>Install</h2> <pre class="shiki github-dark" style="background-color:#24292e;color:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#B392F0">npm</span><span style="color:#9ECBFF"> install</span><span style="color:#79B8FF"> -g</span><span style="color:#9ECBFF"> agent-browser</span></span></code></pre> <h2>Connect to Your Browser</h2> <p>Two options:</p> <h3>Option A: Use Your Existing Chrome</h3> <p>Open <code>chrome://inspect/#remote-debugging</code> in Chrome:</p> <img alt="Chrome remote debugging settings with 'Allow remote debugging' enabled"/> <p>Check âAllow remote debugging.â Now agent-browser connects to your actual browser with all your login sessions:</p> <pre class="shiki github-dark" style="background-color:#24292e;color:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#B392F0">agent-browser</span><span style="color:#79B8FF"> --cdp-url</span><span style="color:#9ECBFF"> ws://127.0.0.1:41175</span><span style="color:#9ECBFF"> snapshot</span><span style="color:#79B8FF"> -i</span></span></code></pre> <h3>Option B: Let agent-browser Launch One</h3> <pre class="shiki github-dark" style="background-color:#24292e;color:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#B392F0">agent-browser</span><span style="color:#9ECBFF"> open</span><span style="color:#9ECBFF"> http://localhost:5173</span></span></code></pre> <p>Launches a new browser instance. Simpler, but no existing sessions.</p> <h2>Install the Skill for Claude Code</h2> <p>The skill teaches Claude Code when and how to use agent-browser. Without it, Claude doesnât know agent-browser exists.</p> <pre class="shiki github-dark" style="background-color:#24292e;color:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#B392F0">npx</span><span style="color:#9ECBFF"> skills</span><span style="color:#9ECBFF"> install</span><span style="color:#9ECBFF"> vercel-labs/agent-browser</span></span></code></pre> <img alt="Skills installer showing agent-browser skill ready to install"/> <p>Select âagent-browserâ and install. Now Claude Code knows the commands.</p> <h2>What Claude Can Do With It</h2> <p>You donât run these commands â Claude does. Once the skill is installed, Claude can:</p> <ul><li><strong>Read the page</strong> â see every button, input, link, and alert as a compact text snapshot (~100 tokens)</li> <li><strong>Click, type, submit</strong> â interact with forms, buttons, dropdowns</li> <li><strong>Take screenshots</strong> â capture visual state for layout checks</li> <li><strong>Read console/errors</strong> â see browser errors without you copy-pasting</li> <li><strong>Run JavaScript</strong> â evaluate expressions, check state</li> <li><strong>Manage tabs</strong> â open pages, switch between them</li></ul> <h2>What It Looks Like</h2> <p>You say: âThe checkout form validation isnât working.â</p> <p>Claude opens the page, submits an empty form, sees no error appears, reads the source, fixes the validator, waits for hot-reload, submits again, sees the validation error show up, and reports back: âFixed. Required field validation was missing on email.â</p> <p>No back-and-forth. No âcan you check if it works?â Claude verified its own fix.</p> <h2>Links</h2> <ul><li><a href="https://github.com/vercel-labs/agent-browser" rel="nofollow">GitHub: vercel-labs/agent-browser</a></li> <li><a href="https://github.com/nicepkg/nice-skills" rel="nofollow">Skills installer</a> â <code>npx skills install vercel-labs/agent-browser</code></li> <li>Related: <a href="https://github.com/nicepkg/nice-skills" rel="nofollow">Chrome DevTools MCP</a> has an experimental CLI too</li></ul>`,1),z=b(`<p><a href="https://github.com/vercel-labs/agent-browser" rel="nofollow">agent-browser</a> à¸à¸·à¸ CLI à¸à¸µà¹à¹à¸«à¹ AI agent interact à¸à¸±à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸à¹ â à¸à¸¥à¸´à¸ à¸à¸´à¸¡à¸à¹ à¸à¹à¸²à¸ element à¸à¸±à¸à¸ าà¸à¸«à¸à¹à¸²à¸à¸ à¹à¸«à¸¡à¸·à¸à¸à¹à¸«à¹ Claude Code มีมืà¸à¹à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹</p> <p>à¸à¹à¸²à¹à¸à¸¢à¹à¸à¹ Chrome DevTools MCP (30k token à¸à¹à¸ call) หรืภClaude Chrome extension (à¸à¸ permission à¸à¸¸à¸à¸à¸¥à¸´à¸) à¸à¸±à¸§à¸à¸µà¹à¸à¸·à¸à¸à¸²à¸à¹à¸¥à¸·à¸à¸à¸à¸µà¹à¹à¸à¸²à¸à¸§à¹à¸² ~100 token à¸à¹à¸ snapshot à¹à¸à¸ 30,000</p> <h2>à¸à¸´à¸à¸à¸±à¹à¸</h2> <pre class="shiki github-dark" style="background-color:#24292e;color:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#B392F0">npm</span><span style="color:#9ECBFF"> install</span><span style="color:#79B8FF"> -g</span><span style="color:#9ECBFF"> agent-browser</span></span></code></pre> <h2>à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹</h2> <p>มี 2 วิà¸à¸µ:</p> <h3>วิà¸à¸µ A: à¹à¸à¹ Chrome à¸à¸µà¹à¹à¸à¸´à¸à¸à¸¢à¸¹à¹</h3> <p>à¹à¸à¸´à¸ <code>chrome://inspect/#remote-debugging</code> à¹à¸ Chrome:</p> <img alt="หà¸à¹à¸²à¸à¸±à¹à¸à¸à¹à¸² Chrome remote debugging à¹à¸à¸´à¸ 'Allow remote debugging' à¹à¸¥à¹à¸§"/> <p>à¸à¸´à¹à¸ âAllow remote debuggingâ agent-browser à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸ Chrome à¸à¸£à¸´à¸à¸à¸à¸à¸à¸¸à¸à¸à¸£à¹à¸à¸¡ login session à¸à¸±à¹à¸à¸«à¸¡à¸:</p> <pre class="shiki github-dark" style="background-color:#24292e;color:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#B392F0">agent-browser</span><span style="color:#79B8FF">
1 --cdp-url</span><span style="color:#9ECBFF"> ws://127.0.0.1:41175</span><span style="color:#9ECBFF"> snapshot</span><span style="color:#79B8FF"> -i</span></span></code></pre> <h3>วิà¸à¸µ B: à¹à¸«à¹ agent-browser à¹à¸à¸´à¸à¹à¸à¸</h3> <pre class="shiki github-dark" style="background-color:#24292e;color:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#B392F0">agent-browser</span><span style="color:#9ECBFF"> open</span><span style="color:#9ECBFF"> http://localhost:5173</span></span></code></pre> <p>à¹à¸à¸´à¸ browser instance à¹à¸«à¸¡à¹ à¸à¹à¸²à¸¢à¸à¸§à¹à¸² à¹à¸à¹à¹à¸¡à¹à¸¡à¸µ session à¹à¸à¸´à¸¡</p> <h2>à¸à¸´à¸à¸à¸±à¹à¸ Skill สำหรัภClaude Code</h2> <p>Skill สà¸à¸à¹à¸«à¹ Claude Code รูà¹à¸§à¹à¸² agent-browser à¸à¸·à¸à¸à¸°à¹à¸£à¹à¸¥à¸°à¹à¸à¹à¸¢à¸±à¸à¹à¸ à¸à¹à¸²à¹à¸¡à¹à¸à¸´à¸à¸à¸±à¹à¸ Claude à¹à¸¡à¹à¸£à¸¹à¹à¸à¸±à¸ agent-browser</p> <pre class="shiki github-dark" style="background-color:#24292e;color:#e1e4e8" tabindex="0"><code><span class="line"><span style="color:#B392F0">npx</span><span style="color:#9ECBFF"> skills</span><span style="color:#9ECBFF"> install</span><span style="color:#9ECBFF"> vercel-labs/agent-browser</span></span></code></pre> <img alt="Skills installer à¹à¸ªà¸à¸ agent-browser skill à¸à¸£à¹à¸à¸¡à¸à¸´à¸à¸à¸±à¹à¸"/> <p>à¹à¸¥à¸·à¸à¸ âagent-browserâ à¹à¸¥à¹à¸§à¸à¸´à¸à¸à¸±à¹à¸ Claude Code à¸à¸°à¸£à¸¹à¹à¸à¸±à¸à¸à¸³à¸ªà¸±à¹à¸à¸à¸±à¹à¸à¸«à¸¡à¸</p> <h2>Claude à¸à¸³à¸à¸°à¹à¸£à¹à¸à¹à¸à¹à¸²à¸</h2> <p>à¸à¸¸à¸à¹à¸¡à¹à¸à¹à¸à¸à¸£à¸±à¸à¸à¸³à¸ªà¸±à¹à¸à¹à¸«à¸¥à¹à¸²à¸à¸µà¹à¹à¸à¸ â Claude à¸à¸³à¹à¸«à¹ à¸à¸à¸à¸´à¸à¸à¸±à¹à¸ skill à¹à¸¥à¹à¸§ Claude สามารà¸:</p> <ul><li><strong>à¸à¹à¸²à¸à¸«à¸à¹à¸²à¹à¸§à¹à¸</strong> â à¹à¸«à¹à¸à¸à¸¸à¸à¸à¸¸à¹à¸¡ input ลิà¸à¸à¹ à¹à¸¥à¸° alert à¹à¸à¹à¸ text snapshot (~100 token)</li> <li><strong>à¸à¸¥à¸´à¸ à¸à¸´à¸¡à¸à¹ submit</strong> â interact à¸à¸±à¸à¸à¸à¸£à¹à¸¡ à¸à¸¸à¹à¸¡ dropdown</li> <li><strong>à¸à¸±à¸à¸ าà¸à¸«à¸à¹à¸²à¸à¸</strong> â capture สà¸à¸²à¸à¸°à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¹à¸ layout</li> <li><strong>à¸à¹à¸²à¸ console/error</strong> â à¹à¸«à¹à¸ browser error à¹à¸à¸¢à¹à¸¡à¹à¸à¹à¸à¸ copy-paste à¹à¸«à¹</li> <li><strong>รัภJavaScript</strong> â evaluate expression à¹à¸à¹à¸à¸ªà¸à¸²à¸à¸°</li> <li><strong>à¸à¸±à¸à¸à¸²à¸£ tab</strong> â à¹à¸à¸´à¸à¸«à¸à¹à¸² สลัà¸à¹à¸à¸¡à¸²</li></ul> <h2>หà¸à¹à¸²à¸à¸²à¹à¸à¹à¸à¸¢à¸±à¸à¹à¸</h2> <p>à¸à¸¸à¸à¸à¸à¸: âCheckout form validation à¹à¸¡à¹à¸à¸³à¸à¸²à¸â</p> <p>Claude à¹à¸à¸´à¸à¸«à¸à¹à¸²à¹à¸§à¹à¸ submit à¸à¸à¸£à¹à¸¡à¹à¸à¸¥à¹à¸² à¹à¸«à¹à¸à¸§à¹à¸²à¹à¸¡à¹à¸¡à¸µ error à¸à¸¶à¹à¸ à¸à¹à¸²à¸ source à¹à¸à¹ validator รภhot-reload submit à¸à¸µà¸à¸à¸£à¸±à¹à¸ à¹à¸«à¹à¸ validation error à¸à¸¶à¹à¸ à¹à¸¥à¹à¸§à¸£à¸²à¸¢à¸à¸²à¸: âà¹à¸à¹à¹à¸¥à¹à¸§ required field validation à¸à¸µà¹ email หายà¹à¸â</p> <p>à¹à¸¡à¹à¸¡à¸µ back-and-forth à¹à¸¡à¹à¸à¹à¸à¸ âลà¸à¸à¹à¸à¹à¸à¹à¸«à¹à¸à¸µâ Claude verify à¸à¸²à¸à¸à¸à¸à¸à¸±à¸§à¹à¸à¸à¹à¸à¹</p> <h2>Links</h2> <ul><li><a href="https://github.com/vercel-labs/agent-browser" rel="nofollow">GitHub: vercel-labs/agent-browser</a></li> <li><a href="https://github.com/nicepkg/nice-skills" rel="nofollow">Skills installer</a> â <code>npx skills install vercel-labs/agent-browser</code></li> <li>à¹à¸à¸µà¹à¸¢à¸§à¸à¹à¸à¸: <a href="https://github.com/ChromeDevTools/chrome-devtools-mcp" rel="nofollow">Chrome DevTools MCP</a> มี experimental CLI à¸à¹à¸§à¸¢</li></ul>`,1),G=b(`<img alt="agent-browser: jigsaw puzzle with 'play with its craft' as the missing piece"/> <div style="display: flex; gap: 0.5rem; margin-bottom: 2rem;"><button>EN</button> <button>TH</button></div> <!>`,1);function ae(L){let e=M("th");var m=G(),k=p(m),c=s(k,2),l=O(c);l.__click=()=>y(e,"en");let w;var g=s(l,2);g.__click=()=>y(e,"th");let C;R(c);var S=s(c,2);{var T=o=>{var t=q(),n=s(p(t),16),d=s(n,18);F(20),u(()=>{r(n,"src",E),r(d,"src",I)}),i(o,t)},A=o=>{var t=N(),n=p(t);{var d=h=>{var v=z(),f=s(p(v),16),D=s(f,18);F(20),u(()=>{r(f,"src",E),r(D,"src",I)}),i(h,v)};B(n,h=>{a(e)==="th"&&h(d)},!0)}i(o,t)};B(S,o=>{a(e)==="en"?o(T):o(A,!1)})}u(()=>{r(k,"src",W),_(l,`padding: 0.25rem 0.75rem; border-radius: 4px; border: 1px solid var(--border, #333); background: ${a(e)==="en"?"var(--accent, #e2e8f0)":"transparent"}; cursor: pointer;`),w=x(l,1,"",null,w,{active:a(e)==="en"}),_(g,`padding: 0.25rem 0.75rem; border-radius: 4px; border: 1px solid var(--border, #333); background: ${a(e)==="th"?"var(--accent, #e2e8f0)":"transparent"}; cursor: pointer;`),C=x(g,1,"",null,C,{active:a(e)==="th"})}),i(L,m)}P(["click"]);export{ae as default,Y as metadata};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.