Browser pages your agent clicks and fills in

Your agent uses a browser. It opens pages in a real browser, reads them, clicks, types into forms and sees them as screenshots, on pages that need scripts, a sign-in or a button pressed, which Web's fetch can't do.

lnk agent tool add browser    # it calls browser__open, browser__click, browser__screenshot...

Add it

It installs link-browser if it's missing, defines the tool for this agent alone, and restarts your agent with it; --agent <name> picks another agent, and its first lnk agent start offers it too. lnk agent tool remove browser takes it away; its profile stays.

What it needs

You need the link-browser plugin, which lnk plugin add link-browser installs, and Chromium, Google Chrome, Microsoft Edge or Brave on this computer.

Ask it something

Ask "find me a table for two at Tasca do Chico on Friday" and it opens the site, reads it, clicks through, fills the form and shows you a screenshot before it books.

Its profile

Its profile, with its cookies and sign-ins, is ~/Link/Agents/<name>/Browser, in the agent's folder, which its harness never reaches.

By hand

lnk agent tool add browser is the plugin, the tool shared by every session of the agent with its calls allowed, and your agent allowed to call it.

lnk plugin add link-browser
lnk sandbox tool add browser --shared \
  --allow open --allow read --allow click --allow type --allow select \
  --allow scroll --allow screenshot --allow close \
  -- lnk-link-browser serve --profile ~/Link/Agents/main/Browser -- lnk sandbox run
lnk agent allow --tool browser

What it does

Your agent calls it as browser__<call>, a page at a time.

open and read

open opens a page by its URL, waits for it to load, and reads it. read gives the page's text, each part that can be clicked or typed into numbered where it stands ([3]), 24 KB at a time.

click, type and select

click clicks a part, by its number. type types into a field, replacing what it held, and with submit presses Enter. select chooses an option of a drop-down, by its text or value.

scroll, screenshot and close

scroll scrolls the page down or up by most of a window, or a part into view. screenshot is an image of what the window shows, 1280 by 800 pixels. close closes the browser; its profile stays.

What a page does meanwhile

The numbers are those of the last read, so after a page changes, read it again. A dialog the page opens is answered OK and its words said. A link that opens a new tab makes that tab the page.

Its sandbox

The browser starts at the first call, headless, in a sandbox of its own (lnk sandbox run). It reads its own program, writes only its profile, and reaches the internet through the sandbox's proxy, so it reaches nothing on this computer or your network, however a page asks: a link, a redirect or a script.

Browser resources on macOS

On macOS, read access covers the selected browser's .app bundle so its frameworks and helper programs can load. It does not grant the Applications folder or your personal browser profile.

Its profile across sessions

Its profile keeps its cookies, so a sign-in lasts from one session to the next, and every session of the agent shares the one browser (--shared). It is never your own browser's profile, which the tool refuses.

Downloads and uploads

It downloads nothing and uploads no file: each is refused, and the answer says so.

Open a page on your network

Name a host to let it through. A host of your network is given as a name, an address or a range; a port of this computer as localhost:<port>.

lnk sandbox tool add browser --shared --allow open --allow read --allow click --allow type \
  --allow select --allow scroll --allow screenshot --allow close \
  -- lnk-link-browser serve --profile ~/Link/Agents/main/Browser \
  --private-host nas.local --private-host localhost:3000 -- lnk sandbox run

More about it

To work on its code, see Developing Link Browser, and when the browser doesn't start or a page isn't reached, Troubleshooting.

Docs

  • Developing: lnk-link-browser is Link Browser: an MCP server over stdio whose calls drive a headless Chromium, for any harness to reach as a tool
  • Troubleshooting: What to do when your agent's browser doesn't start, reach a page or keep a sign-in (Link Browser)
  • Decisions: Why Link Browser drives a browser of its own, in a sandbox, and leaves the network rule to the sandbox's proxy