Interceptor

Hacker-Valley-Media活跃维护

给 AI Agent 提供浏览器、macOS 原生应用和真实 iPhone 的自动化操作能力,通过一个 CLI 和 MCP 服务器直接接管已登录的浏览器与设备。

Browser automation and computer use for AI agents. One CLI and MCP server for your signed-in browser, native macOS apps, and real iPhones.

v2.1.11发布于 2026-11-05 08:29 UTC615star +5 / 7 天95fork同步于 2026-11-10 11:57 UTC

怎么上手

由 README 提炼,执行前请确认
curl -fsSL https://raw.githubusercontent.com/Hacker-Valley-Media/Interceptor/main/scripts/get-interceptor.sh | bash
硬件要求按 README 说明

macOS 发行包仅支持 Apple silicon,Intel Mac 需从源码构建;Full 版的 Mac 原生桥接要求 macOS 15+;Windows 需 10 22H2+ 或 11(ARM64 需 11 24H2+);Linux 提供 x64/ARM64 包;iPhone 配置需要一台 Mac。README 未提及显存或 GPU 要求。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

让 AI agent 接管你已登录的浏览器、桌面应用和真机 iPhone 的 CLI 与 MCP 服务

给 AI Agent 提供浏览器、macOS 原生应用和真实 iPhone 的自动化操作能力,通过一个 CLI 和 MCP 服务器直接接管已登录的浏览器与设备。

核心能力

  • 同一套命令驱动 Chrome、Brave、Edge 和 Safari 页面
  • 通过 USB、Wi-Fi 或 Tailscale 操控物理 iPhone 上的应用
  • 用标准页面 API 读取 fetch、XHR、SSE、WebSocket 流量,无需调试器
  • 通过场景图读写 Google Docs、Slides、Sheets 和 Canva 并导出文件
  • 按名称从 Vault 注入密码到登录、sudo 和 iPhone 解锁,模型看不到明文

容易踩的坑

本地运行时和浏览器扩展必须都安装,只装 CLI 无法操作浏览器;Safari 需额外安装 Safari 扩展包并在设置中手动授权;Full 版需给 interceptor-bridge 授予辅助功能、屏幕录制等系统权限,否则原生控制不可用。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.1.11
  1. v2.1.11Interceptor v2.1.11最新正式版2026-11-05 · 2026-11-05 08:29 UTC

    Interceptor v2.1.11

    What is Interceptor?

    Interceptor is an AI-agent control surface for your browser, desktop apps, and iPhone. It works with your existing signed-in sessions through one CLI and local daemon.

    • Browser: read and act inside Chrome, Brave, Edge, and Safari, including page trees, network observation, rich editors, screenshots, and exports.
    • macOS: read and control native apps through Accessibility, trusted input, capture, and Apple frameworks. Routine work stays in the background.
    • Windows and Linux: use interceptor desktop with the native provider included in Full installs.
    • iOS: drive apps on an owned, unlocked, Developer Mode iPhone through the on-device XCTest runner, with separate device-service, Instruments, and WebKit lanes.

    interceptor mcp install exposes these surfaces to supported MCP clients. No API key or separate automation browser is required.


    What's new in v2.1.11

    This release fixes four reported issues. Thank you to @icryptan, @Patrickraveaux, and @cristbc for reports precise enough to reproduce each one.

    The macOS bridge starts on macOS 15 again (#328)

    Since 2.1.5 the Full bridge stopped at launch on macOS 15 with Library not loaded: @rpath/libswiftCompatibilitySpan.dylib, and launchd restarted it over and over. Newer Swift toolchains link that library, which macOS 26 and later include and macOS 15 does not. The bridge now carries its own copy in Contents/Frameworks, signed with the Developer ID. macOS 26 and later still use the system copy. The build now fails if the bridge links a library it does not carry, so this cannot ship again unnoticed.

    If you used the 1.0.24 workaround, you can turn Sparkle checks back on with defaults delete com.interceptor.bridge SUEnableAutomaticChecks and install this release.

    eval --main no longer fills the browser with leftover rules (#317)

    When a page's content security policy blocks eval --main, Interceptor strips that header for the tab and reloads it. Each such tab used to leave a browser session rule behind until the browser quit. After about 5,000 tabs every bypass failed with Session rule count exceeded, and only a browser restart fixed it. Now one rule lists every tab that needs the bypass, a tab leaves it when it closes, and rules left by older versions are cleared when the extension starts. A long session stays at one rule.

    interceptor open https://x.com/home --no-reuse
    interceptor eval --main 'document.title' --tab <id>
    interceptor tab close <id>    # the tab's bypass entry is removed too
    

    macos screenshot --window captures the window you name (#318)

    --window takes the numeric windowId from interceptor macos windows, the same way macos click, type, and the other input commands already did. A window's ref (such as e864) used to be ignored, and with --app the command returned the app's largest window as a success. It now exits with an error and captures nothing. Two --save captures in the same second keep both files (the second gets -2), and --region, which this command never supported, says so instead of capturing a whole window.

    interceptor macos windows --app "Brave Browser"
    interceptor macos screenshot --app "Brave Browser" --window 58357 --save
    

    screenshot --pixel reports the real failure (#329)

    When captureVisibleTab failed, a fallback replaced its error with an unrelated activeTab message. The error now leads with the capture failure, names the fallback's error second, and includes the tab's visibilityState read during the capture. Several --pixel captures at once now wait their turn under Chrome's limit of two captures per second instead of failing, and each capture borrows its tab only shortly before its turn. If a covered tab reports Failed to capture tab: image readback failed, open the page in its own background window with interceptor window new <url> and capture that tab.

    Updating from 2.1.8 or earlier

    2.1.

  2. v2.1.10Interceptor v2.1.102026-11-04 · 2026-11-04 16:39 UTC
    查看更新说明

    Interceptor v2.1.10

    What is Interceptor?

    Interceptor is an AI-agent control surface for your browser, desktop apps, and iPhone. It works with your existing signed-in sessions through one CLI and local daemon.

    • Browser: read and act inside Chrome, Brave, Edge, and Safari, including page trees, network observation, rich editors, screenshots, and exports.
    • macOS: read and control native apps through Accessibility, trusted input, capture, and Apple frameworks. Routine work stays in the background.
    • Windows and Linux: use interceptor desktop with the native provider included in Full installs.
    • iOS: drive apps on an owned, unlocked, Developer Mode iPhone through the on-device XCTest runner, with separate device-service, Instruments, and WebKit lanes.

    interceptor mcp install exposes these surfaces to supported MCP clients. No API key or separate automation browser is required.


    What's new in v2.1.10

    Native iPhone element actions

    The iOS surface now resolves refs against the current native app and lets XCTest choose a hittable point. Native element commands add double-tap, two-finger tap, velocity swipes, pinch, rotation, reveal, slider adjustment, and exact picker values.

    interceptor ios tree --on <phone>
    interceptor ios element <ref> double-tap --on <phone>
    interceptor ios element <slider-ref> slider 0.75 --on <phone>
    interceptor ios element <picker-ref> picker "Second" --on <phone>
    

    Missing, ambiguous, disabled, or covered targets refuse. Explicit coordinates retain their meaning. Older runners use coordinate fallback only after a definite unknown-operation refusal; a timeout never triggers a second input. Secure-field values are removed from snapshots in both the runner and daemon.

    Device controls, keys, and accessibility

    New command groups are capabilities, element, key, device, audit, authorization, and voiceover.

    interceptor ios capabilities --on <phone>
    interceptor ios device open "https://example.com" --on <phone>
    interceptor ios device appearance dark --on <phone>
    interceptor ios device orientation portrait --on <phone>
    interceptor ios key Enter --on <phone>
    interceptor ios audit --on <phone>
    

    Device controls also set or clear runner location and expose guarded Siri and user-presence operations. authorization reset <bundle> <resource> resets an explicitly selected app permission and is classified as destructive in MCP. press action and press camera check hardware support. Home uses a bounded HID event on physical iOS 27 and a calibrated bottom-edge gesture on physical iPadOS 26. Other older devices and Simulator keep the public route. Home snapshots map the observed empty iPad Home helper to SpringBoard's icon tree. Let rotation settle before sending input.

    iOS 26 stays supported. Accessibility audits require iOS 17 or later. VoiceOver automation requires iOS 27. Modified keys are enabled only on the verified physical iOS 27 path, and physical iOS 27 Siri is disabled because validation lost its reply. capabilities reports these guards; selector presence does not prove an operation works on every device. Refresh an existing runner after updating.

    Less work for full-size iPhone streams

    An upright, full-size stream can return encoded JPEG bytes directly from XCTest after checking the format and dimensions. Rotation, mirroring, scaling, or a failed direct capture use the existing normalization renderer. The screenshot wire format stays PNG, and the runner deployment target stays iOS 15 with runtime guards.

    Windows 10 22H2 x64 support

    Reviewed PR #324 adds both Browser and Full support for Windows 10 22H2 x64, build 19045 or later. Windows 11 x64 Browser installs accept earlier Windows 11 builds; Full and both ARM64 editions still require build 26100 or later. The bootstrap installer and generated WinGet manifests use those same minimums.

    On Windows 10 build 19045, app-based capture skips Explorer's desktop shell and sel

  3. v2.1.8Interceptor v2.1.82026-10-31 · 2026-10-31 22:31 UTC
    查看更新说明

    Interceptor v2.1.8

    What is Interceptor?

    Interceptor is an AI-agent control surface for the browser, desktop apps, and iPhone you already use. It works with your real signed-in sessions, so your cookies, accounts, tabs, and app state stay intact while an agent reads the interface and takes action.

    Four surfaces, one CLI:

    • Browser: drive your live Chrome, Brave, Edge, or Safari session from inside the page. Read the DOM and accessibility tree, click, type, navigate, observe network traffic without CDP, automate rich editors and canvas apps, capture client-side exports, and record workflows for replay.
    • macOS: drive native apps through the Accessibility tree, trusted input, ScreenCaptureKit, and Apple's Vision, Speech, and Natural Language frameworks. Routine work stays in the background unless you explicitly ask the agent to show or focus an app.
    • Windows and Linux: interceptor desktop drives native apps with the same verbs, flags, and JSON replies as interceptor macos, through a native provider that ships in the Full packages.
    • iOS: drive any installed app on an owned, unlocked, Developer Mode iPhone through an on-device XCUITest runner, plus device-service and Instruments lanes for logs, files, processes, telemetry, location, and WebKit inspection.

    Interceptor ships as one interceptor CLI, a local daemon, a browser extension, a native macOS bridge or Windows/Linux desktop provider, and an iPhone runner. It needs no API keys and does not launch a separate automation browser. interceptor mcp install exposes every surface to MCP clients such as Claude Code, Codex, Gemini CLI, Cursor, and Claude Desktop.


    What's new in v2.1.8

    Trusted input reaches a tab that is not showing

    --trusted used to refuse a tab that was not the one showing in its window. On a macOS Full install the tab now gets a background window of its own, takes the click, typing, or keys, and goes back where it was: same window, position, tab group, group color, and page state. Your frontmost app and cursor do not move.

    interceptor click <ref> --trusted --tab <id>
    interceptor window new --tab <id>      # give an existing tab its own background window
    

    interceptor window new --tab <id> is new: it builds a background window around a tab you already have, instead of opening a blank one. Safari keeps the old rule, because it has no tab groups to bring the tab back into.

    "Delivered" now says what the page reported

    A background click used to report delivered in the background as soon as macOS accepted the events, even when the page never saw them. Interceptor now asks the page:

    • … the page received it when the page reported the input.
    • the page reported none of it, so read the page before sending it again when it did not, with an exit code of 1 and a hint naming the likely cause.
    • The plain delivered line when the page could not answer (it navigated, an iframe holds the target, it was a ⌘ or Ctrl shortcut).

    Interceptor never sends input a second time on its own: silence is not proof, so a repeated click is always the agent's choice after a fresh read.

    One limit remains: when the browser itself is the app in front, a left click aimed at one of its other windows does not reach the page (typing does). The only way found around it raises that window over yours, so Interceptor reports the miss instead.

    Agents stay out of the tab you are looking at

    In browsers with tab groups (not Safari), an agent whose own group is empty can no longer click, type, run JavaScript, or navigate in the tab you have open. It is told to open its own page first. Reads still work and say which tab they read. Closing another agent session's group or tabs now needs --any-tab, and interceptor group close with no label closes your own.

    Several browser profiles connected? Name a default once with interceptor contexts default <name>. It is used only when a command names no context.

    Fewer calls

  4. v2.1.6Interceptor v2.1.62026-10-27 · 2026-10-27 11:16 UTC
    查看更新说明

    Interceptor v2.1.6

    What is Interceptor?

    Interceptor is an AI-agent control surface for the browser, desktop apps, and iPhone you already use. It works with your real signed-in sessions, so your cookies, accounts, tabs, and app state stay intact while an agent reads the interface and takes action.

    Four surfaces, one CLI:

    • Browser: drive your live Chrome, Brave, Edge, or Safari session from inside the page. Read the DOM and accessibility tree, click, type, navigate, observe network traffic without CDP, automate rich editors and canvas apps, capture client-side exports, and record workflows for replay.
    • macOS: drive native apps through the Accessibility tree, trusted input, ScreenCaptureKit, and Apple's Vision, Speech, and Natural Language frameworks. Routine work stays in the background unless you explicitly ask the agent to show or focus an app.
    • Windows and Linux: interceptor desktop drives native apps with the same verbs, flags, and JSON replies as interceptor macos, through a native provider that ships in the Full packages.
    • iOS: drive any installed app on an owned, unlocked, Developer Mode iPhone through an on-device XCUITest runner, plus device-service and Instruments lanes for logs, files, processes, telemetry, location, and WebKit inspection.

    Interceptor ships as one interceptor CLI, a local daemon, a browser extension, a native macOS bridge or Windows/Linux desktop provider, and an iPhone runner. It needs no API keys and does not launch a separate automation browser. interceptor mcp install exposes every surface to MCP clients such as Claude Code, Codex, Gemini CLI, Cursor, and Claude Desktop.


    What's new in v2.1.6

    Read a Mac camera with no window on screen

    interceptor macos camera gives an agent frames from a camera with nothing on screen, so a face, a desk, or a room can be checked while other windows are on top.

    interceptor macos camera list
    interceptor macos camera start [--device <id|name>] [--fps 1-30] [--prompt]
    interceptor macos camera frame [--out <path>] [--max-long-edge N] [--quality 1-100] [--timeout-ms N]
    interceptor macos camera status
    interceptor macos camera stop
    
    • No surprise prompt. A plain camera start never shows the macOS camera prompt or changes the app in front. Until the camera is allowed, it says to run camera start --prompt, which shows the prompt once and then gives focus back to the app you were in. An answer after two minutes does not turn the camera on.
    • The camera runs at the rate you ask for, not its own default, so a 5 fps watch does not process 30 frames a second. status reports the rate as deviceFps, along with the frame age and whether the camera was taken away mid-session (lid closed, an iPhone walked off).
    • frame writes a JPEG with --out, or returns it inline.
    • macOS only, with the Full package: the camera permission belongs to interceptor-bridge. Windows and Linux refuse the command as macOS-only.

    Thanks to @pedramamini for the feature in #313.

    Install with one command

    macOS (Apple silicon) and Linux:

    curl -fsSL https://raw.githubusercontent.com/Hacker-Valley-Media/Interceptor/main/scripts/get-interceptor.sh | bash
    

    Windows (PowerShell):

    irm https://raw.githubusercontent.com/Hacker-Valley-Media/Interceptor/main/scripts/get-interceptor.ps1 | iex
    

    It asks two questions, and Enter at both gets everything: Full or Browser only (Full is the default), and register the MCP server in the AI apps it finds (yes is the default, with every tool on). It downloads the newest release, checks its SHA-256 and the Hacker Valley Media signature, and installs it with no Installer wizard. Nothing installs if a check fails. It also adds Interceptor's skills to every AI agent on your computer. Run it again any time to update; it keeps your edition. Options such as --browser, --no-mcp, --safari and --no-skills go after bash -s --.

    Prefer Apple's ow

  5. v2.1.5Interceptor v2.1.52026-10-21 · 2026-10-21 23:47 UTC
    查看更新说明

    Interceptor v2.1.5

    What is Interceptor?

    Interceptor is an AI-agent control surface for the browser, desktop apps, and iPhone you already use. It works with your real signed-in sessions, so your cookies, accounts, tabs, and app state stay intact while an agent reads the interface and takes action.

    Four surfaces, one CLI:

    • Browser: drive your live Chrome, Brave, Edge, or Safari session from inside the page. Read the DOM and accessibility tree, click, type, navigate, observe network traffic without CDP, automate rich editors and canvas apps, capture client-side exports, and record workflows for replay.
    • macOS: drive native apps through the Accessibility tree, trusted input, ScreenCaptureKit, and Apple's Vision, Speech, and Natural Language frameworks. Routine work stays in the background unless you explicitly ask the agent to show or focus an app.
    • Windows and Linux: interceptor desktop drives native apps with the same verbs, flags, and JSON replies as interceptor macos, through a native provider that ships in the Full packages.
    • iOS: drive any installed app on an owned, unlocked, Developer Mode iPhone through an on-device XCUITest runner, plus device-service and Instruments lanes for logs, files, processes, telemetry, location, and WebKit inspection.

    Interceptor ships as one interceptor CLI, a local daemon, a browser extension, a native macOS bridge or Windows/Linux desktop provider, and an iPhone runner. It needs no API keys and does not launch a separate automation browser. interceptor mcp install exposes every surface to MCP clients such as Claude Code, Codex, Gemini CLI, Cursor, and Claude Desktop.


    What's new in v2.1.5

    Interceptor no longer disappears when the browser restarts

    If Interceptor vanished every time you restarted Chrome, Brave, Edge or Vivaldi, and came back only when you loaded the extension again by hand, this release fixes it.

    Through 0.24.13 the unpacked extension carried an older extension ID. 1.0.1 switched the same install folder to the Chrome Web Store ID. A browser profile that had loaded the old copy kept an entry for the old ID pointing at that folder, and at every start the browser found a different ID there and skipped the folder, so Interceptor was gone after each restart.

    • Installs and updates now check for it. The Mac packages (including Sparkle updates) and Windows Setup read each browser profile's settings, without changing them, and speak up only when they find a problem. Nothing happens to your browser until you click.
    • Brave, Vivaldi and Chromium on a Mac are fixed with one click. Restart closes the browser, opens it once with the old-ID copy that now ships in extension-legacy, and reopens your profiles. After that, a normal restart keeps Interceptor.
    • Google Chrome and Edge get exact steps, because they ignore the command-line switch the automatic fix uses: Load unpacked extension-legacy, then press the reload arrow on its card.
    • Check any time: interceptor diagnose extension lists every affected profile and its fix, and interceptor diagnose extension --fix runs the restart fix on a Mac. Plain interceptor diagnose now names affected profiles too.
    • macOS 27 asks first. macOS 27 requires your permission before an app reads Chrome, Brave or Edge settings. The check runs inside interceptor-bridge and asks once, in Privacy & Security > Files & Folders. It carries on as soon as you turn the browser on, and the window stays open while you do.

    A welcome window on first install (Mac)

    A first install of either Mac package opens an Interceptor window. It looks for a copy of the extension already in your browser. If there isn't one, it walks you through adding it from the Chrome Web Store, as an unpacked extension (it copies the folder path and opens a step-by-step guide), or for Safari, and tells you when the browser connects. Open it again with interceptor diagnose extension --welcome. Every

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Interceptor reads GitHub stats, fills a Numbers sheet, and builds an on-screen overlay.

    https://github.com/user-attachments/assets/b8af57d1-8a22-4955-8b2b-f43f09d52286

    30-second edited demo. The terminal is staged from real Interceptor output.

    Interceptor connects an AI agent or script to your signed-in browser, native apps on macOS, Windows, and Linux, and a physical iPhone. It combines structured UI reads and actions with access to page traffic, rich editors, app internals, and device state. The agent can inspect what happened after an action and use that evidence for its next step.

    Work you can build with InterceptorTools available
    Research in your existing browser sessionPage text, tables, links, browser search, multiple contexts, and a source-ledger research workflow.
    Edit a document, slide, or design and save the resultRich-editor scenes, canvas input, file uploads, and direct capture of page-produced export bytes.
    Complete a native desktop task while you keep workingAccessibility controls, background input, and capture of covered windows on macOS, Windows, and Linux; Apple Events on the Mac.
    Operate an app on a real iPhone and inspect its stateElement trees, taps, text entry, screenshots, process telemetry, and WebKit inspection.
    Turn a demonstrated workflow into reusable commandsBrowser and Mac recording, event timelines, and replay-plan export.

    Use it from any agent that can run shell commands, or through its built-in Model Context Protocol (MCP) server. Interceptor does not require a model API key; your chosen agent or model may have its own subscription or API costs.

    What Interceptor adds

    Many tools now let an agent use your signed-in Chrome, and several work on a Mac in the background. Interceptor does both, and adds what the tools in How it compares don't:

    • Safari and Chromium in one CLI. Chrome, Brave, Edge, and Safari pages, with the same commands, in the profiles you already use.
    • Your own iPhone. Drive the apps on a physical iPhone, not a simulator, over USB, Wi-Fi, or Tailscale away from home, including on cellular.
    • Page traffic without a debugger. Read fetch, XHR, SSE, WebSocket, Beacon, and BroadcastChannel traffic through standard page APIs. The browser shows no debugging banner and needs no remote-debugging switch.
    • Real editors, not screenshots. Read and change Google Docs, Slides, Sheets, and Canva through their scene graphs, and save the files they export.
    • Admin work without showing the password. Vault secrets go by name into a web login, sudo, the macOS administrator prompt, or the iPhone passcode. The model never sees the value.
    • One tool across browser, Mac, Windows, Linux, and iPhone, with any agent and any model. Work runs in the background so you keep using your computer. Behavior and exceptions.

    Get started

    Install with one command

    macOS (Apple silicon) and Linux:

    curl -fsSL https://raw.githubusercontent.com/Hacker-Valley-Media/Interceptor/main/scripts/get-interceptor.sh | bash
    

    Windows (PowerShell):

    irm https://raw.githubusercontent.com/Hacker-Valley-Media/Interceptor/main/scripts/get-interceptor.ps1 | iex
    

    It asks two questions. Press Enter for both to get everything:

    1. Full or Browser only? Full (the default) is your browser plus desktop apps, and the iPhone on a Mac. Browser only is web pages.
    2. Register the MCP server? Yes is the default. It lists the AI apps it found that don't have the server yet (Claude Code, Codex, Cursor, Gemini CLI, Claude Desktop) and turns every tool on.

    It downloads the latest release from updates.hackervalley.media, checks its SHA-256 and the Hacker Valley Media signature, and installs it with no Installer wizard. Nothing installs if a check fails. It adds Interceptor's skills to every AI agent on your computer. A Mac asks for your password once. Run it again any time to update: it keeps your edition and leaves an existing MCP setup alone.

    Options go after bash -s --, for example curl -fsSL … | bash -s -- --browser --no-mcp:

    OptionDoes
    --full, --browserPick the edition instead of being asked. Full is the default.
    --mcp, --no-mcpRegister the MCP server in every AI app it finds, or skip it, instead of being asked (--mcp=claude,codex for some).
    --safarimacOS: also install the Safari extension package.
    --no-skillsSkip adding the skills.

    On Windows, pass the same as parameters: & ([scriptblock]::Create((irm <url>))) -Browser -NoMcp.

    "Every tool on" means the agent can also run the actions that are off by default, such as quitting apps, writing files, and running scripts in a page (INTERCEPTOR_MCP_ALLOW=all,raw). The agent still marks each of those calls as confirmed. For reading and clicking only, run interceptor mcp install afterward.

    The last step is the browser extension. On a Mac, the Interceptor window opens by itself and walks you through it. On Windows, the Chrome Web Store page opens.

    Want your AI agent to do it? Ask it to run the same command. With no terminal to answer, it takes the defaults: Full and the MCP server with every tool on. A Mac then opens the verified package in Installer for you to type your password.

    Prefer to run each step yourself? On a Mac, the same install with Apple's own tools:

    curl -fLo /tmp/Interceptor.pkg https://updates.hackervalley.media/latest/Interceptor-Full.pkg
    spctl -a -vv -t install /tmp/Interceptor.pkg && sudo installer -pkg /tmp/Interceptor.pkg -target /
    interceptor skills adopt
    

    spctl is Apple's Gatekeeper check. It prints Notarized Developer ID and HACKER VALLEY MEDIA, LLC (TPWBZD35WW), and if the package is not signed and notarized, installer never runs. For the Browser edition, use Interceptor-Browser.pkg. Add interceptor mcp install --allow all,raw to register the MCP server with every tool on.

    Download an installer

    Each link below always gets the newest release. Start with Browser for web tasks, or Full for native apps and the iPhone. Every version is on Releases, and SHA256SUMS-ALL lists each file's SHA-256. The macOS packages are built for Apple silicon. On an Intel Mac, build from source (see Development and contributions).

    PackageDownloadWhat it enables
    macOS BrowserInterceptor-Browser.pkgCLI, daemon, and browser extension files.
    macOS FullInterceptor-Full.pkgBrowser package plus the native Mac bridge and iPhone tooling. The bridge requires macOS 15+.
    macOS Safari add-onInterceptor-Safari.pkgSafari extension, installed after either core package.
    Windows Browserx64 · ARM64Browser automation on Windows 10 22H2+ or Windows 11 (x64); Windows 11 24H2+ (ARM64). Windows guide.
    Windows Fullx64 · ARM64Browser automation plus native app control with interceptor desktop. Windows 10 22H2 x64 or Windows 11 24H2+ (x64/ARM64).
    Linux Browserx64 · ARM64Browser automation and install scripts.
    Linux Fullx64 · ARM64Browser automation plus native app control with interceptor desktop.

    The macOS release binaries target Apple silicon. On Windows and Linux, the Full packages add native app control through interceptor desktop; run interceptor desktop capabilities to see what works on that computer. iPhone setup requires a Mac.

    macOS installation

    1. Install the Browser or Full .pkg. On a first install, the Interceptor window opens: it checks whether the extension is already in your browser, and if not, walks you through adding it from the Chrome Web Store, as an unpacked extension (with a step-by-step guide in the browser), or for Safari. Open it again any time with interceptor diagnose extension --welcome.
    2. In Chrome or Brave, install the Interceptor extension if the window did not already do it. The local runtime and browser extension are both required.
    3. For Safari, also install the Safari .pkg, open /Applications/InterceptorSafari.app once, then enable Interceptor and website access in Safari → Settings → Extensions. Safari requires your approval.
    4. With Full, grant the permissions needed by your task to interceptor-bridge. Run interceptor macos trust --walkthrough for guidance. Accessibility enables native UI control; screen, microphone, and app-automation access are needed for their respective features.

    For an unpacked Chrome/Brave extension, enable Developer Mode on the browser's extensions page and load /Library/Application Support/Interceptor/extension/. Keep one copy per profile. Store and unpacked installations share an extension ID; store updates arrive after store review.

    Windows and Linux

    On Windows, run the installer for your PC (x64 or ARM64), install the browser extension, then open a new terminal. Chrome, Brave, and Edge can use the Chrome Web Store listing; Edge requires allowing extensions from other stores. The Windows guide also covers unpacked extensions, silent installation, updates, and removal.

    On Linux, extract the archive for your machine (x64 or ARM64) and run this from its directory:

    bash scripts/install.sh --browser-only --brave
    # For Chrome, use --chrome instead of --brave.
    ./dist/interceptor open "https://example.com"
    

    Follow the installer's extension-loading instructions. The archive includes compiled binaries, so a separate Bun installation is not needed for this release path.

    For native app control on Linux, the one-command install checks the signed checksum list for you. To do it by hand, download the Full archive with SHA256SUMS, SHA256SUMS.cms, verify-release-manifest.sh and linux-release-apple-root.pem, run bash verify-release-manifest.sh <folder> (it checks every archive the list names, so put all four Linux archives in the folder), then run bash scripts/install.sh --full from your graphical session. On Windows, run the Full installer instead of the Browser one. The desktop guide lists what each OS supports and the optional Linux packages that light up OCR, face detection, and personal data.

    Your first browser task

    With the extension enabled and browser open:

    interceptor open "https://example.com" --group first-task
    interceptor read --group first-task
    interceptor group close first-task
    

    open starts the daemon when needed, opens a managed tab in the background, and returns the page's tree and text. You should see Example Domain. read inspects it again; group close cleans up that task's tabs.

    If several browser contexts are connected, run interceptor contexts and add --context <id> to your browser commands. Safari's ID is safari. interceptor status reports local health but does not start the daemon by itself.

    Connect your agent

    For a shell-capable agent, adopt the bundled skills into detected agent runtimes. The Mac and Windows installers and the Linux archives each bundle the skills for their operating system:

    interceptor skills adopt
    

    For an MCP client, register Interceptor and restart the client. The installer detects Claude Code, Codex, Gemini CLI, Cursor, and Claude Desktop:

    interceptor mcp install
    interceptor mcp status
    

    The MCP server exposes browser, macOS, iOS, read, local, and raw tools, plus discovery resources. Its permissions are configured by the operator. See the MCP guide.

    Browser automation

    Read and operate the web apps you are already signed into. Chrome, Brave, and Safari use Interceptor's extension. Browser-specific limits are described in the browser guide.

    • Pages and forms: read text, HTML, tables, links, frames, and accessibility-style element references. Click, type, select, drag, scroll, and navigate. Native dropdown selection validates exact values or unique labels and rejects invalid options.
    • Rich editors and canvases: inspect supported scene graphs, select objects, navigate slides, and enter text in canvas-rendered editors. Workflows cover Google Docs, Slides, Sheets, Canva, and WebGL viewers; support depends on the app and operation.
    • Network and application state: inspect fetch/XHR, SSE, WebSocket, Beacon, and BroadcastChannel traffic; examine headers, rewrite matching requests, and export captured traffic. Passive inspection uses standard page APIs without attaching a debugger.
    • Files and exports: upload local files to inputs, drop zones, and supported file pickers. Save page-produced Blob, buffer, or blob: URL bytes directly to disk with save, including native exports from supported web apps.
    • Capture and browser data: screenshots, OCR, canvas inspection, cookies, storage, history, bookmarks, downloads, and session management.
    • Multiple tasks: select a browser profile with --context, a tab with --tab, and a task's managed tabs with --group. Use a distinct group for each concurrent worker.
    • Tab cleanup: when no command has touched a managed tab group for 10 minutes, Interceptor closes its idle tabs. It keeps the tab you are looking at, audible tabs, tabs with unsaved form input, and a window's last tab, so the group itself can remain. The extension popup changes the idle time and can delete the whole idle group instead (off by default). Administrators can set both through managed browser policy. interceptor sessions restore <id> reopens a closed page in the background.
    interceptor open "https://example.com" --group browser-task
    interceptor find "Learn more" --group browser-task
    interceptor inspect --group browser-task
    interceptor group close browser-task
    

    To interact, use the current reference returned by read or find: interceptor act <ref> clicks it; interceptor act <ref> "text" enters text. Re-read after navigation or a stale-reference error, and check the resulting state after an action.

    Browser command reference · Rich-editor workflows · Export capture

    macOS automation

    Desktop automation for native Mac apps, windows, menus, and dialogs, including supported background workflows. The Full package provides a Swift bridge with Accessibility, capture, input, and Apple framework integrations.

    interceptor macos trust
    interceptor macos tree --app "Finder"
    interceptor macos windows --app "Finder"
    

    These commands inspect Finder without activating it. Use returned element references with macos act, click, or type; use macos open "Finder" --activate when you want to bring it forward.

    AreaCapabilities
    App controlAccessibility trees, text and values, clicks, typing, keyboard input, scrolling, dragging, menus, app lifecycle, and window placement.
    Capture and perceptionCovered/minimized-window screenshots, screen streaming, OCR and vision over a window or a saved image file (including an iPhone screenshot), system/microphone audio, speech recognition, sound classification, and language analysis.
    Files and system workSpotlight search, file reads/writes/watchers, clipboard, URL fetching, OS logs, AppleScript/JXA, JavaScriptCore scripts, and Apple Events.
    DocumentsPDF text, forms, annotations, merge/split operations, data detection, translation, and thumbnails.
    Personal appsCalendar, reminders, contacts, photos, location, music, maps, sharing, and notifications through the corresponding system frameworks and permissions.
    Visual toolsHTML and SpriteKit overlays, window-anchored HUDs, capture streams, and virtual displays.
    Local computeApple Intelligence on supported macOS 26+ systems, OCI containers, and Linux/macOS VM lifecycle and guest tools. See the guides for runtime, model, and guest prerequisites.

    Mac command reference · Background behavior · System and media tools · Documents · Personal data · Overlays · VMs

    Windows and Linux automation

    Drive native apps on Windows and Linux with the same commands as on the Mac. The Full package adds interceptor desktop, which takes the same verbs, flags and JSON replies as interceptor macos. Input goes to the target window in the background, without bringing it forward or moving your cursor. Not every operation exists on every system, so check first: capabilities says whether each one works on this computer, and why not when it doesn't.

    interceptor desktop capabilities
    interceptor desktop windows --app "Notepad"
    interceptor desktop tree --app "Notepad"
    
    AreaCapabilities
    App controlAccessibility trees, element search, values and text. Clicks, typing, keys, scrolling, dragging, menus and actions sent to a background window. List, open, resize, and move apps and windows.
    Capture and perceptionScreenshots, screen capture and streaming with recording, OCR, face, hand and body detection, image classification, speech recognition, and sound classification.
    Local AIPrompts, translation, entity and sentiment analysis, and data detection with Gemma 4 E2B, downloaded once on first use (2.8 GB) and run on your computer by the bundled llama.cpp server.
    Files and system workFiles, thumbnails, clipboard, URL fetching, PDF, logs, JavaScript scripts, monitor and replay, and overlays.
    Personal dataContacts, calendar, reminders, notifications, and sharing.
    Secrets and updatesVault secrets typed by name into apps, plus sudo on Linux. Updates ask first, like Sparkle on a Mac: you see the release notes and click Install Update.

    Windows

    Browser-only supports Windows 10 22H2+ and Windows 11 on x64; ARM64 requires Windows 11 24H2+. Full supports Windows 10 22H2 x64 or Windows 11 24H2+ (x64/ARM64); it does not support Windows 11 builds 22000–26099. The Full installer is signed by Hacker Valley Media LLC and installs for your user only, with no administrator prompt. Desktop commands run in your signed-in desktop session; one started over SSH is refused. OCR, face detection and speech recognition use the engines Windows ships. The signed Full install/upgrade/uninstall lifecycle has not yet been tested on Windows 10. Windows guide

    Linux

    Tested on Arch Linux ARM64 with Hyprland on Wayland. Run commands from your own graphical session; a plain SSH shell is refused. OCR, face detection, language detection, and contacts and calendar each need one optional distribution package, and capabilities names the package when it is missing. Package list

    Desktop guide · Desktop skill

    iPhone and iOS automation

    Drive apps on a physical iPhone and inspect more than its screen. Interceptor's own on-device XCUITest runner handles UI work; additional interfaces expose developer and device services.

    Setup requires an owned, unlocked iPhone in Developer Mode, pairing with your Mac, a Full installation, and Xcode signed into an Apple ID (a free personal team works; its signing lasts 7 days and Interceptor renews it). Connect by USB for initial pairing. Wi-Fi operation is available once paired, with network reachability between the phone and Mac. Away from your Mac, including on cellular, open InterceptorRunner on the phone and it connects back over Tailscale.

    interceptor ios discover
    interceptor ios setup
    interceptor ios tree
    

    setup builds, signs, installs, and launches the runner. Complete any on-device XCTest authorization prompt yourself, grant Local Network access when needed, and keep the phone unlocked and awake during automation. This operates the phone's foreground UI. It does not provide the desktop's background-use guarantee.

    AreaCapabilities
    App interactionRef-tagged element trees, find/inspect, taps, text, scrolling, dragging, long presses, multi-finger gestures, hardware buttons, screenshots, a continuous frame stream over Wi-Fi, and app launch/activate/terminate. Taps, drags, swipes, and gestures also take screen coordinates, for games and canvas apps with no element tree.
    On-device scriptsios eval runs JavaScript inside the runner, combining UI reads, decisions, and actions in one request.
    Developer telemetryProcess lists, CPU/memory and GPU sampling, app launch with arguments, and location simulation through supported device services.
    Web contentios web inspects exposed Safari and WKWebView targets: page structure, JavaScript, console, and network activity.
    Device inspectionLogs, diagnostics, crash reports, profiles, and supported media or app-container file access. Availability depends on iOS, pairing, and service permissions.

    Use --on <alias> to select a phone when several are configured. For setup, exact verbs, service limits, and connection recovery, see the iPhone guide and command reference.

    Record and reuse workflows

    Teach a browser workflow by doing it once while Interceptor records clicks, inputs, navigation, DOM changes, and correlated traffic. Export the session as a timeline or a replay plan:

    # Start with an open Interceptor-managed browser tab.
    interceptor monitor start --instruction "Search the catalog and compare two items"
    # Perform the workflow.
    interceptor monitor stop
    # Use the session ID returned above:
    interceptor monitor export <session-id> --plan
    

    Native Mac recording uses interceptor macos monitor and the same export <session-id> --plan pattern. Review a generated plan, supply any missing inputs, and check the result when replaying it.

    For longer browser jobs, monitor task stores checkpoints, target context, lessons, and verification checks. Resume a task across agent sessions; task complete runs its checks and marks it complete only when they all return true.

    Browser recording · Mac recording · Durable task state

    How it compares

    As of 2026-10-22, from each project's own documentation (sources below the table). Corrections are welcome in Discussions.

    ToolBrowsers it drivesHow it reaches the pageDesktop appsPhysical iPhoneWorks with
    InterceptorChrome, Brave, Edge, Safari, in your own profilesIts extension; Chrome's debugger only when you ask for itmacOS, Windows, LinuxYes, installed appsAny agent that runs commands, or MCP
    Playwright MCP, --extension modeChrome, Edge (its own launched Chromium, Firefox, or WebKit otherwise)An extension that uses Chrome's debugger permissionNoNoAny MCP client
    Chrome DevTools MCP, --autoConnectChrome 144+Chrome DevTools Protocol; you turn on remote debugging and click AllowNoNoAny MCP client
    agent-browserChrome and Chromium (your profile with --profile or --auto-connect); Safari on iOS through AppiumChrome DevTools Protocol; WebDriver for SafariElectron apps, through CDPSafari only, over USB with WebDriverAgentAny agent that runs commands
    Claude in ChromeChrome, Edge, and other Chromium browsersAn extension that declares Chrome's debugger permissionSeparate product: Claude Desktop computer useNo (Claude's iOS pane drives simulators only)Claude, with a direct Anthropic plan
    Cua DriverChrome and Edge windows, Electron apps; Safari and Firefox are not supportedChrome DevTools ProtocolmacOS, Windows, LinuxNoAny agent that runs commands, or MCP
    Tencent BrowserSkillChrome, EdgeAn extension that drives pages through chrome.debuggerNoNoAny agent that runs commands

    Sources: Playwright MCP README (--extension: "Edge/Chrome only") and extension manifest; Chrome auto-connect guide; agent-browser README (iOS and real-device sections); Claude Code Chrome docs, iOS Simulator docs, Claude Desktop docs, and the Claude extension package manifest (version 1.0.102); Cua Driver docs and browser guide; BrowserSkill README and extension config.

    When to use something else

    • Headless runs in CI, or many browsers in the cloud: use Playwright or a cloud browser service. Interceptor drives a desktop browser on your own computer.
    • Chrome only, and one assistant already covers the task: Claude in Chrome or your assistant's own browser extension may be enough.
    • Testing your own iOS app in the Simulator: Xcode's simulator tooling or Claude's iOS Simulator pane fits better. Interceptor is for a physical iPhone.
    • Android phones: Interceptor does not drive Android; mobile-mcp does.
    • Disposable virtual machines or sandboxes for agents: see Cua.

    Go deeper

    These interfaces add access beyond ordinary UI controls. Each has its own setup and support boundaries.

    InterfaceWhat it addsGuide
    Electron / Chromium appsRead DOM, execute JavaScript, inspect traffic, and capture an app's web contents with macos cdp or macos cdp app. Some attachment paths require an app relaunch.App control
    Native runtimeInspect live objects and layers, call selectors, change rendered text, and observe calls with macos runtime. Requires a compatible target and an agent dylib; advanced extensions are separate from the core package.Runtime setup and commands
    ResearchA browser-based investigation workflow with query planning, saved sources, corroboration, and an evidence ledger. Start with interceptor research or the research skill.Research skill
    ExtensionsAdd operator-supplied bridge domains, commands, runtime agents, and skills. Inspect installed extensions with interceptor extensions list.Extension authoring

    The default browser path and passive capture do not require CDP. Electron control uses CDP where appropriate, and optional browser debugger commands are available separately.

    Permissions and data

    Interceptor runs locally and hands results to the agent or script you choose. That agent may send content to its model provider. Interceptor's browser extension has no publisher analytics; see the privacy policy for its access, passive page buffers, and storage behavior.

    • Real access: commands act in your accounts and apps. Browser commands normally target managed tabs, but the extension's permissions and local capture hooks are broader than that task boundary.
    • Credentials by name: the macOS keychain-backed vault can deliver a secret to an allowed target with --secret; supported Chromium saved logins can also be filled by host. Standard browser reads mask password and credential-marked fields. This is not blanket redaction of screenshots, scene reads, eval, or network data.
    • MCP permissions: reads and UI mutations are enabled by default. Destructive and arbitrary-code execution tiers require operator opt-in and confirmation. These gates belong to MCP; the direct CLI follows its own command contracts.
    • Focus: default browser and Mac actions preserve your working context. Browser --os input requires a focused target; browser pixel-screenshot fallback may briefly borrow focus. Use --no-fallback when that is unacceptable.

    Permission guide · Credential delivery · MCP controls

    Documentation

    Start with the browser guide, Mac guide, or iPhone guide. For implementation details, read Architecture; for agent operating rules, read AGENTS.md.

    interceptor help                  # Capability overview for your installation
    interceptor help <command>        # One command's usage and options
    interceptor help --all            # Full command reference
    interceptor manifest              # Machine-readable command contracts
    interceptor diagnose              # Runtime and extension diagnostics
    

    Updates and troubleshooting

    On a Full Mac installation, interceptor update checks for an update and interceptor update status reports progress. Windows and Linux Full installs update the way Sparkle updates a Mac: once a day the native provider checks the signed feed on updates.hackervalley.media, and a newer release opens Interceptor's update window with its release notes and Skip This Version, Remind Me Later, and Install Update. Nothing downloads or installs until you click. The installer is checked against the signed feed (plus its Authenticode signature on Windows), then Install and Relaunch installs it. interceptor update checks now and opens the window when there is an update; interceptor update status shows what happened. Set INTERCEPTOR_AUTO_UPDATE=off in the provider's login environment to stop the daily checks. Browser-only users can run a newer installer; interceptor upgrade --full adds Mac native capabilities.

    If no browser context connects, check that both the runtime and extension are installed and enabled. interceptor diagnose distinguishes store and unpacked versions. If Interceptor disappears every time the browser restarts, run interceptor diagnose extension. It finds a profile that loaded the unpacked copy before 1.0.1 (an entry for the old extension ID blocks the folder), a load from scripts/install.sh that lasts one session, and two copies running at once. --fix repairs the first by restarting Brave, Vivaldi or Chromium on macOS; everything else gets exact steps. Installs and updates run the same check and ask before touching a browser. On macOS 27, an app needs your permission to read Chrome, Brave and Edge settings, so the check runs inside the bridge: in System Settings > Privacy & Security > Files & Folders, turn on each browser under interceptor-bridge, or give interceptor-bridge Full Disk Access. On a Mac that had Interceptor before 1.0.1, the installer asks and checks as soon as access is on. interceptor reload --context <id> reloads an unpacked extension; a store copy remains subject to store publication. For missing native permissions, use interceptor macos trust --walkthrough.

    macOS package removal: sudo bash "/Library/Application Support/Interceptor/uninstall.sh". Add --bridge-only to remove native Mac support while retaining Browser.

    Development and contributions

    The CLI, daemon, and browser extension use TypeScript and Bun. The native Mac bridge and iPhone runner use Swift. A local daemon routes commands to the selected browser, bridge, app runtime, or device.

    For a source install, use Bun and an installed Chrome or Brave browser. The default build on macOS also builds the native bridge and requires macOS 15+ and a Swift 6.2 toolchain. Source builds work on Apple silicon and Intel Macs. The interceptor macos vm commands require Apple silicon.

    git clone https://github.com/Hacker-Valley-Media/Interceptor.git
    cd Interceptor
    bun install
    bun run build
    bash scripts/install.sh --browser-only --brave
    # On macOS, use --full instead of --browser-only for native capabilities.
    ./dist/interceptor open "https://example.com"
    

    Enable Developer Mode in the selected browser profile before loading an unpacked extension. Branded Chrome requires manually loading extension/dist/ from its extensions page. The installer can relaunch Brave and asks before closing a running instance. Windows source installs use scripts/install.ps1; see the Windows guide.

    For code changes, run the checks appropriate to the affected surface:

    bun run typecheck
    bun test
    bun run build
    

    Report a bug with the version, OS/browser or device, command, expected result, and relevant redacted output. Contributions to code, reproducible workflows, and documentation are welcome.

    License and credits

    Interceptor is licensed under Elastic License 2.0. See commercial terms.

    If Interceptor saves you time, a star on this repo helps other people find it.

    Created by Ron Eddings. Thanks to Pedram Amini for early feedback and Maestro, Daniel Miessler for the name and PAI, Klaus Agnoletti for Edge/Vivaldi installer support, and Alex Tabisz for Linux support.