Show your DigitalOcean bill in your Mac menu bar

Cloud bills surprise people at the end of the month. This one is in the corner of your screen the whole month, and turns yellow when it passes your budget.

Recipe tested October 29, 2026 with Multimeter 1.1. Source: Script.

Preview: the Gradient Track face and two alternatives, with sample values like the ones this recipe returns.

What you need

  • Multimeter for macOS 13 or later, $19.99 once.
  • The direct download version of Multimeter from this site (the Script source isn’t in the Mac App Store version).
  • doctl, signed in: brew install doctl, then doctl auth init with a read-only token.

Set it up

  1. Check it in Terminal:
    Command
    doctl balance get -o json
  2. Add a Script meter with that command and the key path month_to_date_usage.
  3. Refresh every 15 minutes. Set the range to 0 to your monthly budget and alerts on High values near it.

Multimeter settings

In Customize This Meter… (from the meter’s menu):

Settings for this meter
SettingValue
SourceScript
Commanddoctl balance get -o json
Key pathmonth_to_date_usage
Refresh every15 minutes
Range0 to your budget, like 100
AlertsHigh values: warning at 80% of budget, critical at budget
LabelDO
FaceLevel Bar, Gradient Track or Pie

Tested: Run on October 29, 2026 on our own account: returned month-to-date usage in about 1.5 seconds.

Script meters need the direct download version of Multimeter from this site, which is the one on sale now. How commands run, the PATH they see and the 10 second limit are in the Script meters guide.

Limits

  • DigitalOcean updates the balance a few times a day, not live.

Variations

Without doctl

Use the API with a read-only token from the Keychain (see the Keychain step on other recipes):

Command
curl -s -m 8 -H "Authorization: Bearer $(security find-generic-password -s digitalocean -w)" https://api.digitalocean.com/v2/customers/my/balance

Troubleshooting

What the meter says, why, and what to do
SymptomCauseFix
The script didn’t print a numberThe command failed or printed an error message instead.Run the exact command in Terminal. If it works there, check for tools that live outside the meter’s PATH and use their full path (which tool).
The script took longer than 10 secondsA slow network call. Multimeter stops scripts after 10 seconds.Keep the -m timeout on curl, and refresh less often.
Scripts need the version from multimeterapp.comThis copy of Multimeter came from the Mac App Store, which can’t run scripts.Use the direct download version, or run the command from cron or launchd and point a File meter at its output.
Unable to authenticate youdoctl isn’t signed in, or the token was revoked.Run doctl auth init again.

Questions

Does this work in the Mac App Store version?

Script meters need the direct download version from multimeterapp.com, because the App Store sandbox doesn’t let apps run your commands. Web Address, File and Sent Value meters work in every version.

Does it need a token that can change things?

No. Create the token with read scope only.

Related

Put it in your menu bar

$19.99 one-time. No subscription. Needs macOS 13 Ventura or later.