Back to browse
GitHub Repository

open links on macOS in whatever browser, app, or profile you need - whatever yo jam is

1,100 starsSwift

Yojam – Route links to the right browser/profile, strip trackers first

by fluffypony·Apr 19, 2026·4 points·2 comments

AI Analysis

●●●BangerSolve My ProblemSlickBig Brain

Beats Choosy by routing links to specific browser profiles based on source app.

Strengths
  • Source-app matching lets Slack links open differently than Messages links.
  • Profile support targets Chrome Profile 3 instead of just generic Chrome.
  • Tracker stripping built-in removes need for separate extensions like LinkLiar.
Weaknesses
  • macOS only limits appeal compared to cross-platform link handlers.
  • Relies on being default browser which can conflict with other tools.
Category
Target Audience

macOS power users and developers managing multiple accounts

Similar To

Choosy · OpenInOne · LinkLiar

Post Description

Author here. Yojam sits in place of your default browser on macOS and intercepts every http/https click, mailto, .webloc, Handoff page, AirDrop link, Share menu item, and yojam:// URL. They all go through the same pipeline: global URL rewrites, tracker parameter stripping, rule matching (domain / prefix / regex / source app), per-browser rewrites, then either open or show a picker at the cursor. Things I cared about that other pickers don't quite get right:

- Browser profiles as first-class targets. A rule can send a URL to "Chrome, Profile 3" or "Firefox, Work container" - not just "Chrome". Seems obvious; somehow nobody else does it properly.

- Source-app matching. GitHub links from Slack route differently than GitHub links from Messages. Handoff, AirDrop, Share, Services, and each browser extension get synthetic bundle IDs so rules can fire on ingress path.

- Tracker stripping happens before the target browser ever sees the URL, so referrer leakage through utm_* / fbclid / gclid / etc. is cut off globally rather than per-site. This is the only sane way to do it.

- Custom launch arguments with a $URL placeholder, so you can point a rule at any executable, not just registered URL handlers. Useful for throwaway Chromium instances or weird CLI tools.

- Menu bar only. No dock icon, no cmd-tab entry (unless the preferences window is open).

Stack: Swift, AppKit, App Group container shared with a Share Extension, Safari Web Extension (WIP but should be out soon), and a native messaging host for Chromium/Firefox extensions (not live yet, just doing final spit and polish). Private windows in Safari & Orion go through AppleScript because there's no CLI flag (thanks, Apple). Everything is local - the only network traffic is optional iCloud KV sync and Sparkle update checks.

macOS 14+. BSD-3. Happy to answer implementation questions, especially around default-browser registration, the LSHandlers dance, and how the native messaging manifests get installed across six Chromium variants without them stepping on each other.

Similar Projects

Developer Tools●●Solid

NadirClaw, LLM router that cuts costs by routing prompts right

If you're burning through Claude/OpenAI credits, this is a low-friction stopgap: it classifies prompts in ~10ms and routes trivial tasks to cheaper/local models while reserving premium APIs for complex work. The agentic-task detection, reasoning-aware routing, session pinning and context-window fallback are practical touches that avoid mid-thread model bouncing and 429 failures. It isn't reinventing the space (OpenRouter and others exist), but it's focused on real-world cost tradeoffs and drop-in compatibility.

Solve My ProblemNiche Gem
amirdor
113mo ago