Intelligent AI assistant sidebar with YouTube transcript analysis, screenshot capture, auto-attach active tab content, interactive help, and file upload support using Gemini and OpenRouter APIs. Now supports Google Search grounding (citations) for Gemini.
- 🤖 AI Chat Interface - Clean, modern sidebar interface for AI conversations
- 📺 YouTube Transcript Analysis - Fetch and analyze YouTube video transcripts
- 📸 Screenshot Capture - Capture and analyze screenshots with AI
- 📄 Tab Content Capture - Extract and analyze content from web pages
- 🔗 Auto‑include Active Tab - Optionally auto‑attach the current tab’s main content when sending
- 📁 File Upload Support - Upload and analyze documents, images, and more
- 🔑 Multiple AI Providers - Support for Gemini and OpenRouter APIs
- 🌐 Google Search Grounding - Let Gemini consult the web and add inline citations (toggle in Settings)
- 💾 Chat History - Save and manage conversation history locally
- ⚙️ Configurable Settings - Customize API keys, models, and preferences
- 🆘 Built‑in Tutorial - Help button opens a step‑by‑step guide with interactive actions
- 💬 @Mentions for Tabs - Type
@to attach open tabs as context - 🔁 Copy/Retry - Copy any message and retry AI responses easily
- 🧱 Rich Code Blocks - Clean formatting with copy buttons
- 🧑💼 Personalization (Profile) - Add “About me,” attach
.txt/.md/.pdffiles, auto‑generate a compact profile summary, and choose whether to include it by default or only for the next message - 🔐 Privacy First - All data stored locally, no analytics or tracking
📥 Install from Mozilla Add-ons
The easiest way to install Glimpse is directly from the official Firefox Add-ons store.
- Open Firefox and navigate to
about:debugging - Click "This Firefox" in the left sidebar
- Click "Load Temporary Add-on..."
- Select the
manifest.jsonfile from this repository - The extension will be loaded until Firefox restarts
- Download or clone this repository
- Run
package-simple.ps1to create the.xpifile - Drag and drop the
.xpifile into Firefox - Confirm installation when prompted
While primarily designed for Firefox, basic functionality may work in Chrome:
- Open
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked" and select the repository folder
- Install the extension using one of the methods above
- Open the sidebar by pressing
F1orCtrl+Shift+Y - Configure API keys in the settings:
- Gemini API: Get your free API key from Google AI Studio
- OpenRouter API: Get your API key from OpenRouter
- Optional: Enable Google Search grounding to get real‑time citations
- Optional: Enable Auto‑include active tab to attach the current page content automatically
- Start chatting with your AI assistant!
- F1 or Ctrl+Shift+Y: toggle sidebar
- Click the logo: start a new session
- Enter to send, Shift+Enter for newline
- Use the toolbar to Capture Page, Screenshot, YouTube Analysis, or Attach Files
-
Clone the repository
git clone https://github.com/Zandaland/glimpse.git cd glimpse -
Make changes to any source files
-
Package the extension
.\package-simple.ps1 -
Test in Firefox by dragging the new
.xpifile into the browser
glimpse/
├── manifest.json # Extension configuration
├── background.js # Background processes and API
├── sidebar.html # Main UI structure
├── sidebar.css # Main styling
├── sidebar.js # Core functionality and AI logic
├── retry.css # Additional styling
├── transcript-server/ # Optional helper for YouTube transcripts (Docker/Python)
├── icons/ # Extension icons
├── package-simple.ps1 # Build script
└── README.md # This file
sendMessage()- Handles user input and AI responsescallGeminiAPI()- Makes API calls to AI servicescaptureTabAsFile()/captureCurrentTab()- Extract main content from active tabanalyzeYouTubeVideo()- YouTube transcript extractioncaptureScreenshot()- Screenshot functionalityaddMessage()- Message rendering and display
- Toggle “Enable Google Search grounding” in Settings. For Gemini 2.x it uses
google_search; for Gemini 1.5 it falls back to legacy dynamic retrieval. Responses include inline citations when provided.
- Toggle “Auto‑include active tab when sending.” The extension captures the main content from the current tab and attaches it as a “Webpage” file (skips internal pages like
about:). This works like the Capture Page button, but automatically.
Glimpse can personalize responses using a lightweight profile you control.
- Open Settings → “Personalization (Profile)”
- Write your “About me” details (interests, goals, writing style, do/don’ts)
- Optionally attach reference files (
.txt,.md,.pdf) - Click “Generate summary” to create a compact profile summary that the model can use efficiently
- Choose how to include your profile:
- “Include by default” — always include in prompts
- “Include for the next message only” — one‑off include
- Your profile is stored locally in the browser. You can edit or remove it anytime.
- When included, Glimpse prepends a small
[User Profile]context block to your conversation turn.
Glimpse is designed with privacy in mind:
- Local Storage Only - All settings, API keys, and chat history are stored locally in your browser
- No Analytics - We don't collect any usage data or analytics
- Direct API Calls - Your data goes directly to your chosen AI provider (Gemini/OpenRouter)
- No Cloud Storage - We don't store any of your data on our servers
For full details, see our Privacy Policy.
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have suggestions, please open an issue on GitHub.
Made with ❤️ by Zandaland