DEV Community

Silas C
Silas C

Posted on

I replaced dashboard-tab checking with a menu bar glance for AI coding workflows

When I am deep in a coding session, context switching is expensive.

I kept bouncing between provider dashboards and terminal checks just to answer basic operational questions:

  • Are my local services still running?
  • How close am I to quota limits?

That loop sounds small, but repeated enough times it kills flow.

The problem I wanted to remove

Most tooling gives you information, but not at the point where you need it. For me, the point of need is the menu bar, not another browser tab.

Terminal checks are great, but they are reactive. I only run them after something feels broken.

Dashboard pages are detailed, but they are also heavy. They pull me out of implementation mode and into monitoring mode.

What I built instead

I built Pulse as a native macOS menu bar utility that does one thing well: give me immediate visibility into local service health and AI quota state.

The design goals were strict:

  1. Keep it native and lightweight (SwiftUI, no Electron)
  2. Keep interaction latency low
  3. Keep the surface area small

If a tool needs a manual to explain itself, it is already too much for this job.

Why native mattered here

A lot of dev utilities become mini platforms over time. That can be useful, but this one is intentionally narrower.

Native gave me a few practical wins:

  • Better memory behavior for always-on usage
  • Faster startup and interaction
  • Cleaner fit with macOS menu bar ergonomics

Tradeoff: macOS-only scope for now.

Workflow change: before vs after

Before:

  • Open provider dashboard
  • Check usage
  • Switch back
  • Notice an endpoint failed later
  • Open terminal and inspect process/port

After:

  • Glance at menu bar state
  • If red, restart or inspect immediately
  • Keep coding

This is not a dramatic productivity story. It is a friction-removal story.

What I learned building this

  1. Visibility beats volume of metrics. A few high-signal indicators are better than a crowded panel.
  2. Status language matters. “Probably fine” UI states are useless; explicit states are better.
  3. Small reliability tweaks compound. Better refresh cadence and clearer state transitions reduce false alarms.

What I would improve next

  • More provider-specific quota normalization
  • Better handling for edge states (partial auth, stale refresh)
  • Optional historical trend view without turning it into a dashboard

If you are building similar tooling

Start from the context-switch you hate most.

Then remove exactly that, with the smallest possible interface.

For me, that was replacing scattered checks with one menu bar glance.

Repo: https://github.com/silas-maven/pulse

Top comments (0)