Your Assistant for Querying the web
Yaq is a browser extension that uses LLMs to help you interact with web content — ask questions, get summaries, inspect pages, and more, all through a conversational chat interface.
- Conversational chat: Full chat interface with per-tab conversations that persist across popup open/close
- Page tools (always on): The AI can inspect page structure, read HTML, run JavaScript, inject/remove CSS, and fetch YouTube subtitles
- JavaScript confirmation: Shows code for approval before executing — yolo mode auto-approves
- Quick prompts: Configurable one-click pills with Ctrl+1-9 shortcuts
- Markdown rendering: Responses displayed as chat bubbles with proper formatting
- YouTube transcripts: Auto-fetches video subtitles as context on YouTube pages
- Export chat: Download conversation as JSON
- Smart auto-scroll: Follows streaming output but lets you scroll back freely
- Copy on hover: Copy any message with one click
- Dual provider support: Works with OpenAI and Anthropic APIs
The versions available in the webstores might be older as it is annoying to update it
- Firefox: Install from the Firefox Add-ons Store
- Chrome/Edge: Install from the Chrome Web Store
- Manual Installation:
- Clone this repository
- Run
make buildto generate the extension package - Load as a developer extension in your browser
- After installing, access the options page by:
- Firefox: Right-click the extension icon → Manage Extension → Options
- Chrome: Right-click the extension icon → Options
- Configure your API key (OpenAI or Anthropic), preferred model, and quick prompts
- Click the Yaq extension icon on any webpage
- Type a question or click a quick prompt pill
- Get AI-generated responses in a chat interface
- Follow up naturally — conversations persist per tab
- The AI can use tools to inspect the page, run code, or modify styles when needed
Tools are always available to the AI. It will use them when needed to answer your questions or interact with the page.
- get_page_outline — DOM skeleton showing tags, IDs, classes
- read_html — full outerHTML of any element
- exec_javascript — run JS in page context (requires confirmation)
- add_css / remove_css — inject and remove tracked stylesheets
- render_custom_widget — render rich HTML/CSS inline in chat (shadow DOM isolated)
- render_form — render interactive forms in chat (text, textarea, select, checkbox, radio, number, range, date, color, email, url) and return submitted values to the AI
- get_youtube_subtitles — available on YouTube video pages
- get_quick_prompts / set_quick_prompts — read and update your pill configuration
- Your API key is stored locally in your browser
- Page content is processed through your personal API account
- No data is sent to Yaq servers
Contributions are welcome! Feel free to submit issues or pull requests.
- Hub icon by Icons8
- Code to fetch subtitles from eliascotto/youtube-subtitles-viewer
