Brosdk Assistant is a local-first Chrome and Edge side-panel assistant backed by a Rust Native Messaging host. It can answer questions about the current page, use browser tools without CDP, connect to a generic MCP server, and work inside an explicitly selected local workspace.
- Windows 10 or Windows 11, x64
- A current Chrome or Microsoft Edge installation
- An API key for an OpenAI-compatible Chat Completions provider
- Download
brosdk-assistant-v0.2.0-windows.zipfrom the GitHub Release. The standalone extension ZIP is intended for store submission and extension development, not direct Windows installation. - Extract the Windows package to any temporary directory.
- Open PowerShell in the extracted package directory and run:
powershell -ExecutionPolicy Bypass -File .\native-host\scripts\install-windows.ps1- On first installation, the script copies the extension and native host to:
%LOCALAPPDATA%\BrosdkAssistant
- The script displays the stable extension directory. Open
chrome://extensionsoredge://extensions, enable Developer mode, click Load unpacked, and select that directory. - Copy the extension ID from the browser and paste it into the waiting PowerShell prompt.
- Reload the extension, open its options page, and configure the model.
The extension ID is saved for future upgrades. The installer registers only
Chrome by default. Use -Browsers Chrome,Edge when both browsers should use the
same installation.
Open the extension options page and set:
- API type: OpenAI API
- Base URL: the provider's OpenAI-compatible API base URL
- API key: your provider API key
- Model name: a model supported by that provider
- Browser tools: Chrome Extension, MCP Server, or Off
Chrome Extension is the default and does not require CDP or an MCP server.
Choose MCP Server only when a compatible Streamable HTTP MCP endpoint is
already running.
Settings are owned by the native host and stored at:
%APPDATA%\BrosdkAssistant\settings.json
The API key is currently stored in that settings file. Restrict access to your Windows account and see PRIVACY.md for the data-flow summary.
- Open the assistant side panel.
- Confirm the status reports that the native host is connected.
- In Chat Mode, ask:
Summarize this page. - Switch to Agent Mode before requesting navigation, clicks, typing, or local file changes. Sensitive actions require an explicit approval in the side panel before the native host executes them.
- Download and extract the new Windows package.
- Close Chrome and Edge.
- Run
install-windows.ps1from the new package. - Reopen the browser and reload the extension.
The installer updates files under the stable LocalAppData directory and reuses the saved extension ID and browser registrations.
Upgrading from v0.1.0 is a one-time migration: the new installer has no saved installation state, so follow the first-install prompt and load the displayed stable extension directory. After v0.2.0 is working, remove the old unpacked copy from the browser. Existing native-host settings remain available.
Close Chrome and Edge, then run:
powershell -ExecutionPolicy Bypass -File "$env:LOCALAPPDATA\BrosdkAssistant\uninstall-windows.ps1"This removes the native-host registrations and installed application files but
preserves settings. Add -RemoveSettings to also delete settings and the default
workspace. Finally remove Brosdk Assistant from the browser extensions page.
- Reload the extension after running the installer.
- Confirm the extension ID pasted into the installer matches the currently loaded extension.
- Run the installer again if the extension was removed and loaded from another directory.
- Open the options page; it reports whether the native host is connected and shows the underlying error.
Open the options page, select Chrome Extension, save, and verify the success
message. MCP is optional and should not be contacted in this mode.
Chrome blocks script injection on internal pages such as chrome:// pages, the
Chrome Web Store, and some protected browser surfaces. Open a normal HTTP or
HTTPS page and retry.
The native host pauses before browser mutations, workspace writes, and MCP tools that are not explicitly marked read-only. Approve or deny the action in the side panel. Closing the side panel leaves the request pending until it times out.
- Chat Mode: exposes read-only browser, workspace, and MCP capabilities.
- Agent Mode: exposes action tools, with sensitive operations gated by user confirmation.
- Chrome Extension: reads pages, lists tabs, creates structured snapshots, extracts links, navigates, clicks, and types through Chrome APIs.
- MCP Server: discovers tools from a generic Streamable HTTP MCP endpoint. Unknown tools are hidden in Chat Mode unless standard annotations mark them read-only without a contradictory destructive hint.
- Off: disables browser tools while model chat and selected-workspace tools remain available.
Each completed answer can expose an information button. Full prompts, tool
schemas, model messages, confirmation decisions, and tool results are fetched
from the native host by run_id only when that panel is opened; old in-memory
details can be evicted.
Workspace tools are exposed only after a workspace is selected. All paths are scoped to that root, and symlink or parent traversal escapes are rejected.
- Windows x64 is the only packaged platform in v0.2.0.
- The extension is installed unpacked and requires Developer mode.
- Anthropic Messages API is not implemented; Anthropic remains unavailable in the options page.
- Conversation state is memory-only and resets when the native host exits.
- Extension snapshots do not fully represent every iframe or shadow root.
- API keys are stored in the native settings file rather than Windows Credential Manager.
extension/- WXT, React, and Chrome MV3 extension codenative-host/- Rust Native Messaging hostscripts/- deterministic E2E and release packaging scriptsdocs/- roadmap and architecture plan
cd native-host
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo test
cargo build --releasecd extension
npm install
npx playwright install chromium
npm run generate:icons
npm run typecheck
npm run test:extension-smoke
npm run buildThe extension smoke test loads a test-mode MV3 build in Playwright Chromium and verifies tab discovery, page reading, snapshots, link extraction, typing, clicking, navigation, stale-ref rejection, controlled-input events, and bounded navigation diagnostics. Its internal test bridge is compiled out of production builds.
The deterministic Native Messaging E2E requires no external credentials:
python scripts\test_native_protocol_e2e.pyThe optional real-provider E2E reads its API key only from the environment:
$env:DEEPSEEK_API_KEY = "<temporary-api-key>"
python scripts\test_deepseek_e2e.py --model <supported-model-name>
Remove-Item Env:DEEPSEEK_API_KEYInstall Playwright Chromium once, then run from the repository root:
python scripts\package_release.py --version 0.2.0The packager runs extension typecheck and smoke tests, builds both components,
runs Rust tests, creates the Windows package and standalone extension ZIP, and
writes SHA-256 checksums to .output/release/.
Licensed under the MIT License.