Adam Godsall

Navigation

All projects

OpenRouter Monitor

Coming to the Mac App Store
OpenRouter Monitor menu bar panel showing demo account balance, current-key spending, a monthly budget and a keep-awake countdown.
Balance, spending, budget progress and keep-awake controls in the menu bar. Demo data shown.

Project overview

I built a macOS menu bar app for checking OpenRouter balance, spending and model activity, with budget alerts and keep-awake controls.

My role
Designer and developer
Platform
Native macOS utility
Built with
Swift, SwiftUI, OpenRouter API, Keychain

The problem

I wanted to check my OpenRouter balance and recent spending without opening the browser dashboard each time.

My approach

I kept quick checks in the menu bar and put account activity, model usage and pricing in a separate dashboard.

Current result

The app brings monitoring, budget alerts and keep-awake controls together. Its Mac App Store release is in preparation.

Decisions

Using OpenRouter meant returning to its dashboard to check balance, spending and recent model activity. Those were the checks I wanted within reach while working.

I chose a menu bar app for the account overview, with separate views for activity and model usage. Detailed account management stays in OpenRouter.

Keep the overview small

I kept balance, spending and recent activity on the overview. You can check those figures before opening a more detailed view.

Use the native platform

I built the interface in SwiftUI and stored API credentials in the macOS Keychain. The app opens from the menu bar when needed.

Separate overview from detail

I gave spending trends and model usage their own dashboard views. The menu bar remains compact, with more detail available when a check needs it.

Keep credentials and cached data separate

The secret API key is stored in Keychain. Settings and usage snapshots stay in a local data file, with a JSON export that excludes the secret key.

The work

The dashboard brings account balance, recent spending and credit runway together. Demo data shown.

Quick checks from the menu bar

The compact panel shows balance, current-key spending and budget progress. Keep-awake controls are close at hand while a long task is running.

Account activity and model pricing

The dashboard has Overview, Models and Activity views for balances, grouped usage, spending trends and tracked prices. Account-wide information requires a management-capable OpenRouter key.

Budgets and local controls

Settings cover budgets, notifications, model tracking, refresh intervals and JSON export. Keep-awake sessions have optional display and battery controls.

Current result

Product information and support

The app has a product page, support contact and privacy policy. Its Mac App Store release is in preparation.

Account checks from the menu bar

You can check balance, spending and model activity in the native Mac app.

Account management stays in OpenRouter

I kept billing changes and detailed account management in OpenRouter.

Limitations, lessons and next steps

Limitations

  • I store API credentials in the macOS Keychain, outside application preferences and logs.
  • The overview needs to fit a menu bar panel, with detailed usage in separate views.
  • I needed to label account data and handle loading, missing data and errors.

Reflections and next steps

  • I started with the account overview, then added the activity and model views.
  • I kept detailed account management in OpenRouter so the menu bar app could stay focused on monitoring.
  • I added budget alerts, model-price tracking and keep-awake controls as the monitoring workflow developed.
  • The size of a menu bar panel made me decide which information belonged on the overview and which needed its own view.
  • Credential storage, loading and error states needed attention alongside the account displays.