---
title:

two claude desktops and a tray selector for claude://

date: 2026-07-27
draft: false
---

The full prompt is in the gist

A warning: I have no idea whether this works for you or what it does to your system. Don’t run it in YOLO!

An experiment in “intent distribution”. From a single prompt, the agent makes a second copy of claude desktop tied to a separate account and writes a tray app that intercepts claude:// links and asks which copy should open them. The same app shows usage and a forecast for both subscriptions.

The selector panel: both claude desktop copies with usage bars

Who might find this useful

Anyone who:

  • is on macos;
  • works in claude desktop;
  • has a personal and a work claude account;
  • is on the max tier;
  • suffers now and then when signing in.

What the agent does from the prompt

The first part is a duplicate of the app. The agent copies the claude desktop bundle into Claude Work.app, strips the provisioning profile, draws a separate icon, edits Info.plist, adds its own scheme and a launch wrapper with its own CLAUDE_CONFIG_DIR, then signs everything with an ad-hoc signature, from the nested components outward. The copy keeps the claude: scheme — without it sign-in doesn’t go through.

The second part is a background app in the menu bar. It declares itself the handler for claude://, finds every installed copy through LaunchServices and shows a selector: which copy opens the link. Next to that — usage limits for both subscriptions as bars with a forecast, a tray icon with a badge, and a toggle for “take the scheme back after rebuilds”.

The limits come from an undocumented Anthropic endpoint, the tokens from the macos keychain. No dependencies, only SwiftUI and AppKit; the minimum is macos 13 and Swift 6.0.