macOS menu bar account and usage monitor · Released application; package metadata reports version 1.1.8.

timharris707/modeldeck

Source-visible macOS 14+ menu bar application with a bundled localhost Node daemon that monitors remaining Claude Code and Codex CLI rate-limit windows across isolated accounts, alerts on low capacity, and switches the account used by new CLI sessions without acting as a Claude Code plugin.

AI coding agentsClaude CodeCodex CLIusage monitoringrate limitsaccount managementdeveloper productivitymacOS utilitieslocal-first software
Routing score
80.0
Readiness
Usable through a signed, notarized DMG for documented macOS 14+ workflows, with source builds requiring additional tooling.
License
NOASSERTION
Maintenance
active
Components
20
Revision
0

Selection

Select when

  • You use Claude Code or Codex CLI on macOS 14 or newer.
  • You maintain multiple provider accounts or subscriptions.
  • You need live remaining-capacity and reset-time visibility.
  • You want low-capacity notifications without repeated nagging.
  • You want one-click profile activation for new terminal sessions.
  • You prefer a local application with no hosted backend.
  • You need Claude and Codex usage shown in one interface.
  • You want provider credentials to remain in provider-managed profiles and Keychain storage.

Boundaries

Avoid when

  • You need Windows or Linux support.
  • You need a native Claude Code plugin, hook, command, or skill.
  • You need cloud synchronization or remote team dashboards.
  • You require commercial usage rights under a permissive open-source license.
  • You need switching to alter already-running CLI sessions.
  • You use only API-key billing without the documented CLI account workflows.
  • You cannot permit a bundled localhost background service.
  • You need independently audited security or privacy guarantees.

Strengths

Capabilities

Shows Claude Code and Codex CLI accounts together in a native menu bar popover.Displays remaining percentages and reset times for session, weekly, and model-scoped limit windows.Highlights the worst remaining window for each account.Supports sorting by next reset, lowest remaining capacity, or provider.Posts one macOS notification when an account crosses a configured low or critical threshold.Can pin one account or the active account percentage in the menu bar.Activates an isolated Claude or Codex profile for new terminal sessions without stopping existing sessions.Reports activation as effective, identity-mismatched, or identity-unverified after verification.Warns when multiple accounts appear to share the same credential.Guides users through provider-owned browser sign-in for each isolated profile home.Reports installed and latest CLI versions plus per-account authentication health.Stores settings, usage history, and managed profile homes in a local owner-only application directory.Uses the official Codex app-server stdio protocol for Codex usage reads.Uses Anthropic's native usage endpoint with the credential already managed in each Claude profile.Offers an optional read-only localhost usage dashboard controlled by a setting.Supports launch at login through macOS SMAppService.Can optionally check GitHub releases daily and install verified updates.Bundles the background daemon in the release DMG and registers it with user consent.Provides Node and Swift test suites in the documented source layout.Leaves running Claude Code and Codex sessions untouched during account activation.

Risk profile

Risks and limitations

  • Uncertainty: only selected first-party files were supplied, so daemon implementation, database schema, account-switching code, update verifier, managed proxy, and release workflows were not directly inspected.
  • Uncertainty: repository metadata and documentation dates are in 2026 relative to this analysis context, so current release status, activity, and adoption cannot be independently reconciled.
  • Uncertainty: a repository binding document describes this repository as a public release mirror of a separate private development repository, so source and issue-history completeness are unclear.
  • Security, privacy, credential-isolation, update-signature, and no-telemetry claims are repository-authored and were not independently audited.
  • The supported desktop platform is macOS 14 or newer; no Windows or Linux application is documented.
  • Claude Code and Codex CLIs must already be installed for the provider workflows a user wants to track.
  • Account activation affects only new terminal sessions and intentionally leaves running sessions unchanged.
  • Removing ModelDeck may leave its locally generated Keychain items unless the user deletes them separately.
  • Deleting ModelDeck's application-support directory also removes the managed isolated sign-ins stored under that directory.
  • The PolyForm Noncommercial license reserves commercial rights and is not a standard permissive open-source license.
  • Optional update checks and approved downloads contact GitHub, while usage reads contact the configured providers.
  • Provider endpoints, CLI protocols, authentication storage, limit schemas, and plan behavior can change independently of ModelDeck.

The documented daemon binds only to 127.0.0.1, rejects unexpected Host and Origin headers, and requires a per-server token plus SameSite=Strict cookie for mutations. State is described as owner-only SQLite. Updates are described as EdDSA- and Apple-signature-verified. These controls were not independently inspected or audited.

Component inventory

20 documented components

standalone_application

ModelDeck

Local-first macOS companion for monitoring and switching Claude Code and Codex CLI accounts; no native Claude Code plugin is documented as the product mechanism.

README.md
desktop_gui

ModelDeckMac

Native SwiftUI MenuBarExtra client for the local daemon, including the deck popover and Settings window.

macos/ModelDeckMac/
user_interface

Usage deck popover

Shows per-account remaining limits, reset times, plan tiers, model-scoped caps, and provider-aware sorting.

macos/ModelDeckMac/Sources/ModelDeckMac
workflow

Account activation

Atomically switches the provider profile used by new terminal sessions and reports effective, mismatched, or unverified identity state.

macos/ModelDeckMac/Sources/ModelDeckMac
notification_surface

Usage alerts and menu bar status

Displays healthy, low, or critical menu bar state and posts one notification when remaining usage crosses a configured threshold.

macos/ModelDeckMac/Sources/ModelDeckMacCore/UsageNotifications.swift
status_surface

CLI health view

Reports installed versus latest Claude Code and Codex CLI versions plus per-account authentication health.

macos/ModelDeckMac/Sources/ModelDeckMac
localhost_service

ModelDeck local daemon

Node.js and SQLite API service that reads provider usage, manages state, and serves the native app on loopback.

src/
web_dashboard

Read-only usage dashboard

Optional single-page usage analytics view served by the daemon on its loopback listener.

dashboard/; src/dashboard-app.mjs
system_service

Launch at login

Starts ModelDeck automatically through macOS SMAppService.

macos/ModelDeckMac/Sources/ModelDeckMacCore
update_workflow

ModelDeck updater

Optionally checks public GitHub releases, verifies approved downloads, installs updates, and relaunches the app.

README.md
command_line_entrypoint

modeldeck executable

Package-defined command-line entry point for the repository's local control plane.

bin/modeldeck.mjs; package.json
claude_code_skill

Orchestrate skill

Repository-local Claude Code skill documented as the authoritative orchestrator for lane routing, verification, review, and merges.

.claude/skills/orchestrate/SKILL.md
claude_code_plugin_integration

team-workflow plugin integration

Repo configuration enables an external team-workflow pack whose skills are bound to this repository's tracker, review, memory, and handoff conventions.

.claude/settings.json; docs/agents/team-workflow.md
claude_code_skill

team-workflow setup skill

Binds or refreshes repository-specific tracker, verification, decision, handoff, and workflow facts.

docs/agents/team-workflow.md
claude_code_skill

Adversarial review skill

Provides the everyday review floor, using repository-proven defect classes and mandatory security, accessibility, or compatibility lenses where applicable.

docs/agents/team-workflow.md; docs/agents/defect-classes.md
claude_code_skill

Codebase review skill

Runs a read-only repository review lane and records each run as a tracker issue for disposition.

docs/agents/team-workflow.md
claude_code_skill

Domain memory skill

Maintains decision records and terminology under the documented repository memory home and size bound.

docs/agents/team-workflow.md
workflow_command

Codex lane launcher

Repository wrapper documented as the required launcher for Codex-backed implementation lanes.

scripts/lane-codex.sh
workflow_command

Lane watcher

Watches repository lane execution while the manifest records actual model, effort, launch, and exit data.

scripts/lane-watch.mjs

Technical profile

Requirements and configuration

Architecture
Native SwiftUI MenuBarExtra client communicating over HTTP with a local Node.js API daemon and SQLite state store.
AppRuntime
macOS 14+ native Swift and SwiftUI application packaged through SwiftPM.
DaemonRuntime
Node.js ES modules; package engines require Node.js 24.16.0 or newer for source use.
LocalEndpoint
HTTP on 127.0.0.1:3867 by default, with documented port overrides.
Storage
Owner-only SQLite and application data under ~/Library/Application Support/ModelDeck by default.
ClaudeIntegration
Reads Anthropic usage through the native usage endpoint using credentials already held in isolated CLAUDE_CONFIG_DIR profiles.
CodexIntegration
Reads usage through the official codex app-server stdio protocol using isolated CODEX_HOME profiles.
Authentication
Provider sign-in remains in provider browser flows and profile or Keychain storage; daemon mutations use a ModelDeck-generated local token.
DesktopServices
Uses SMAppService for launch at login and UNUserNotificationCenter for usage alerts.
Dashboard
Optional read-only React dashboard compiled into one self-contained HTML artifact and served by the loopback daemon.
Distribution
Signed and notarized DMG is documented, with Homebrew uninstall paths also described.
License
PolyForm Noncommercial License 1.0.0 with commercial rights reserved.
RepositoryVersion
package.json reports 1.1.8.
Testing
Documented Node test suite and Swift Testing suite cover daemon and native app behavior.
UpdateModel
Optional daily GitHub release check with approved or automatic-on-relaunch installation after documented signature verification.

Classification

How it enters the stack

Standalone ApplicationDesktop GuiInfrastructure

Evidence: ModelDeck installs as a self-contained macOS menu bar app with a bundled localhost daemon and operates beside Claude Code and Codex. It reads usage and switches isolated profile homes for new sessions, but no Claude Code plugin, skill, hook, or context injection is documented.

Standalone · low setup effort · high confidence · automated

Evidence and risk

Primary sources

first_party_fileREADME.mdhttps://github.com/timharris707/modeldeck/blob/main/README.md
first_party_filepackage.jsonhttps://github.com/timharris707/modeldeck/blob/main/package.json

Routing context

Conflicts, complements, and synergies

integrates_with

gh_openai_codex

ModelDeck monitors Codex CLI usage through codex app-server and activates isolated CODEX_HOME profiles for new Codex sessions.

high confidence