Polaris is a tiny native macOS menu bar app for your Polestar: battery, range, charging status and time-to-full, refreshed every five minutes and every minute while charging. It notifies you when charging starts, finishes or faults — and nothing else. A desktop widget in three sizes reads what the app already fetched, so it costs the car nothing. AppKit, not Electron. Your password lives in the Keychain, it talks only to Polestar's own API, and there are no trackers. MIT licensed.
Hi Product Hunt 👋
I drive a Polestar, and every time I wanted to know whether it had
finished charging I had to find my phone, unlock it, open an app and wait
for it to wake the car. That is a lot of ceremony for one number.
Polaris is that number, in the menu bar. Click it and you get the whole
picture: battery, range, charging state and time-to-full, the charger's
live power and whether it's AC or DC, odometer, service interval, and a
studio render of your exact car. It refreshes every five minutes, or every
minute once you plug in.
Three things I decided early and don't regret:
- Native AppKit, not Electron. The whole app is one small signed binary,
and it idles at nothing.
- No backend. There is no Polaris server – your Mac talks to Polestar's
own API with OAuth2/PKCE, your password and session live in the macOS
Keychain, and there are no analytics or trackers anywhere.
- Notifications only when something changed: charging started, charging
complete, charger fault. Each is its own switch, and nothing else ever
pings you.
The two things that took longest were not the ones I expected. Charging
power and AC/DC aren't in the GraphQL API at all, so that reads from the
gRPC battery service underneath it. And the desktop widget turned into a
lesson in code signing: WidgetKit only registers a sandboxed extension,
and macOS only honours an App Group container for a build signed with a
real team – so an ad-hoc build gets handed a container it is then denied
every read from.
It's free, MIT licensed.
Happy to answer anything – and if you have a Polestar and something reads
wrong, tell me which model and year and I'll fix it.
Type Anything