需 Node.js 24 LTS 与 pnpm 10,版本不符会构建失败;构建后要在 chrome://extensions 开启开发者模式并加载 dist 目录;本地模型需配置 OLLAMA_ORIGINS 或开启 LM Studio 的 CORS,且模型必须支持 tool calling。
nanobrowser
nanobrowserApache-2.0活跃维护开源的浏览器 AI 智能体,直接接管你已登录的真实浏览器自动完成日常网页任务,免去重复点击和填表。
Open-source AI agent for web automation. Use your real, logged-in browser to automate daily tasks.
git clone https://github.com/nanobrowser/nanobrowser.git
cd nanobrowser
corepack enable
pnpm install
pnpm buildREADME 未说明显存或 GPU 要求;本地模型建议上下文窗口 16k tokens 以上,推荐 Qwen3.8 27B,简单任务用本地模型即可。
开源浏览器 AI 代理,在你已登录的真实浏览器里自动完成网页任务
开源的浏览器 AI 智能体,直接接管你已登录的真实浏览器自动完成日常网页任务,免去重复点击和填表。
核心能力
- 侧边栏用自然语言下任务,代理读页面、点击、输入并跨标签页操作
- 每个任务独立标签组,可并行跑多个任务同时继续浏览
- Ask/Auto 双模式,提交、发送、删除、上传前可要求确认
- 支持云端多家厂商与 Ollama、LM Studio 等本地模型,按对话切换
- 长任务自动摘要早期步骤,聊天记录可回退重跑或导出 Markdown
容易踩的坑
- v0.3.0Nanobrowser v0.3.0最新正式版2026-10-15 · 2026-10-15 15:44 UTC
Nanobrowser v0.3.0
Nanobrowser 0.3 is rebuilt from the ground up: one agent in the side panel, on top of a new browser control layer that clicks the right element, acts like a real user and reports what really happened.
What's new
- CDP. The new browser control is rebuilt with chrome.debugger API, it uses CDP to interact with elements in web pages. It's more stable than the previous injected scripts solution.
- One agent, one chat per tab. The old planner and navigator are replaced by a single agent. Several tasks can run side by side, each in its own tab group.
- You decide what it may do. Ask mode (default) asks before the agent submits, sends, deletes or uploads; Auto mode goes ahead. Payments, passwords, codes and access grants are always handed to you. Set any site to Allow, Ask or Block.
- More reliable actions. Each element has an ID tied to that exact element, clicks and typing are real browser input, and every action is sent once and reports whether the page responded.
- Any model with tool calling. Anthropic, OpenAI, Gemini, OpenRouter, Grok, DeepSeek, Mistral, any OpenAI-compatible endpoint, Ollama and LM Studio. Pick the model and reasoning effort per chat; Test models in Settings checks which ones work.
- Attachments and uploads. Attach images, text files or a screenshot of the tab; the agent can upload your files to a page and save results (CSV, Markdown) to Downloads.
- Shortcuts, voice and custom instructions. Start saved prompts with
/, speak with OpenAI's or Gemini's voice model, and tell the agent what to keep in mind in every chat. - Long tasks and history. Long chats are summed up automatically, with your own messages kept in full. Edit and rerun any message, or export a chat as Markdown.
- English, Simplified Chinese and Traditional Chinese, in light or dark.
Updating from 0.2
Your providers and API keys, default model, saved prompts and blocked sites move to 0.3. Earlier conversations stay in your browser until you export or delete them in Settings → Data.
Privacy
A daily count of users and anonymous usage counts are sent with no ID, and never include your pages, sites, messages or keys. Both can be turned off in Settings → Data. See PRIVACY.md.
Full Changelog: https://github.com/nanobrowser/nanobrowser/compare/v0.2.0...v0.3.0
- v0.2.02026-10-02 · 2026-10-02 13:51 UTC
查看更新说明
What's new
- Built with WXT: the extension is now a single package built with WXT instead of a multi-package monorepo. Development mode reloads pages instantly and reloads the extension automatically.
- New AI engine: LLM calls now run on the Vercel AI SDK instead of LangChain. Structured output is more reliable with Anthropic, Gemini 3, DeepSeek and GPT-6 models.
- Reasoning effort: models that support it now use a reasoning effort setting instead of temperature and top P.
- Updated default models for OpenAI, Anthropic, Gemini, Grok, DeepSeek and Ollama.
- Ollama now connects through its OpenAI-compatible API. Existing Ollama settings keep working.
Breaking changes
- Groq, Cerebras and Llama API providers were removed. Their saved settings and API keys are deleted when you upgrade. To keep using one, add it again as a custom OpenAI-compatible provider, and choose a new model for any agent that used it.
- The Minimal reasoning effort option was removed. If you had saved Minimal, it is now treated as Low.
For developers
- Building the extension requires Node.js 24 LTS and pnpm 10.
- v0.1.132025-11-22 · 2025-11-22 13:52 UTC
查看更新说明
What's Changed
- feat(i18n): add Portuguese (Brazil) language support #214 by @Marcos934 in https://github.com/nanobrowser/nanobrowser/pull/217 and @alexchenzl in https://github.com/nanobrowser/nanobrowser/pull/220
- feat: Replace emoji icons with professional React icons in settings by @Darkmintis in https://github.com/nanobrowser/nanobrowser/pull/222
- Enhance coding assistant guidance and discoverability by @PeterDaveHello in https://github.com/nanobrowser/nanobrowser/pull/225
- fix: an infinite loop affecting live nodes and sandboxed iframes (e.g., on amazon.com) by @alexchenzl in https://github.com/nanobrowser/nanobrowser/pull/243
- fix: upgrade getClickableElements to an iterative implementation to avoid recursion issues by @alexchenzl in https://github.com/nanobrowser/nanobrowser/pull/243
- feat: Add text file attachment support to chat interface by @cceasy in https://github.com/nanobrowser/nanobrowser/pull/242
- fix: Handle Gemini markdown-wrapped JSON in structured output by @benzntech in https://github.com/nanobrowser/nanobrowser/pull/264
- fix: Handle Gemini models via OpenAI-compatible API endpoints by @benzntech in https://github.com/nanobrowser/nanobrowser/pull/268
- fix: typo— "not exists" by @akshar-dave in https://github.com/nanobrowser/nanobrowser/pull/265
- fix: manually parsr json from model output as a fallback by @alexchenzl in https://github.com/nanobrowser/nanobrowser/pull/276
- upgrade dependencies and providers by @alexchenzl in https://github.com/nanobrowser/nanobrowser/pull/255
- upgrade default Gemini and Grok models by @alexchenzl in https://github.com/nanobrowser/nanobrowser/pull/277
- enhancement: Added a strict sender check for the side-panel connection port to prevent unauthorized connections by @alexchenzl in https://github.com/nanobrowser/nanobrowser/pull/278
New Contributors
- @Marcos934 made their first contribution in https://github.com/nanobrowser/nanobrowser/pull/217
- @Darkmintis made their first contribution in https://github.com/nanobrowser/nanobrowser/pull/222
- @cceasy made their first contribution in https://github.com/nanobrowser/nanobrowser/pull/242
- @benzntech made their first contribution in https://github.com/nanobrowser/nanobrowser/pull/264
- @akshar-dave made their first contribution in https://github.com/nanobrowser/nanobrowser/pull/265
Full Changelog: https://github.com/nanobrowser/nanobrowser/compare/v0.1.12...v0.1.13
- v0.1.122025-09-03 · 2025-09-03 08:21 UTC
查看更新说明
What's Changed
- Add gpt-5-chat-latest non-reasoning model by @PeterDaveHello in https://github.com/nanobrowser/nanobrowser/pull/206
- Fix issue #207: Model parameter persistence in options UI by @alexchenzl in https://github.com/nanobrowser/nanobrowser/pull/208
- Add optional anonymous analytics for future enhancements by @alexchenzl in https://github.com/nanobrowser/nanobrowser/pull/209
- Improve lightweight guardrails and system prompts by @alexchenzl in https://github.com/nanobrowser/nanobrowser/pull/212
- Add sponsor badge and fix some minor bugs by @alexchenzl in https://github.com/nanobrowser/nanobrowser/pull/213
- Remove unnecessary identify call to avoid useless identity events
- Fix inconsistent anonymous id bug
Full Changelog: https://github.com/nanobrowser/nanobrowser/compare/v0.1.9...v0.1.12
- v0.1.11Nanobrowser v0.1.11pre-release2025-09-03 · 2025-09-03 05:27 UTC
查看更新说明
What's Changed
- Fix inconsistent anonymous id bug
Full Changelog: https://github.com/nanobrowser/nanobrowser/compare/v0.1.10...v0.1.11
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
🌐 Nanobrowser
Nanobrowser is an open-source AI agent that works in your own browser. Tell it a task in the side panel; it reads the pages, clicks, types and moves between tabs to get it done, and it asks you before it submits, sends, deletes or uploads anything.
⬇️ Get Nanobrowser from the Chrome Web Store for free
👏 Join the community on Discord | X
❤️ Support the project by sponsoring us. Every contribution helps keep Nanobrowser free and open source.
🔥 Why Nanobrowser?
- Free. No subscription and no hidden costs. Use your own API key or a local model, and pay only for what you use.
- Private. Everything runs in your browser. Your keys stay in the browser and go only to their own provider. Pages go only to the model you choose. A daily count of users and usage counts are sent without an ID and never include your pages or sites; see PRIVACY.md.
- Flexible LLM. Choose from many cloud providers, or run a model on your own computer, and switch whenever you like. No lock-in.
- Open source. All the code is public, so you can see exactly how it works and change it to fit your needs.
📊 Key Features
- Chat in the side panel: say what you need in plain words. The agent reads pages, clicks, types and moves between tabs to get it done.
- Several tasks at once: each task works in its own tab group, so you can run a few side by side and keep browsing.
- You choose when it asks: pick Ask or Auto mode, and set rules for each site (see below).
- Your choice of model: cloud or local. Pick the model, and how hard it thinks, for each chat.
- Images and files: attach images, text files or a screenshot of the current tab. The agent can also upload your files to a page.
- Save results: the agent can save its work, like a CSV table or a Markdown report, to your Downloads folder. Chrome asks you the first time.
- Shortcuts: save a prompt you use often and start it by typing
/. You can give it a start page and a model. - Voice input: speak instead of typing, with OpenAI's or Gemini's voice model.
- Memory: tell the agent what to keep in mind in every chat, like who you are or how you like your answers.
- Long tasks: when a chat gets long, older steps are summed up automatically so the task can go on. Your own messages are always kept in full.
- Chat history: go back to any chat, edit a message and run it again from there, or export the chat as Markdown.
- Your language and theme: English, Simplified Chinese or Traditional Chinese, in light or dark.
🌐 Browser Support
- Supported: Chrome and Edge.
- Not supported: Firefox, Safari, and other Chromium-based browsers (Opera, Arc, Brave and others). Nanobrowser may work in them, but they are not tested.
🛡️ You decide what the agent may do
| What the agent does | Ask mode (default) | Auto mode |
|---|---|---|
| Read pages, click links, scroll, move between tabs | Goes ahead | Goes ahead |
| Submit, send, delete or upload | Asks you first | Goes ahead |
| Pay, enter a password or code, grant access | Hands the step to you | Hands the step to you |
You can also set a site to Allow (go ahead in both modes), Ask (ask in both modes) or Block (the agent may not use it), in Settings → Permissions.
[!NOTE] You are always in charge.
- The agent may not notice every step that needs you. When it does notice one, your settings always apply, and no AI model can change them.
- The agent reads text on a web page as information, never as orders. This helps against pages that try to trick it (prompt injection), but no protection is perfect.
- So use sites you trust, keep an eye on the agent, and press Stop at any time to take over.
🤖 Models
| Kind | Providers |
|---|---|
| Cloud | Anthropic, OpenAI, Google Gemini, OpenRouter, xAI Grok, DeepSeek, Mistral, and any OpenAI-compatible endpoint |
| Local | Ollama and LM Studio, and other servers (llama.cpp, vLLM and others) through the OpenAI-compatible provider |
- A model must support tool calling. Test models in Settings checks each model and marks the ones that cannot be used.
- Choose the model and the reasoning effort in the panel, per conversation. Settings holds the defaults.
- Vision models can also take screenshots of the page and read the images you attach.
- Local models work best for simple, clear tasks. We currently recommend Qwen3.8 27B. Give them a context window of 16k tokens or more. Ollama needs
OLLAMA_ORIGINSto allow the extension, and LM Studio needs CORS on; the provider card shows how when a request is refused. - Voice input uses OpenAI's or Gemini's voice model with your key from that provider.
💡 Try these
"Summarize this page in a few bullet points."
"Compare the three laptops I have open and put the prices and specs in a table."
"Find a portable Bluetooth speaker on Amazon that is water-resistant, under $50, with at least 10 hours of battery."
"Extract the top 10 headlines from TechCrunch in the last 24 hours and save them as a CSV file."
🚀 Quick Start
-
Install it from the Chrome Web Store: click
Add to Chromeand confirm. In Edge, first allow extensions from other stores when Edge asks. -
Set it up: the welcome page opens and helps you connect a cloud provider or a local model. You can also do it later in Settings → Providers.
-
Use it: click the Nanobrowser icon in the toolbar, or press
Alt+Shift+N, to open the side panel on the current tab.
🔧 Build from Source
-
Prerequisites: Node.js 24 LTS and pnpm 10 (
corepackswitches to the pinned 10.34.7). -
Clone and build:
git clone https://github.com/nanobrowser/nanobrowser.git cd nanobrowser corepack enable # skip if pnpm 10 is already installed pnpm install pnpm build # builds the extension into dist/ -
Load it in Chrome or Edge:
- Open
chrome://extensions(in Edge,edge://extensions). - Turn on
Developer mode(top right). - Click
Load unpackedand choose thedistfolder.
- Open
Then set it up and use it as in the Quick Start. To update, pull the latest source, run pnpm build again, and click the reload icon on the Nanobrowser card in the extensions page.
🛠️ Development
pnpm dev # run in development mode, reloads on changes; load dist/ in Chrome
pnpm zip # make a release build as a zip file in dist-zip/
pnpm type-check # check types
pnpm lint # check code style and import rules
pnpm test # run the unit tests
pnpm install-chrome # install Chrome for Testing, used by the browser tests
pnpm autorun scenarios # run the browser tests on local test pages, without a window
How it works. The agent sits on top of a browser control layer. The layer looks at the page, acts on it, and reports what happened. It has no AI model in it, so the same input always gives the same result. This makes the agent more reliable:
- It clicks the right element. Each element the agent sees gets an ID that is tied to that exact element. If the page changes, an old ID stops working instead of pointing at something else.
- It acts like a real user. Clicks and typing are real browser input. Before acting, the layer checks that the element is visible, not moving, enabled, and not covered by something else.
- It tells the agent what really happened. Each action is sent only once. The result says whether it went through, whether the page responded, and whether the page reached the expected state.
The layer talks to the page only through Chrome's chrome.debugger API, and uses Puppeteer to keep track of frames on the page. For developers there is a test panel to try the layer by hand: bind a key to the open-test-panel command in chrome://extensions/shortcuts.
AGENTS.md (also CLAUDE.md) explains the design rules, how the repository is laid out and how we work, for people and for AI coding assistants.
🤝 Contributing
Contributions of all kinds are welcome:
- Share prompts and use cases on our Discord server.
- Give feedback on how Nanobrowser works for you, on Discord or in GitHub Discussions.
- Contribute code: read CONTRIBUTING.md, then open a pull request for a bug fix or a feature. CONTRIBUTING.md says which files a pull request may not change; ask for a change to one of them in an issue.
🔒 Security
If you find a security vulnerability, please do not disclose it in public issues, pull requests or discussions. Report it through a GitHub Security Advisory, so it can be fixed before it is made public. See SECURITY.md.
💬 Community
- Discord: chat with the team and the community
- X: updates and announcements
- GitHub Discussions: ideas and questions
👏 Acknowledgments
Nanobrowser builds on other great open-source projects:
Thanks to their creators and contributors.
📄 License
Nanobrowser is licensed under the Apache License 2.0. See the LICENSE file for details.