FoxyProxy is a cross-browser extension (Chrome, Firefox, Edge) for advanced proxy management. It allows users to configure individual proxies, use pattern-based proxying (wildcard, regex, match patterns), set proxy per tab or container (Firefox), enable global exclude lists, and manage WebRTC settings. The codebase is highly modular, using ES modules and Manifest V3. It implements single proxy, PAC, and 'proxy by patterns' modes, with features like sync, import/export, a live log, pattern tester, and enterprise policy support. The architecture separates concerns clearly: background service worker handles proxy configuration via browser APIs, options page provides full UX, popup offers quick controls, and context menus add convenience. The code is well-structured, uses modern JavaScript (ES2022), and shows solid engineering practices. Reusable modules include pattern validation, file I/O, and flag display utilities.
ScriptCat is a sophisticated browser extension for managing userscripts with advanced AI agent capabilities. It features a multi-context architecture (content scripts, service worker, offscreen documents, popup/options UI) built with React, TypeScript, and modern web extension APIs. The extension provides userscript installation, execution, synchronization, network rule management, and an integrated AI chat interface with tool execution capabilities. Its architecture demonstrates strong separation of concerns and implements several reusable patterns for cross-context communication, storage abstraction, and caching.
This repository is a browser extension for generating two-factor authentication (2FA) TOTP and HOTP codes. It allows users to securely store account secrets (optionally encrypted with a passphrase), generate codes for login, and provides features such as autofill into web pages, cloud backups (Dropbox, Google Drive, OneDrive), and synchronization across browsers. The extension is built with TypeScript and Vue 2.x, using Webpack for bundling and Vuex for state management. It supports multiple browsers (Chrome, Firefox, Edge) and manifests for Manifest V3. The architecture consists of a background service worker (for handling events and cloud sync), a popup UI (for displaying codes and managing accounts), an options page (for settings), content scripts (for autofill and QR code scanning), and an import page. Data flows involve storing encrypted account secrets in browser storage, generating OTPs from these secrets, and securely backing up and restoring data via cloud services or encrypted files. External dependencies include browser APIs, cloud service APIs (OAuth), and cryptographic libraries (argon2-browser, crypto-js, node-gost-crypto). The codebase demonstrates good engineering practices with clear separation of concerns, reusable abstractions for encryption and storage, and a modular structure for UI components and cloud backup providers. It includes internationalization support, a security advisor for recommendations, and a test suite (unit and end-to-end). While the project faces some technical debt due to its reliance on Vue 2.x and complex backup integrations, it remains actively maintained and functional.
Sidebery is a mature, feature-rich Firefox WebExtension that transforms the browser's sidebar into a highly customizable vertical tab manager. It provides tree-style tab management, integrated bookmarks and history panels, container-based tab isolation, session snapshots, search across tabs/bookmarks/history, context menus, keyboard shortcuts, drag-and-drop, custom CSS theming, and synchronization via Firefox Sync or Google Drive. The codebase is built with Vue 3, TypeScript, and Stylus, and follows a modular architecture with distinct background, sidebar, setup, and popup contexts communicating via a custom IPC framework. The source code reveals deep integration with Firefox's WebExtensions APIs and extensive use of reactive state patterns to maintain synchronized UI across multiple extension pages. The repository is actively maintained (latest commit August 2026) with frequent releases, a comprehensive issue tracker, and continuous integration via GitHub Actions. The code exhibits strong engineering practices: separation of foreground/background services, debounced storage operations, typed IPC actions, and a centralized utility module. However, some modules (notably `tabs.fg.ts` and `sidebar.fg.ts`) are large and tightly coupled, and there are minor signs of technical debt (deprecated settings, hardcoded error strings). Overall, the extension delivers on its promise of a powerful sidebar tab manager with an impressive degree of customization.
Buster is a browser extension that solves reCAPTCHA audio challenges using speech recognition. When users encounter a reCAPTCHA with an audio challenge, they can click the extension button to automatically transcribe and submit the solution. The extension supports multiple speech recognition services including Google Cloud Speech-to-Text, IBM Watson, Microsoft Azure, Wit.ai, and local options like Whisper and Gemini Nano. It also offers a companion client app that can simulate user interactions to improve success rates. Built with Vue.js/Vuetify and designed for cross-browser compatibility (Chrome, Edge, Firefox, Opera), the extension uses Manifest V3 where available and includes features like theme support, automatic updates, and contribution prompts.
AutoPiP is a Safari Web Extension paired with a small Cocoa host app for macOS 13.5+. In production, it automatically enters Picture-in-Picture mode for HTML5 video when the user switches tabs (visibilitychange), switches windows (blur/focus with a 100ms delay that filters internal focus changes like clicking YouTube live chat), or scrolls a YouTube video out of view (IntersectionObserver with a 10% threshold). The toolbar popup provides a global on/off toggle, per-feature switches, blacklist/whitelist site control with full-hostname or root-domain matching, and a configurable keyboard shortcut (default ⌥P) that prefers the W3C requestPictureInPicture API and falls back to webkitSetPresentationMode. The extension is Manifest V2, which is the only option Safari currently supports, and it makes no outbound network requests beyond Sparkle update checks performed by the host app. Architecturally, the product is split into three layers: the content script (content.js) owns PiP state transitions and video discovery via priority-ordered selectors (YouTube, Disney+, Twitch, generic) with a MutationObserver-invalidated cache; the popup (popup.js) persists settings in browser.storage.local and broadcasts changes to all open tabs via runtime messages; and the Swift host app provides a first-launch onboarding flow in a WKWebView, bridges update preferences through a native message handler, and wraps Sparkle 2.9.3 with an opt-in beta channel. The release pipeline is the standout feature: semver.txt is the single source of truth, feature/* branches produce immutable beta tags, main produces stable releases, and a canonical Sparkle appcast plus Homebrew cask are updated automatically via Python scripts with atomic file replacement. The repository is actively maintained (last commit September 2026, beta release v2.1.1 in progress) with a well-instrumented CI setup: dependency-free Node.js tests execute the content script, popup, and host script inside a vm sandbox with fake DOM objects; Swift unit tests cover onboarding JSON parsing; and release-pipeline tests validate appcast/cask transformations and workflow invariants. Documentation is unusually thorough (AGENTS.md, BUILD.md, PRIVACY.md, SECURITY.md). Minor weaknesses: the UI test targets contain only Xcode template boilerplate, popup.js uses unconditional console.log in a few places, and storage keys/message names are duplicated string contracts between popup.js and content.js rather than shared constants.
Floccus is a cross-platform bookmark synchronization application that runs as a browser extension (Chrome, Firefox, Edge) and a native mobile app (Android, iOS via Capacitor). Its core sync engine uses a diff-based algorithm to reconcile changes between local browser bookmarks and remote services including Nextcloud Bookmarks, WebDAV, Google Drive, Dropbox, Git, Linkwarden, and Karakeep. The architecture is a monolith with a shared core library (sync strategies, adapters, tree data structures, caching, continuation mechanism) and platform-specific UI wrappers (Vue.js options page for the extension, Vue + Vuetify for the mobile app). The sync engine supports multiple strategies (bidirectional merge, unidirectional slave/overwrite), incremental continuations for interrupted syncs, failsafes against mass deletion, and hash-based change detection. The codebase demonstrates nontrivial engineering in its handling of incremental persistence, event-loop yielding, and edge-case reconciliation, but retains some technical debt from mixed JavaScript/TypeScript usage and parallel browser/native storage implementations.
Vimium C is a browser extension that provides keyboard-driven navigation and productivity features, forked from Vimium. Its architecture is a classic Chrome/Firefox extension with a background service worker or page, content scripts injected into every page, and extension pages (options, omnibar, show image). The background script manages state, settings, browsing data (history, bookmarks), and orchestrates commands like tab management, URL opening, and synchronization. Content scripts implement the core user-facing features: link hints (detecting clickable elements and overlaying markers), keyboard key handlers with a finite state machine for mapping keystrokes to commands, visual mode for text selection, find-in-page, scrolling with smooth animations, and an omnibar (Vomnibar) for search, history, bookmarks, and command execution. The Vomnibar is a rich UI component that communicates with the background via port messaging. The extension supports multiple browsers (Chrome, Firefox, Edge) and both Manifest V2 and V3, with extensive version-specific conditionals and polyfills. The build system uses TypeScript, gulp, rollup, and terser to produce optimized builds, and includes custom patches to vendored TypeScript and Terser. The codebase demonstrates high engineering effort in handling complex browser quirks and performance optimization, but also carries technical debt from accumulated workarounds and legacy browser support.
Showdex is a browser extension for Pokémon Showdown that provides a real-time damage calculator (Calcdex) and supplementary tools directly within the battle interface. It integrates deeply with Showdown's client, patching internal classes (Battle, Side, Room) to synchronize all Pokémon, field conditions, and player actions as they occur. The architecture follows a dual-host pattern (legacy Backbone and modern Preact clients) with abstract bootstrappers, React/Redux for UI state, and RTK Query for fetching Pokémon presets from Smogon APIs. It also includes a standalone calculator (Honkdex), a note-taking tool (Notedex), a settings dashboard (Hellodex), and a debug panel (Devdex). The codebase demonstrates strong engineering with well-structured utility modules, custom hooks, drag-and-drop layout components, internationalization (English/French), and a complex hydration/dehydration system for data persistence. While primarily an application, it incorporates significant data processing for Pokémon battle mechanics (stat calculations, legacy DV conversion, preset matching).
A browser extension (ImprovedTube) that provides 80+ configuration options to customize YouTube's appearance and behavior. It injects CSS and JavaScript into YouTube pages to modify the player, sidebar, comments, thumbnails, themes, and more. Features include ad blocking, forced playback parameters, keyboard shortcuts, a blocklist for channels/videos, smart speed based on heatmap data, and integration with Return YouTube Dislike. The extension uses a message-passing architecture between content scripts and page-world scripts via custom DOM events, and a custom Satus UI framework for the settings panel. It is localized into 40+ languages but has a high number of open issues and dependencies on fragile YouTube DOM structures. The codebase is functionally comprehensive but shows signs of maintenance drift with hardcoded API keys, heavy use of !important CSS, and incomplete locale coverage.
This repository is a collection of over 60 simple, installable WebExtension examples, primarily maintained by Mozilla. The codebase is not a single application but a set of independent browser extensions, each in its own directory, demonstrating specific WebExtensions APIs such as tabs, storage, webRequest, menus, and declarativeNetRequest. The examples cover both Manifest V2 and V3, with patterns for background scripts, content scripts, popups, sidebars, and options pages. The repository also includes a shared examples.json metadata file with schema validation, ESLint configuration, and a GitHub Actions workflow for linting and validation. The practical value lies in being a reference and starting point for developers building browser extensions, rather than a production-ready deployable system.