pilotfish (local)

io.github.gAI-venturesPublished by GitHub account gAI-venturesv0.1.13Updated Nov 6, 2026

A real Chromium on your machine for any MCP agent: ref-based tools, evidence per action, no API key.

Overview

AI-generated overview

Runs a real Chromium browser on your machine so an AI assistant can navigate, read, fill in and click through web pages with ref-based tools.

What you can do
  • Navigate to URLs, list and switch tabs, and close or restart the browser
  • Inspect the page as a snapshot tree with element refs, take viewport screenshots, or read page text including PDFs
  • Click, type, select options, press keys and scroll, each returning evidence of what changed
  • Read specific values with a read-only JavaScript query, or find elements by their visible words
  • Run several steps in one call, wait for loading, and resume after a sign-in, 2FA or CAPTCHA is done by hand
When to use it
Useful when an assistant needs to work with sites that have no API: filling in forms, checking prices or lists, reading pages behind a login, or verifying what a page actually shows. It is a local desktop tool, so it suits interactive sessions where a person can step in for sign-ins.
Requirements
Installs as a local npm package and runs as a stdio process on the user's machine, with a Chromium browser; desktop only. Optional environment variables: PILOTFISH_ALLOWED_HOSTS to restrict which hostnames may be visited, PILOTFISH_HEADLESS to hide the browser window, and PILOTFISH_SECRETS holding placeholder values. No API key or account is declared.
Before you install
The browser acts on live sites: clicks, typing and form submits change real data, and browser_close discards cookies and logins. By default any public host may be visited unless PILOTFISH_ALLOWED_HOSTS is set. PILOTFISH_SECRETS holds values typed as placeholders and must be kept out of shared configs; page content read by the assistant is sent to the model provider. Headless mode blocks manual sign-ins and CAPTCHAs.

Installation

In SourceWeft

  1. Open pilotfish (local) in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Tools

16

browser_navigate

Open a URL

Open an http(s) URL in the current tab. Returns evidence and a snapshot of the visible screen (elements carry refs like e12), with counts of what is above and below. Words like cheapest, latest, highest-rated or most mean the site's own sort or tab for that order (a list's default order is usually something else, e.g. 'Best' or 'Featured'): apply it, then read the top.

Parametersurlrequiredsnapshot

browser_snapshot

Read the page

The current page as a compact tree of headings, text and elements with refs (e12) to act on: three screens around the viewport, or everything with whole_page. Refs stay valid while their element is on the page.

Parameterswhole_page

browser_click

Click

Click an element by ref. Refuses with a reason (obscured, stale, not visible) instead of clicking the wrong thing. Returns evidence of what changed.

Parametersrefrequired

browser_type

Type

Type into an input, textarea or editable element by ref, replacing its text. Returns evidence.

Parametersrefrequiredtextrequiredsubmit

browser_select

Select options

Choose option(s) of a <select> by label or value. Returns evidence.

Parametersrefrequiredvaluesrequired

browser_press

Press a key

Press a key or shortcut on the focused element. Returns evidence.

Parameterskeyrequired

browser_scroll

Scroll

Scroll about one screen. Returns evidence and the newly visible elements.

Parametersdirectionrequired

browser_screenshot

Screenshot

JPEG of the current viewport. Prefer browser_snapshot (cheaper, has refs); use this when layout or images matter.

Takes no parameters.

browser_get_text

Page text

Readable text of the page (PDFs too), secrets masked, without refs. To read a few values or a list, browser_query is far smaller.

Parametersselectormax_chars

browser_query

Read values with JavaScript

Read just the values you need (prices, counts, titles, a results list) with a read-only JavaScript expression returning JSON (at most 4000 characters): the cheapest way to read, far smaller than browser_get_text or a snapshot. It runs in a world of its own where clicks, typing, submits and network writes are refused.

Parametersexpressionrequired

browser_find

Find elements

Refs of elements anywhere on the page, outside the visible screen too, by the words they show or are labelled with, best match first. Separate several targets by commas.

Parametersqueryrequired

browser_actions

Several actions in one call

Several steps in order in one call, e.g. fill a form's fields and submit it; each gets the same checks as its own tool. Stops at the first that fails, or after one that moves the page to another address (later refs would belong to the old page). Returns a line per step and the evidence and visible screen after the last one run.

Parametersactionsrequired

browser_resume

Continue after the person

When a result says NEEDS A PERSON (a sign-in, a one-time code or 2FA, a device approval, a CAPTCHA), tell the user in your reply what the page needs and that the pilotfish browser window is open on it; when they have done it there (or right after asking), call this and carry on: it waits until the page has moved on, then returns it. BLOCKED and STOP mean the site cannot be continued that way.

Parameterstimeout_s

browser_wait

Wait

Wait 0.5-10 seconds, then return what changed. Only for a page that is visibly still loading: every action already waits for the requests it started.

Parameterssecondsrequired

browser_tabs

Tabs

List the open tabs (the current one is marked). switch_to makes another tab current and returns its snapshot.

Parametersswitch_to

browser_close

Close the browser

Only to start over: closes the browser, and the next call starts a fresh one (cookies and logins are gone). It closes by itself when the client disconnects.

Takes no parameters.

Version history

3
  1. v0.1.13LatestNov 6, 2026
  2. v0.1.9Nov 5, 2026
  3. v0.1.1Nov 5, 2026

Score

65% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • License10 pts

    Declare a license in the repository or the registry entry.