Inspiration

As AI developers, we subscribe to multiple premium model suites (such as OpenAI Codex and Google Antigravity) to stay competitive. However, we face three constant annoyances:

  1. Quota Blindness: We get suddenly blocked mid-coding because we unknowingly exhausted our daily or weekly limits.
  2. Subscription Fragmentation: We have to open different dashboards or run command-line commands just to see our usage details.
  3. Efficiency Dilemma: We default to using expensive reasoning models (like GPT-5.6 Sol max) when a much cheaper model (GPT-5.6 Sol medium or Gemini Pro) would achieve the same performance for our current task.

We built Notchvisor to solve this. It turns the MacBook's physical notch (the screen cut-out) into a beautiful "Dynamic Island" status panel. With a quick hover, developers can instantly see their remaining AI quotas and the current most optimal model configuration.

What it does

Notchvisor is a local-first macOS utility:

  • Dynamic Island Integration: Pinned to the top notch (or a floating capsule on non-notch monitors), expanding on mouse hover and collapsing automatically to remain completely unobtrusive.
  • Local-First Quota Retrieval: Queries local developer environments securely. It extracts OpenAI Codex quotas from codex app-server via JSON-RPC stream, and Google Antigravity status from local daemons or agy CLI using simulated PTY sessions.
  • Zero-Credential Security: Since it talks only to local endpoints, it never asks for, reads, or transmits your OAuth tokens or API keys to any cloud servers.
  • Balanced Model Recommendation: Fetches public IQ benchmarks from Codex Radar and uses a cost-efficiency utility function to highlight the most optimal model choice.

The Optimization Algorithm

To recommend the best model, Notchvisor implements a cost-benefit calculation. Let $S_{max}$ be the maximum IQ score of the strongest available model on Codex Radar, $S_m$ be the score of a candidate model configuration $m$, and $C_m$ be its USD cost.

We first filter the candidate set $\mathcal{M}$ to find models within $90\%$ of the strongest model's intelligence: $$\mathcal{M}{balanced} = { m \in \mathcal{M} \mid S_m \ge 0.9 \times S{max} }$$

From this subset, the "Balanced Recommendation" $m^$ is selected by minimizing the cost: $$m^$ = \arg\min_{m \in \mathcal{M}_{balanced}} C_m$$

If there is a tie in cost, it chooses the model with the higher IQ score: $$m^* = \arg\max_{m \in \mathcal{M}{balanced}, C_m = C{min}} S_m$$

This formula ensures developers use the most cost-efficient configuration without sacrificing quality.

How we built it

We built the macOS application using native Apple technologies:

  • Swift 6 & SwiftUI: For the dynamic interface and views.
  • AppKit: For custom NSPanel window controls, enabling interaction outside main spaces and support for full-screen games or video players.
  • CADisplayLink: To drive a custom spring physics animation when expanding or collapsing the island.
  • PTY (openpty) & IPC: Custom Swift bindings to interact with Unix pseudo-terminals and stream stdout line-by-line using asynchronous Collectors.

Challenges we faced

  1. PTY Simulation: Google Antigravity's CLI tool agy expects a terminal shell. We solved this by using low-level C API openpty to establish a virtual terminal, enabling the Swift process to capture interactive quota summaries correctly.
  2. Sandbox & Permissions: Accessing local CLI utilities requires escaping the App Sandbox. We configured specific entitlements and search paths (CODEX_CLI_PATH, ANTIGRAVITY_CLI_PATH) so developers can run the app without compromising macOS system integrity.
  3. MacBook Notch Geometry: Different MacBook screen safe areas vary. We implemented a geometry calculator that dynamically queries system screens and computes pixel-aligned frames so that the island wraps perfectly around physical notch sizes.

What we learned

We learned that developers care deeply about data privacy. They do not want another SaaS tracking their API tokens. By keeping all quota lookups local-only (via loopback addresses and IPC), we built trust and created a tool developers are happy to keep running 24/7.

Built With

Share this project:

Updates