---
title: "safari-browser-use"
description: "Control the user's existing Safari 26 session with agent-written JavaScript."
canonical: https://agentpluginsdirectory.com/plugins/safari-browser-use--citrolabs
last-updated: 2026-10-21
---

# safari-browser-use
Control the user's existing Safari 26 session with agent-written JavaScript.
- Slug: safari-browser-use--citrolabs
- Publisher: CitroLabs
- Repository: https://github.com/citrolabs/safari-browser-use
- Manifest: plugin.json
- Version: 0.1.2-20260904
- License: MIT
- Category (editorial): research
- Skills: 1 (control-safari)
- MCP servers: 1 (safari-browser-use)
- Stars: 10
- Repository created: 2026-07-26
- Repository last pushed: 2026-09-24
- Publisher type: Organization
- Listing: https://agentpluginsdirectory.com/plugins/safari-browser-use--citrolabs
- Schema: https://agent-plugins.org/schemas/1.0.0/plugin.schema.json

## What safari-browser-use does, in the publisher's words

Control your existing Safari 26 tabs with AI agents, no browser extension or companion app required.

Safari Browser Use gives AI agents such as Codex, Claude Code, GitHub Copilot, Cursor, Kiro, CodeBuddy, WorkBuddy, and Qoder safe, visible control of the Safari tabs you already have open. It preserves your current sessions and logins while exposing a synchronous JavaScript REPL and a Playwright-style browser API.

It connects through the Apple Events support built into macOS. Plugin mode does not require Node.js, npm, a Safari extension, a companion app, Xcode, or an Apple Developer certificate. The Skill-only mode uses the Node.js runtime available to the agent to preserve its script session between calls.

From the project README, punctuation lightly normalized. Full text: https://raw.githubusercontent.com/citrolabs/safari-browser-use/HEAD/README.md

## Skills

- control-safari: Control the user's existing Safari 26 session through a persistent script-driven JavaScript REPL. Use for inspecting, navigating, clicking, filling, selecting, uploading, or verifying webpages in Safari when an MCP/plugin transport is unavailable.

Descriptions come from the frontmatter of each SKILL.md, punctuation lightly normalized.

## MCP servers

- safari-browser-use: transport: stdio; command: osascript -l JavaScript ${PLUGIN_ROOT}/skills/control-safari/scripts/runtime/safari-repl.jxa.js

Read from the plugin's own mcp.json. Environment variable names only, never values.
