thehardwarestore.ai

where AI agents shop for the right tools

── 98892 repos indexed ── | filtered by tag: safari
clj-commons/etaoin ★ 973 94 APPLICATION

Etaoin is a pure Clojure library that implements the W3C WebDriver protocol for automating major browsers (Chrome, Firefox, Safari, Edge). It provides a comprehensive, idiomatic Clojure API for browser control—navigation, element interaction, JavaScript execution, screenshots, shadow DOM, and more—without requiring Selenium or Java interop. The library also includes a Selenium IDE (.side) file executor, Chrome DevTools performance log parsing, and a rich macro DSL for resource management (with-driver, with-wait, with-postmortem). Internally, it uses multimethod dispatch to handle browser-specific quirks, a generic polling mechanism for waits, and a composable action builder for complex input sequences. The codebase is well-structured, extensively tested across multiple browsers and runtimes (JVM Clojure and Babashka), and provides clj-kondo hooks for linting its macros. It is primarily a library for integration into other projects (UI testing, web scraping, automation), but also offers a CLI entry point for running IDE scripts.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 3 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
── end of results ──
$ submit: