Gemini Web 供应商靠逆向内部 RPC 与页面令牌实现,可能违反 Google 服务条款且接口随时可能失效;npm run build 只产出 dist/ 的 UI,必须用 npm run package:extension 并加载 artifacts/chrome-extension 才是完整扩展;Gemini Web 仅支持图片附件,PDF/文本文档需改用 Gemini API。

Gemini-Nexus
yeahhe365MIT活跃维护一款浏览器 AI 助手扩展,把 Gemini 网页版、Gemini API 和 OpenAI 兼容接口统一到侧边栏,能读取网页上下文、处理图片、调用工具并通过 MCP 控制浏览器。
Gemini Nexus 是一款面向浏览器场景的 AI 助手扩展,集成 Gemini Web、Gemini API 与 OpenAI 兼容接口,支持网页上下文、图像处理、工具调用和 MCP 浏览器控制。
npm install
npm run package:extensionREADME 未说明硬件要求;这是 Chrome MV3 扩展,在浏览器内运行,模型推理在云端完成。
给浏览器加一层原生 AI 的 Chrome 扩展,聚合多家模型并支持网页上下文与浏览器控制
一款浏览器 AI 助手扩展,把 Gemini 网页版、Gemini API 和 OpenAI 兼容接口统一到侧边栏,能读取网页上下文、处理图片、调用工具并通过 MCP 控制浏览器。
核心能力
- 聚合 Gemini Web、Gemini API、OpenAI 兼容及多家第三方 API 供应商
- 注入浮动工具栏,对选中文本翻译、总结、解释、修语法并回填表单
- 基于 Chrome DevTools Protocol 执行浏览器控制任务并用原生标签组标记
- 支持外部 MCP 工具,按 serverId__toolName 路由到多服务器
- 用摘要压缩与近期轮次裁剪管理上下文,避免超出模型上限
容易踩的坑
- v5.5.0最新正式版2026-10-14 · 2026-10-14 09:55 UTC
Models
- Gemini 4 Argon 适配:全面上线 Google 官方最新首选模型 Gemini 4 Argon(
95a4c0abcba24364,RPC 模式mode: 8),用于处理复杂任务与深度推理,支持快速(低点)与深度(高点)思考等级切换。 - Web 逆向渠道别名补齐:新增
gemini-4-argon、gemini-4、4-argon等别名映射;将最新 Flash-Lite 探测 hash8c46e95b1a07cecc纳入别名解析保证平滑兼容。
Fixed
- 图片工具黑名单与水印开关不再丢失:
view.getFormData()漏传这两个字段,导致黑名单输入重载即失效,且每次点击保存都会把「移除生成图水印」静默重置为开启。 - 独立设置页恢复加载 GitHub 元数据:原先调用重命名后已不存在的
fetchGithubData,被可选链静默吞掉,star 数与更新状态从不刷新。 - TTS 失败提示本地化:错误文案原为硬编码中文,英文界面用户会收到中文报错;现统一走工具栏词典(中/英双语)。
- 页面快照能力标记重复:快照格式化器对
editable/modal/required/readonly/multiselectable会输出两遍同一能力 token。 - Provider 错误信息统一抽取:官方 API 渠道此前直接抛出原始响应体,现与 Anthropic、OpenAI 兼容渠道一致解析
{error:{message}}。
Security
downloadText对来自 sandbox 消息的文件名执行与downloadFile同级的净化(此前仅后者处理该不可信输入)。
Removed
- 清理可读性审计遗留死代码:未使用的工具栏图标、孤儿 i18n key、仅供本模块使用的导出、签名相同的纯转发包装(含
shared/media/youtube.js空壳,其测试改为直接覆盖全局实现,覆盖率保留)。 - 删除与代码不符的注释:payload 索引写错、把 CDP 控制管理器标注为 MCP、承诺但未绑定的
pointerup监听、声称「为测试保留」却无任何测试读取的门面。 - 移除恒真分支、被包含的正则分支、无调用方传入的参数,以及不可达的兜底抛出。
- 移除样式表与 CSS-in-JS 中的装饰性分节横幅;原有 hygiene 规则只覆盖
//形式,现已扩展到/* */并补上测试。
Chore
- 版本号升级至
5.5.0。
Full Changelog: https://github.com/yeahhe365/Gemini-Nexus/compare/v5.3.0...v5.5.0
- Gemini 4 Argon 适配:全面上线 Google 官方最新首选模型 Gemini 4 Argon(
- v5.3.02026-09-03 · 2026-09-03 03:37 UTC
查看更新说明
Models
- Gemini 3.8 Flash 适配:全面上线 Google 官方最新首选模型 Gemini 3.8 Flash。
- Web 逆向免 Key 渠道:默认 Flash 模型标签升级为
3.8 Flash(哈希56fdd199312815e2),新增gemini-3.8-flash别名映射,向后兼容gemini-3.7-flash。 - 官方 API 渠道:默认模型更新为
gemini-3.8-flash,默认模型列表更新为gemini-3.8-flash, gemini-3.5-flash-lite, gemini-3.1-pro-preview。
- Web 逆向免 Key 渠道:默认 Flash 模型标签升级为
UI & Style
- 复刻 AMC-WebUI 发送按钮:
- 采用紧凑尺寸
36px × 36px、全圆角border-radius: 9999px与translateY(-2px)微调居中。 - 浅色模式背景
#3964fe(悬停#3358e0),深色模式背景#679efe(悬停#5a8de0)。 - 空输入状态保持底色并启用
40%透明度(opacity: 0.4)。 - 生成/停止状态采用实心危险红(浅色
#dc2626/ 深色#7f1d1d),移除多余外圈旋转动画。 - 图标全面替换为 AMC 16×16 向上箭头(发送)与实心圆角方块(停止)。
- 采用紧凑尺寸
- 界面设计语言统一与重构:
- 顶栏模型选择器改为药丸型(Pill)设计,优化下拉选择器宽度计算与响应式适配。
- 历史会话恢复时抑制重复淡入动效,解决批量还原时的界面闪烁。
- 修复动作卡片、Markdown 表格样式与 Token 变量层。
Chore
- 版本号升级至
5.3.0。
Full Changelog: https://github.com/yeahhe365/Gemini-Nexus/compare/v5.2.4...v5.3.0
- Gemini 3.8 Flash 适配:全面上线 Google 官方最新首选模型 Gemini 3.8 Flash。
- v5.2.42026-08-24 · 2026-08-24 04:15 UTC
查看更新说明
Style
- 内容脚本暗色自适应:新增
--gnx-*token 层(styles/core.js),.toolbar/.ask-window/.image-btn全部接通prefers-color-scheme: dark—— 悬浮面板、AI 菜单、markdown 正文/代码块/hljs 高亮在暗色系统下不再是刺眼纯白;浅色下工具条由永久黑改为白底描边,与页面融合。 - 统一三代蓝:侧栏拖拽高亮
var(--accent-color,#1a73e8)→var(--primary),面板芯片#e8f0fe/#d2e3fc与各处#0b57d0/#0842a0收敛为--gnx-primary/-hover/-chip单一来源。 - 一致性清理:合并
widget.js重复.btn块、删除footer.js重复 border 行、transition: all改具体属性并补 easing、菜单项补:focus-visible焦点环、拖拽把手灰阶入 token、.ai-tool-menu字体栈对齐 toolbar、hljs 增加暗色配色。 - token 化:
--radius-bubble(用户气泡 16px 入册)、--accent-gold(星标金)、空态标题font-weight 650→600(CJK 稳定)、提示字号12.5→13px、消息容器 transition 对齐--ease-standard。
Chore
- 版本号
5.2.3→5.2.4。
Full Changelog: https://github.com/yeahhe365/Gemini-Nexus/compare/v5.2.0...v5.2.4
- 内容脚本暗色自适应:新增
- v5.2.02026-08-22 · 2026-08-22 10:18 UTC
查看更新说明
Models
- Removed Gemini 3.6 Flash (
fbb127bbb056c959) from Web model catalog; default now 3.7 Flash (56fdd199312815e2) withlegacyMode: 2and extended capabilities,DEFAULT_STORED_GEMINI_MODELupdated andDEFAULT_OFFICIAL_MODELSnowgemini-3.7-flash, gemini-3.5-flash-lite, gemini-3.1-pro-preview; removedgemini-3-flash-thinkingalias and its thinking check.
UI
- Aligned toolbar Generate Image icon to Cherry Studio
lucide Image(m21 15-3.086-3.086...). - Aligned Live Artifacts icon to AMC-WebUI
Wand2/WandSparkles(m21.64 3.64...). - Aligned Explain icon to AMC
FileQuestion(M12 17h.01 / M15 2H6... / M9.1 9a3...). - Aligned New Chat icon to AMC/Cherry Studio
IconNewChat(bubble + plusM13 4H6a2...withscale(1.1)). - Added quick hover tooltip for toolbar buttons: custom
data-tooltipappears in 0.12s centered above button, suppressing native delayedtitleviaWidgetView.initTooltips.
Full Changelog: https://github.com/yeahhe365/Gemini-Nexus/compare/v5.1.0...v5.2.0
- Removed Gemini 3.6 Flash (
- v5.1.02026-07-22 · 2026-07-22 14:14 UTC
查看更新说明
Models
- Updated reverse Gemini Web model catalog for the 2026-07-21 GA lineup: default 3.6 Flash (
fbb127bbb056c959), 3.5 Flash-Lite (cf41b0e0dd7d53e5), and 3.1 Pro (e6fa609c3fa255c0). Removed 3.5 Flash and legacy 3.1 Flash-Lite. - Updated Official API defaults to
gemini-3.6-flash,gemini-3.5-flash-lite, andgemini-3.1-pro-preview. Droppedgemini-3-flash/gemini-3-flash-previewaliases.
Removed
- Removed the experimental Browser MCP server surface (
mcp-server/,npm run mcp:http, extensionbrowser_mcpRPC bridge). Side-panel browser control remains internal (ControlManager); external MCP client settings for third-party tools are unchanged.
Full Changelog: https://github.com/yeahhe365/Gemini-Nexus/compare/v5.0.24...v5.1.0
- Updated reverse Gemini Web model catalog for the 2026-07-21 GA lineup: default 3.6 Flash (
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Gemini Nexus
Give your browser a native AI layer
Project Overview
Gemini Nexus gives your browser a native AI layer by combining Gemini Web, the Google Gemini API, OpenAI-compatible APIs, and dedicated third-party API providers in one Chrome extension. It is more than a side panel: the extension includes an injected floating toolbar, image and screenshot input, Chrome DevTools Protocol based browser-control tools, and optional external MCP tools for browser-native AI workflows.
Reverse Engineering & Data Flow Disclosure
Gemini Web Provider: This extension accesses Google Gemini Web (gemini.google.com) by reverse-engineering internal RPC endpoints and extracting authentication tokens (atValue, blValue, f.sid) from the page HTML. These tokens are stored locally and used to mimic browser requests, enabling access without an official API key. This approach likely violates Google's Terms of Service and may be considered unauthorized access. Requests are sent to Google's servers (gemini.google.com, push.clients6.google.com) with your session credentials.
Watermark Removal: For Gemini-generated images, the extension removes embedded watermarks (metadata markers) to enable direct download. This strips attribution/signature from AI-generated content. Users should be aware of copyright implications and Google's policies on generated content usage.
Data Flow: User text, images, and uploaded files are sent to the configured provider's API endpoint. For Gemini Web, data flows to Google servers; for other providers, data flows to their respective endpoints (including user-configured MCP servers). API keys are stored locally in Chrome extension storage and are not transmitted to any third-party beyond the chosen provider.
Use at your own risk: By using the Gemini Web or watermark removal features, you acknowledge potential ToS violations and assume responsibility for any consequences. The extension authors provide these features for research/experimental purposes and disclaim liability for misuse.
Capability Overview
Gemini Nexus currently focuses on these browser AI workflows:
- Switch among Gemini Web, Gemini API, OpenAI Compatible API, OpenAI Official API, DeepSeek API, OpenRouter API, Qwen / DashScope API, Anthropic API, and Zhipu API, with provider-specific
Base URL,API Key, andModel IDs. - Enable Gemini Web temporary chats so Web-provider requests are not added to Gemini Recent chats.
- Use Gemini API Google Search grounding and show web sources in responses.
- Use OpenAI-compatible web search through Responses API
web_searchor Chat Completionsweb_search_options, depending on the current endpoint. - Limit side-panel scope by tab to reduce distraction on pages where the assistant is not needed.
- Re-edit historical user messages and continue from that point; this feature is enabled for API providers only.
- Manage context with summary compression and recent-turn trimming to reduce the risk of exceeding model context limits.
- Mark browser-control tasks with Chrome native tab groups and keep
list_pages/select_pagefocused on the controlled scope. - Open external links in new browser tabs to avoid failed third-party loading inside the side panel.
- Preserve settings as much as possible across extension identity and local upgrade paths.
Provider Comparison
The project includes provider drivers under services/providers and adapts behavior dynamically in code:
| Provider | Entry | Models | Strength | Requirement |
|---|---|---|---|---|
| Web Client | web.js | Current Gemini Web chat modes | No API key; reuses the Gemini web session; optional temporary chats | Keep a Google account signed in |
| Official API | official.js | Gemini 3.8 Flash / 3.5 Flash-Lite | Fast responses with Thinking and Google Search grounding | Google AI Studio key |
| OpenAI Compatible | openai_compatible.js | GPT, Claude, and compatible models | Highly extensible; supports Chat Completions / Responses API and optional web search | Third-party service key |
| OpenAI Official | openai_compatible.js | GPT reasoning/search models | Dedicated Responses API path with reasoning summary and optional web search | OpenAI API key |
| DeepSeek API | openai_compatible.js | DeepSeek chat/reasoning models | Dedicated defaults for DeepSeek Chat Completions and reasoning_content display | DeepSeek API key |
| OpenRouter API | openai_compatible.js | OpenRouter model IDs | Fetches /models, supports provider routing JSON, and sends native reasoning | OpenRouter API key |
| Qwen / DashScope | openai_compatible.js | Qwen text and VL models | Dedicated DashScope compatible endpoint with enable_thinking and VL image input | DashScope API key |
| Anthropic API | anthropic.js | Claude models | Native Messages API adapter with image input and extended-thinking stream display | Anthropic API key |
| Zhipu API | openai_compatible.js | GLM models | Dedicated GLM Chat Completions profile with native thinking toggle payloads | Zhipu API key |
Browser Control
Built on background/control/ and Chrome DevTools Protocol, Gemini Nexus lets AI perform agentic browser tasks through a local tool loop:
| Category | Core commands | Implementation |
|---|---|---|
| Navigation | navigate_page, new_page, close_page, list_pages, select_page | Manages page lifecycle through chrome.tabs |
| Interaction | click, hover, fill, fill_form, press_key, type_text | Uses Accessibility Tree UIDs for precise actions, hover, batch form fill, shortcuts, and input |
| Observation | take_snapshot, wait_for, handle_dialog | Extracts reusable accessibility-tree UIDs, waits for target text, and handles blocking dialogs |
| Script execution | evaluate_script | Runs custom JavaScript in the page context |
After browser control is enabled, Gemini Nexus locks onto a target tab and uses a Chrome native tab group to show the current task title. select_page switches inside the controlled tab group by default; regular new_page tabs join the group, while background: true opens a separate popup window to reduce focus interruption.
External MCP Tools
Gemini Nexus can connect to one or more external MCP servers through SSE, streamable HTTP, or WebSocket, then expose their tools to the existing tool loop.
Recommended Setup: Local Proxy for stdio Servers
Chrome extensions cannot directly run stdio-based MCP servers, so the recommended setup is to run a local proxy, such as MCP SuperAssistant Proxy. Configure your MCP servers, including stdio servers, in the proxy, then connect Gemini Nexus to the proxy endpoint.
Common proxy endpoints:
- SSE:
http://127.0.0.1:3006/sse - Streamable HTTP:
http://127.0.0.1:3006/mcp - WebSocket:
ws://127.0.0.1:3006/mcp
Setup Steps
-
Start your MCP proxy and configure MCP servers inside it.
-
In Settings -> Connection -> External MCP Tools:
- Enable External MCP Tools.
- Add or select a server entry. Active Server means the entry currently being edited; conversations use all enabled servers.
- Choose the transport and set the server URL: SSE, streamable HTTP, or WebSocket.
- Use SSE or streamable HTTP if you need custom request headers; browser-extension WebSocket transport does not support custom headers.
- Click Test Connection and Refresh Tools.
-
Optional, and recommended when many tools exist: set Expose Tools to Selected tools only, then enable only the tools you want the model to see or use.
-
Start a normal conversation. When the model needs tools, it outputs a JSON tool block like the one below. In multi-server mode, the model may use unique tool names in the
serverId__toolNameformat to route calls to a specific server:{ "tool": "tool_name", "args": { "key": "value" } }
Key Features
- Smart side panel: Built on the
sidePanelAPI for fast conversation access and full-text history search. - Selection toolbar: Injected content scripts let selected text be translated, summarized, explained, grammar-fixed, or inserted back into forms.
- Image and screenshot input:
- OCR and screenshot translation: Canvas cropping extracts and translates selected image regions.
- Screen or window capture: The side panel can use
display-captureto select another screen or app window as image input. - Floating image detection: Detects page images and shows a floating AI analysis button.
- Generated image display: Shows fetched Gemini images without local pixel rewriting.
- Gemini Web currently supports image attachments through the reverse provider. Use Gemini API for PDF/text/document attachments.
- Safe rendering: Markdown, LaTeX, and code blocks render inside the isolated
sandboxenvironment.
Gemini Web Maintenance
Gemini Web is reverse-engineered and accesses Google's internal APIs without official authorization, which likely violates Google's Terms of Service. The contract can change without notice and is documented in docs/gemini-web-reverse.md, including the verified tokens, RPC paths, upload flow, model hashes, temporary-chat markers, unsupported image-preview model routes, and the manual drift check command.
Quick Start
Repository Structure
The repository root is the runnable Chrome extension project root. package.json, manifest.json, Vite config, source code, tests, and packaging scripts all live at the root. Cross-runtime shared utilities live in shared/ and are grouped by capability under shared/attachments/, shared/config/, shared/dom/, shared/logging/, shared/mcp/, shared/media/, shared/messaging/, shared/models/, shared/settings/, shared/text/, shared/ui/, and shared/utils/; the project no longer keeps top-level shared/*.js compatibility entry points. Directory aggregation entry points consistently use an index.js inside the directory to avoid sibling foo.js and foo/ modules. Runtime entry points remain at each runtime root, such as background/index.js, content/index.js, sandbox/index.js, sidepanel/index.js, and the standalone settings page settings/index.js. Runtime code uses snake_case filenames, while repository tooling scripts and workflow files may use kebab-case.
Install from Release
- Download the latest ZIP from Releases and unzip it.
- Open
chrome://extensions/in Chrome and enable Developer mode in the top-right corner. - Click Load unpacked and select the extracted folder.
Build and Package from Source
npm install
npm run package:extension
After packaging, choose artifacts/chrome-extension when using Chrome Load unpacked. For development, you can also load the repository root directly, but releases and manual installs should use the packaged directory. npm run build only creates the Vite UI output in dist/; it is not a complete extension directory. The package step merges multiple content scripts into a single content/index.js in manifest.json order and rewrites the packaged manifest, avoiding reliance on a long manual script list in release artifacts.
Publish to Chrome Web Store
Chrome Web Store credentials should stay on your local machine and must not be committed:
cp .env.chrome-webstore.example .env.chrome-webstore
Edit .env.chrome-webstore and fill in CHROME_WEBSTORE_PUBLISHER_ID, CHROME_WEBSTORE_ITEM_ID, and CHROME_WEBSTORE_ACCESS_TOKEN with the https://www.googleapis.com/auth/chromewebstore scope. After preparing the ZIP, run:
npm run publish:chrome-webstore
The script uploads the ZIP pointed to by CHROME_WEBSTORE_ZIP_PATH through Chrome Web Store API v2, then submits it for review.
Tech Stack
- Build tools: Vite + TypeScript
- Architecture protocols: Chrome MV3 + Chrome DevTools Protocol + local/external MCP tool calls
- Core libraries: Marked.js, KaTeX, Highlight.js, Fuse.js
License
This project is open sourced under the MIT License.
Acknowledgements
This project has been shared in the LINUX DO community. Thanks to the community for support and feedback.