Inspired by Arc Browser, this script transforms the standard findbar and URL bar in Zen Browser into modern, AI-powered command interfaces. The findbar becomes a floating chat panel for deep interaction with page content, while the URL bar offers quick AI-powered actions and searches. Heavy-duty agentic work lives in a dedicated BrowseBot section inside the Zen Library, which stays open across tab and workspace switches.
BrowseBot.1.mp4
- π¨ Floating Chat UI: A sleek, draggable, and resizable findbar that transforms into an AI chat panel.
- π Library AI: A persistent BrowseBot section inside the Zen Library with chat, agent, and build modes.
- π URL Bar AI Commands: Activate an AI command mode directly in your URL bar for quick searches and navigation.
- π€ Multi-Provider Support: Works out of the box with Pollinations AI (free, no API key needed). Also integrates with Google Gemini, Mistral AI, OpenAI, Anthropic Claude, xAI Grok, Perplexity AI, Cerebras, DeepSeek, OpenRouter, any OpenAI-compatible endpoint, and local models via Ollama.
- π§ Page Content Awareness: Lets the AI read the current page's text, HTML, and even YouTube transcripts to provide context-aware answers.
- π Powerful AI Tool-belt: In Library agent mode, the AI controls the browser: manages tabs, workspaces, bookmarks, performs searches, and interacts with page elements.
- π±οΈ Context Menu Integration: Right-click to quickly ask the AI about selected text or summarize the current page.
- π Citation Support: Get direct quotes from the page text that support the AI's answer.
- π§ Highly Customizable: Fine-tune every aspect through settings or
about:config. - β¨οΈ Custom Shortcuts: Configure keyboard shortcuts to open the AI chat and URL bar commands.
library-ai-final-trailer-small.mp4
URL.bar.AI.mp4
-
Privacy: To answer questions about a webpage, this script sends the text content of the page to your selected provider. Please be aware of the privacy implications before using this feature on pages with sensitive information. Or if you are using ollama you don't have to worry about this.
-
Prompt Injectation: Be aware of prompt injectation attacks and use this mod only in websites you trust.
- Install latest version of Sine (if you haven't already).
- Restart Zen Browser.
- Open settings and go to the
Sinetab. - Search for
BrowseBot. - Click Install.
- A toast for restart should appear. Click on that to restart Zen.
- Enjoy your new AI assistant! β¨
Note
If you want to try Early Beta version you can use the beta branch https://github.com/Vertex-Mods/Browse-Bot/tree/beta
For advanced users or those not using Sine or who are willing to contribute:
-
Setup
fx-autoconfig: If you haven't already, follow the setup instructions at MrOtherGuy/fx-autoconfig. -
Clone this Repository: Open a terminal or command prompt, navigate to the
jsdirectory created byfx-autoconfiginside your profile folder, and clone the repository with the namecustom:git clone https://github.com/BibekBhusal0/zen-custom-js.git custom
-
Import the Script: In your JS directory, create a new file
import.uc.mjs(or add to an existing one), and add the following line:import "./custom/findbar-ai/index.js";
-
Import the Styles: In your
userChrome.cssfile, add the following line:@import "js/custom/findbar-ai/style.css";
-
Restart Zen Browser: Restart the browser for all changes to take effect. You might need to clear the startup cache from
about:support.
Note
No build step is needed. BrowseBot runs straight from source and has zero npm dependencies. Installing Bun is optional and only matters if you want to build the single-file release bundle yourself.
- Configure Provider: After installation, press
Ctrl+Shift+F. No setup is needed to start: BrowseBot defaults to Pollinations AI, which is free and requires no API key. To use a different provider, select it and paste its API key instead. For Ollama, set the local Base URL in the settings.
Note
The default Pollinations tier is anonymous and rate limited (about one request per 15 seconds) and serves smaller models on sponsor funded infrastructure, so heavy or agentic use can feel slow. This is just for preview which works without key but is not recommended for heavy usage.
- Save the Key: Paste the key into the input field and click "Save". The chat interface will now appear.
- Start Chatting:
- Press
Ctrl+Fto open the standard findbar. - In the default (non-minimal) view, click the "Expand" button to switch to AI chat. In Minimal Mode, just enter your query and click "Ask".
- Type your questions about the current page and press on send button.
- Use
Ctrl+Shift+Fto open the AI chat directly, using any text you have selected on the page as the initial prompt (this shortcut will not work if it has been changed).
- Press
- Press
Ctrl+Spaceto activate AI mode in the URL bar (this shortcut will not work if has been changed). - Type your command directly (e.g., "search for red pandas", "open github").
- Press
Enterto execute the command. The AI will perform the action, often providing feedback via a small toast notification.
Note
The URL bar AI is intentionally scoped to search, navigation, and opening links. For tab, workspace, and bookmark management, use the Library AI agent mode instead.
Note
The Library section needs a Zen build with the Library feature (v1.23b or higher).
- Press
Alt+Shift+A(customizable) to toggle the Library AI, or run Toggle BrowseBot Library from the command palette. The section appears in the Library sidebar as AI. - Pick a mode with the header buttons or a slash command:
- Chat (
/chat): plain Q&A. No tools, no automatic page context. - Agent (
/agent): the full browser tool-belt. It reads and organizes tabs, searches the web, manages bookmarks and workspaces, clicks and fills page elements, and reads YouTube transcripts. - Build (
/build): styles the browser and builds Sine mods. Describe the look you want and it stages a live CSS and JS preview, then saves it as a mod.
- Chat (
- Type
@to reference any open tab. Picking one hands its full page content to the AI with your message. - Slash commands accept a trailing message:
/agent close all youtube tabsswitches to agent mode and sends the rest immediately. - Manage chats with
/new,/delete,/closeand/continue, or open saved chats from the history button in the header.
BrowseBot integrates with Zen Command Palette to provide quick access to common actions:
- Press
Ctrl+Lto open the palette. - Available BrowseBot commands:
- Summarize Page: Opens the findbar AI and prompts to summarize the current page.
- Open BrowseBot Settings: Opens the BrowseBot settings modal.
- Open BrowseBot Settings: General/Surfaces/Models/Prompts: Opens the settings modal directly on that tab.
- Toggle URL bar AI mode: Activates AI mode in the URL bar.
- Expand findbar AI: Opens the findbar directly in AI chat mode.
- Toggle BrowseBot Library: Opens the BrowseBot section in the Zen Library.
You can customize the BrowseBot through the settings modal (found in the chat header) or via about:config.
| Preference | Type | Default | Description |
|---|---|---|---|
extension.browse-bot.findbar-ai.enabled |
Boolean | true |
Toggles the findbar AI feature on or off. |
extension.browse-bot.urlbar-ai-enabled |
Boolean | true |
Toggles the URL bar AI feature on or off. |
extension.browse-bot.urlbar-ai.hide-suggestions |
Boolean | true |
Hides autocomplete suggestions in the URL bar when AI mode is active. |
extension.browse-bot.urlbar-ai.animations-enabled |
Boolean | true |
Enables animations for the URL bar AI. |
extension.browse-bot.findbar-ai.minimal |
Boolean | true |
Toggles a simpler, more compact UI for the findbar. |
extension.browse-bot.findbar-ai.persist-chat |
Boolean | false |
Persists chat history across tab switches (but not browser restarts). |
extension.browse-bot.findbar-ai.dnd-enabled |
Boolean | true |
Enables dragging to move and resizing of the findbar window. |
extension.browse-bot.findbar-ai.remember-dimensions |
Boolean | true |
Remembers the size of the findbar window across sessions. |
extension.browse-bot.findbar-ai.width |
Number | 500 |
The width of the findbar. |
extension.browse-bot.findbar-ai.position |
String | "top-right" |
Sets the corner where the findbar snaps. Options: top-left, top-right, bottom-left, bottom-right. |
extension.browse-bot.findbar-ai.background-style |
String | "solid" |
The background style of the findbar. Options: solid, acrylic, pseudo. |
extension.browse-bot.llm-provider |
String | "pollinations" |
Which AI provider to use. Options: pollinations, gemini, mistral, openai, claude, grok, perplexity, cerebras, deepseek, openrouter, ollama, custom. |
extension.browse-bot.pollinations-model |
String | "openai" |
The Pollinations model ID to use. Pick from the live-fetched list in settings. |
extension.browse-bot.pollinations-api-key |
String | (empty) | Optional personal key from enter.pollinations.ai. Unlocks more models and tool use; without it the free anonymous tier applies. |
extension.browse-bot.deepseek-api-key |
String | (empty) | Your API key for DeepSeek. |
extension.browse-bot.deepseek-model |
String | "deepseek-flash" |
The specific DeepSeek model to use. |
extension.browse-bot.openrouter-api-key |
String | (empty) | Your API key for OpenRouter. |
extension.browse-bot.openrouter-model |
String | "google/gemini-3.8-flash" |
The OpenRouter model ID to use. |
extension.browse-bot.cerebras-api-key |
String | (empty) | Your API key for Cerebras AI. |
extension.browse-bot.cerebras-model |
String | "gpt-oss-120b" |
The specific Cerebras model to use. |
extension.browse-bot.gemini-api-key |
String | (empty) | Your API key for Google Gemini. |
extension.browse-bot.gemini-model |
String | "gemini-3.8-flash" |
The specific Gemini model to use. |
extension.browse-bot.mistral-api-key |
String | (empty) | Your API key for Mistral AI. |
extension.browse-bot.mistral-model |
String | "mistral-medium-latest" |
The specific Mistral model to use. |
extension.browse-bot.openai-api-key |
String | (empty) | Your API key for OpenAI. |
extension.browse-bot.openai-model |
String | "gpt-6.1-sol" |
The specific OpenAI model to use. |
extension.browse-bot.claude-api-key |
String | (empty) | Your API key for Anthropic Claude. |
extension.browse-bot.claude-model |
String | "claude-sonnet-5-5" |
The specific Claude model to use. |
extension.browse-bot.grok-api-key |
String | (empty) | Your API key for xAI Grok. |
extension.browse-bot.grok-model |
String | "grok-4.7" |
The specific Grok model to use. |
extension.browse-bot.perplexity-api-key |
String | (empty) | Your API key for Perplexity AI. |
extension.browse-bot.perplexity-model |
String | "sonar" |
The specific Perplexity model to use. |
extension.browse-bot.ollama-base-url |
String | http://localhost:11434/api |
The base URL for your local Ollama API. |
extension.browse-bot.ollama-model |
String | "qwen3:8b" |
The specific Ollama model to use. |
extension.browse-bot.custom-api-key |
String | (empty) | Your API key for any OpenAI-compatible custom provider. |
extension.browse-bot.custom-model |
String | (empty) | The model name to use on the custom provider. |
extension.browse-bot.custom-base-url |
String | (empty) | The base URL for your OpenAI-compatible API (e.g. https://api.your-provider.com/v1). |
extension.browse-bot.findbar-ai.context-menu-enabled |
Boolean | true |
Toggles the "Ask AI" item in the right-click context menu. |
extension.browse-bot.findbar-ai.context-menu-autosend |
Boolean | true |
If true, clicking the context menu item sends the request to the AI immediately. |
extension.browse-bot.findbar-ai.context-menu-command-no-selection |
String | "Summarize current page" |
The command to send when no text is selected. |
extension.browse-bot.findbar-ai.context-menu-command-with-selection |
String | "Explain this in context of current page:\n\n{selection}" |
The command to send when text is selected. {selection} is the placeholder. |
extension.browse-bot.library-ai.max-tool-calls |
Number | 0 |
The maximum number of consecutive tool calls the AI can make in one turn. 0 means unlimited. |
extension.browse-bot.findbar-ai.max-context-chars |
Number | 0 |
Maximum page or transcript characters sent per message. 0 means unlimited. |
extension.browse-bot.findbar-ai.system-prompt |
String | (empty) | Custom system prompt for the findbar AI. |
extension.browse-bot.urlbar-ai.system-prompt |
String | (empty) | Custom system prompt for the URL bar AI. |
extension.browse-bot.library-ai.chat-system-prompt |
String | (empty) | Custom system prompt for the Library chat mode. |
extension.browse-bot.library-ai.agent-system-prompt |
String | (empty) | Custom system prompt for the Library agent mode. |
extension.browse-bot.library-ai.build-system-prompt |
String | (empty) | Custom system prompt for the Library build mode. |
extension.browse-bot.library-ai.confirm-before-tool-call |
Boolean | true |
If true, prompts you for confirmation before the AI executes any tools. |
extension.browse-bot.findbar-ai.stream-enabled |
Boolean | true |
AI response will be streamed in chunks. |
extension.browse-bot.findbar-ai.citations-enabled |
Boolean | false |
If true, the AI will try to cite its sources from the page content. |
extension.browse-bot.llm.temperature |
Number | 0.7 |
Controls randomness. |
extension.browse-bot.llm.top-p |
Number | 1.0 |
Nucleus sampling limits. |
extension.browse-bot.llm.top-k |
Number | 40 |
Limits sampling to top K tokens. |
extension.browse-bot.llm.frequency-penalty |
Number | 0.0 |
Penalizes frequent tokens. |
extension.browse-bot.llm.presence-penalty |
Number | 0.0 |
Penalizes repeated tokens. |
extension.browse-bot.llm.max-output-tokens |
Number | 2048 |
Maximum number of tokens to generate. |
extension.browse-bot.findbar-ai.shortcut-findbar |
String | "ctrl+shift+f" |
Keyboard shortcut to open findbar AI. Format: ctrl+shift+f (press keys to record in settings). |
extension.browse-bot.urlbar-ai.shortcut-urlbar |
String | "ctrl+space" |
Keyboard shortcut to toggle URL bar AI mode. Format: ctrl+space (press keys to record in settings). |
extension.browse-bot.library-ai.shortcut-library |
String | "alt+shift+a" |
Keyboard shortcut to open the BrowseBot Library section. |
extension.browse-bot.library-ai.enabled |
Boolean | true |
Adds the BrowseBot section to the Zen Library (needs a Zen build with the Library feature). |
extension.browse-bot.library-ai.mode |
String | "chat" |
Library AI mode. Options: chat, agent, build. |
extension.browse-bot.debug-mode |
Boolean | false |
Set to true to enable verbose logging in the Browser Console for troubleshooting. |
Default keyboard shortcuts:
| Shortcut | Action |
|---|---|
Ctrl+Shift+F |
Opens the findbar directly into the expanded AI mode. |
Ctrl+Space |
Toggles the URL bar into AI command mode. |
Alt+Shift+A |
Toggles the BrowseBot Library section (needs a Zen build with the Library feature). |
Escape |
If the AI interface is expanded, it collapses to the standard findbar. If not expanded, closes the findbar. |
Alt + Enter |
Sends the text from the standard findbar to the AI, expanding the view. |
Note
You can customize these shortcuts in the Settings modal under "Keyboard Shortcuts".
Tool calls live in the Library AI agent mode, which stays open across tab and workspace switches, so long multi-step runs are never aborted by navigation.
Note
The Findbar AI is page Q&A only and makes no tool calls. The URL Bar AI uses a focused subset for quick actions: Search, Navigation, and UI Feedback (toast notifications).
Currently available tool calls are (full set in Library agent mode):
- Search: Searches a term on your default or a specified search engine.
- Navigation:
openLinkin various locations (current/new tab, window, private, glance, splits),newSplitwith multiple URLs, andsplitExistingTabs. - Tab Management: A full suite of tools to
getAllTabs(also lists tab folders, including empty ones),searchTabs,closeTabs,reorderTab,addTabsToFolder,removeTabsFromFolder,createTabFolder,deleteTabFolder,addTabsToEssentials, andremoveTabsFromEssentials. - Page Interaction:
getPageTextContentto read text,getHTMLContentfor the full source,clickElementusing a CSS selector, andfillForminputs. - YouTube:
getYoutubeTranscript,getYoutubeDescription, andgetYoutubeCommentsfor the current video. - Bookmark Management: A full suite of tools to
searchBookmarks,getAllBookmarks,createBookmark,addBookmarkFolder,updateBookmark, anddeleteBookmark. - Workspace Management: Tools to
getAllWorkspaces,createWorkspace,updateWorkspace,deleteWorkspace,moveTabsToWorkspace, andreorderWorkspace. - UI Feedback:
showToastto display temporary notifications to the user.
- Pin/unpin the findbar
- Context Menu integration
- Different background styles (solid, acrylic, pseudo)
- Smooth animations for all interactions
- Custom system prompts
- Add Settings.
- Copy and regenerate buttons on chat messages
- Slash Command and variables (library chat:
/chat,/agent,/build) - Adding more tools (tab groups, workspaces, background search)
- Giving AI YouTube transcript
- Tagging multiple tabs (
@tab mentions in library chat) - Advanced LLM parameters (temperature, top-k, etc.)
- Keyboard shortcut customization
- Build mode (styles the browser and builds Sine mods)
- This mod is released through Vertex Mods, and I, Bibek Bhusal, am the creator of this mod.
- natsumi-browser: For inspiration on the modern, floating UI styles in Findbar.
- Arc-2.0: For inspiration for animation for URL bar.
- Arcline: For implementation of pseudo background.
- aminomancer/uc.css.js: The
_overrideFindbarMatchesDisplayfunction infindbar-ai.uc.jsis adapted fromJS/findbarMods.uc.jsunder the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0). - 12th-devs/library-tweaks: The BrowseBot Library section follows the native Library section contract (section classes,
zenLibrarySectionsregistration,gZenLibrary.openTab) demonstrated by this mod. - 12th-devs for helping me in each step of developement, styling, and design.
- realSilasYang Finding out lots of issues and fixing them as well.
This is licensed under MIT license. Check License for more details.