Kitsune

io.github.junyeong-neroPublished by GitHub account junyeong-nerov0.7.3Updated Nov 5, 2026

Let your coding agent use the Firefox, Zen, or LibreWolf browser you already have open.

VerifiedSTDIODesktop onlyBrowser AutomationDeveloper Tools

Overview

AI-generated overview

Connects an AI coding agent to the Firefox, Zen or LibreWolf browser you already have open, letting it work in background tabs while you keep browsing.

What you can do
  • Navigate, click, type, hover, drag, select options, press keys and fill forms on pages
  • Read pages through accessibility snapshots, text search, screenshots and console messages
  • Inspect network requests and evaluate JavaScript, including a Playwright code snippet runner
  • Manage tabs, dialogs, file uploads and drops, window size and media emulation
  • Ask the user to sign in, pass a CAPTCHA or take over a step, then resume the call
When to use it
Useful when you want an agent to research, fill in drafts or drive web apps in your existing signed-in browser without installing Playwright or Chromium, and you want your own tabs left alone.
Requirements
Runs locally via uvx from the kitsune-browser-mcp PyPI package, with uv installed and the Kitsune browser extension added to Firefox, Zen or LibreWolf. The browser must stay open; the local bridge starts on its own. Optional environment variables KITSUNE_MODE, KITSUNE_CAPS, KITSUNE_PUBLISH and KITSUNE_ASK_BEFORE_ACT control policy. No authentication is declared.
Before you install
The agent works inside your signed-in browser profile, so it can reach accounts you are logged into; a separate profile is advised. browser_run_code_unsafe executes arbitrary code in the Playwright server process and is described as RCE-equivalent. Actions can submit forms, pay or delete; KITSUNE_MODE and KITSUNE_ASK_BEFORE_ACT limit this. The README states nothing stops prompt injection.

Installation

In SourceWeft

  1. Open Kitsune 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.

Other MCP clients

Follow the launch instructions in the repository.

README

Kitsune

[Kitsune: an orange fox in a browser window, connecting your browser and your AI agent]

[kitsune-browser-mcp on PyPI] [kitsune-browser on PyPI] [Python] [Release] [License: MIT] [Docs]

Let your coding agent use the browser you already have open, while you keep using it too.

Kitsune connects Claude Code, Codex, Pi, OpenCode and other MCP clients to Firefox, Zen or LibreWolf. The agent works in background tabs of its own, signed in wherever you are signed in. It can read your tabs, but it has to ask before it changes one. There is no Playwright, Chromium or WebDriver to install.

[Claude Code asks for the user's Wikipedia tab after researching in background tabs; the user approves in Kitsune's toolbar popup, the agent jumps the tab to the right section, and the user takes the tab back and closes the agent's tabs from the popup]

New in 0.7.2: the agent asks for your tab, and you approve, take it back and clean up from the toolbar popup. A real recording on Wikipedia, sped up while the agent thinks (full 45-second video).

Why Kitsune?

  • It works beside you. New tabs open in the background, so the page you are on stays in front. Your tabs, and tabs other agents opened, are read-only to the agent: it can read them, but it cannot click, type, scroll, navigate or close them. If you start typing in one of the agent's own tabs, it waits.
  • You stay in charge. When the agent needs one of your tabs, it asks, and you answer in Kitsune's toolbar popup. You can take the tab back at any time. The popup also shows whether the agent is connected, and closes all of the agent's tabs with one click. Tabs the agent leaves idle close by themselves after five minutes (you can change this in the popup).
  • The tools are familiar. The agent starts with Playwright MCP's 25 core tools, under the same names, plus browser_ask_user and browser_resume for when it needs you. Prompts written for Playwright MCP work unchanged. More tools (page text, forms, batches, downloads, …) stay off until you allow them.
  • You decide how much to hand over. KITSUNE_MODE=read, draft or act limits what the agent can do. In draft mode it can fill in forms but cannot click or submit.

Get started

  1. Install uv.

  2. Install the browser extension in Firefox, Zen or LibreWolf.

  3. Add Kitsune to your agent. For Claude Code:

    bash
    claude mcp add --scope user kitsune -- uvx --from kitsune-browser-mcp kitsune

    Codex, Pi, OpenCode, Claude Desktop and Cursor are in Installation.

  4. Keep the browser open and ask in plain language:

    Research these three products in background tabs and compare them with links. Leave my current tab alone.

    Fill in a draft of this form. Don't submit it.

Kitsune starts its local bridge on its own. If the agent cannot connect, ask it to check the connection: the error's hint says what to fix.

Use a separate browser profile for agent work and sign in only to the accounts it needs. Ask the agent to check with you before it sends, buys or deletes anything. Nothing in Kitsune stops prompt injection, so read the security guide before using sensitive accounts.

Documentation

The full documentation is at junyeong-nero.github.io/kitsune:

Source: README.md at commit adcd511

Tools

27

browser_resume

Resume a call

Continue a call whose result has call and resume_token (a needs_user stop, batch, parallel or workflow); nothing that ran ok is sent again.

Parameterscallrequiredwaitobservedresume_tokenrequired

browser_ask_user

Ask the user

Ask the user to do what you cannot: sign in, pass a CAPTCHA (human_check), click a control that ignores your clicks (trusted_input), or choose (other).

Parametersreasonrequiredtab_idmessagerequired

browser_close

Close browser

Close the page

Takes no parameters.

browser_resize

Resize browser window

Resize the browser window

Parameterswidthrequiredheightrequired

browser_console_messages

Get console messages

Returns all console messages

Parametersalllevelrequiredfilename

browser_handle_dialog

Handle a dialog

Handle a dialog

ParametersacceptrequiredpromptText

browser_emulate_media

Emulate media features

Emulate CSS media features for the page, for example switch between the light and dark color scheme. Omitted parameters are left unchanged; null clears an override.

ParametersmediacontrastcolorSchemeforcedColorsreducedMotion

browser_evaluate

Evaluate JavaScript

Evaluate JavaScript expression on page or element

Parameterstargetelementfilenamefunctionrequired

browser_file_upload

Upload files

Upload one or multiple files

Parameterspaths

browser_drop

Drop files or data onto an element

Drop files or MIME-typed data onto an element, as if dragged from outside the page. At least one of "paths" or "data" must be provided.

Parametersdatapathstargetrequiredelement

browser_find

Find in page snapshot

Search the accessibility snapshot of the current page for text or a regular expression. Returns matching snapshot nodes with a few lines of surrounding context (like search snippets), each shown under its path from the root of the tree, which is cheaper than capturing the whole snapshot when you only need to locate an element and its ref.

Parameterstextregexfilename

browser_fill_form

Fill form

Fill multiple form fields

Parametersfieldsrequired

browser_press_key

Press a key

Press a key on the keyboard

Parameterskeyrequired

browser_type

Type text

Type text into editable element

Parameterstextrequiredslowlysubmittargetrequiredelement

browser_navigate

Navigate to a URL

Navigate to a URL

Parametersurlrequired

browser_navigate_back

Go back

Go back to the previous page in the history

Takes no parameters.

browser_network_requests

List network requests

Returns a numbered list of network requests since loading the page. Use browser_network_request with the number to get full details.

Parametersfilterstaticrequiredfilename

browser_network_request

Show network request details

Returns full details (headers and body) of a single network request, or a single part if `part` is set. Use the number from browser_network_requests.

Parameterspartindexrequiredfilename

browser_run_code_unsafe

Run Playwright code (unsafe)

Run a Playwright code snippet. Unsafe: executes arbitrary JavaScript in the Playwright server process and is RCE-equivalent.

Parameterscodefilename

browser_take_screenshot

Take a screenshot

Take a screenshot of the current page. You can't perform actions based on the screenshot, use browser_snapshot for actions.

ParameterstypescalerequiredtargetelementfilenamefullPage

browser_snapshot

Page snapshot

Capture accessibility snapshot of the current page, this is better than screenshot

Parametersboxesdepthtargetfilename

browser_click

Click

Perform click on a web page

ParametersbuttontargetrequiredelementmodifiersdoubleClick

browser_drag

Drag mouse

Perform drag and drop between two elements

ParametersendTargetrequiredendElementstartTargetrequiredstartElement

browser_hover

Hover mouse

Hover over element on page

Parameterstargetrequiredelement

browser_select_option

Select option

Select an option in a dropdown

Parameterstargetrequiredvaluesrequiredelement

browser_tabs

Manage tabs

Manage tabs; request a handoff.

Parametersurlindexactionrequiredreasontab_idconfirm_token

browser_wait_for

Wait for

Wait for text to appear or disappear or a specified time to pass

ParameterstexttimetextGone

Version history

5
  1. v0.7.3LatestNov 5, 2026
  2. v0.7.2Nov 4, 2026
  3. v0.7.1Oct 29, 2026
  4. v0.7.0Oct 25, 2026
  5. v0.4.1Oct 25, 2026

Score

90% 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
  • License10 pts