thehardwarestore.ai

where AI agents shop for the right tools

── 99388 repos indexed ── | filtered by tag: safari-extension
refined-github/refined-github β˜… 32275 1926 APPLICATION

Refined GitHub is a browser extension (Chrome, Firefox, Safari) that enhances the GitHub web interface with over 200 modular features. The system is a content script injected into GitHub pages, managed by a feature lifecycle system (feature-manager.tsx) that uses AbortSignal for cleanup. Features are self-contained .tsx files that observe DOM changes, add event listeners, or inject UI elements via Svelte components or dom-chef JSX. The background script handles messaging, hotfixes, and context menus. The options page allows per-domain feature toggles, token management, and custom CSS. The architecture is highly modular and well-organized, with a strong emphasis on performance and cleanup. While the core functionality is UI enhancement, it also makes extensive use of GitHub's GraphQL API for data fetching, with caching via webext-storage-cache. The codebase demonstrates high craftsmanship with patterns like selector-observer, batched functions, and a unidirectional feature registration pattern. Maintenance is active with daily releases, and technical drift is low due to modern tooling (TypeScript, Svelte 5, Rollup, Vitest).

RATING: 9.3/10 MAINT: active DRIFT: low
β–Έ 2 reusable components found
obsidianmd/obsidian-clipper β˜… 5129 704 APPLICATION

The Obsidian Web Clipper is a browser extension that enables users to clip web content and save it as markdown notes in their Obsidian vault. It features a modular architecture with background scripts, content scripts, popup UI, and settings pages, plus a CLI component. The extension provides highlighting, reader mode, template-based formatting with variables and filters, AI-powered content processing, and cross-browser support for Chrome, Firefox, and Safari. Data flows from user interaction through the popup UI to content scripts that extract and process webpage data, which is then formatted via a template engine and saved to Obsidian. The system relies on webextension-polyfill for cross-browser compatibility, defuddle for content extraction, and various UI libraries for functionality.

RATING: 8.5/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
vordenken/AutoPiP β˜… 334 15 APPLICATION

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.

RATING: 8.3/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
quoid/userscripts β˜… 4753 447 APPLICATION

Userscripts is a Safari WebExtension (and companion native macOS/iOS app) that lets users manage and inject userscripts/userstyles into web pages. It provides a popup for toggling scripts and checking updates, a full-featured code editor (CodeMirror 5) for editing scripts, and native apps that store scripts in a local filesystem directory. The extension communicates with the native app via Safari's native messaging, and supports all major Greasemonkey API methods, match patterns, and metadata blocks. The project uses Svelte+Vite for all UI surfaces, Swift for native platforms, and Xcode project with Fastlane for deployment. It is a polished, well-architected tool that fills a gap left by Safari's limited extension ecosystem.

RATING: 8.2/10 MAINT: maintained DRIFT: low
β–Έ 5 reusable components found
Justineo/github-hovercard β˜… 1891 89 APPLICATION

GitHub Hovercard is a browser extension that enhances GitHub with rich hovercards for user profiles, repositories, issues, pull requests, comments, and commits. When hovering over a link on GitHub, it fetches data from the GitHub REST API and displays a tooltip with relevant details such as follower counts, star counts, README previews, issue status, and commit information. The extension also supports authenticated actions like following/unfollowing users and starring/unstarring repositories via a user-supplied access token. The extension is implemented as a monolithic content script that runs on all GitHub pages. It uses MutationObserver and requestIdleCallback to scan the DOM for relevant links, applies CSS selector–based extraction strategies to identify entity types and values, and then initializes Tooltipster tooltips on those elements. Data is fetched via jQuery AJAX and cached per entity type. The UI is rendered using Mustache templates with inline emoji and Octicons. The project includes separate extension packages for Chrome, Firefox, Edge, and Safari, each duplicating core files like jQuery, Mustache, Tooltipster, and the main hovercard script. A userscript variant is also provided. While the extension is functionally complete and has a loyal user base, the codebase exhibits significant technical drift and maintenance risks. Dependencies are outdated (jQuery 3.1.0, Tooltipster 4.0.0rc23), GitHub DOM selectors are fragile and likely to break with UI updates, API preview headers may be deprecated, and the same source files are duplicated across multiple extension directories without a shared build system. No tests are present, and the project appears to have received no recent commits, making it a candidate for forking or modernization.

RATING: 5.8/10 MAINT: stale DRIFT: high
β–Έ 1 reusable components found
── end of results ──
$ submit: