Show the tide in your Mac menu bar

NOAA’s tide stations report the water level every six minutes. Pick the station nearest your break or your dock and keep the number on screen.

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

Preview: the Oscilloscope 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.
  • A station id from tidesandcurrents.noaa.gov (find your station on the map; the id is a 7 digit number, like 9414290 for San Francisco).

Set it up

  1. Add a Web Address meter with your station in this address and the key path data.0.v:
    Web address
    https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?date=latest&station=9414290&product=water_level&datum=MLLW&units=english&time_zone=lst_ldt&format=json
  2. Refresh every 15 minutes. Set the range to the station’s usual span (for San Francisco, -1 to 7 feet) and the unit to ft.

Multimeter settings

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

Settings for this meter
SettingValue
SourceWeb Address
Web addressthe NOAA address above with your station
Key pathdata.0.v
Refresh every15 minutes
Rangelike -1 to 7
Unitft
LabelTIDE
FaceOscilloscope, Sparkline or Level Bar

Tested: Run on October 29, 2026: San Francisco 4.755 ft, The Battery (New York, 8518750) 5.157 ft; water temperature at The Battery 60.6 °F.

More on this source, including every format it reads, in the Web Address guide.

Limits

  • US stations only. Heights are relative to the station’s datum (MLLW: mean lower low water), so 0 is a low tide, not sea level.

Variations

Metric

Use units=metric and the unit m.

Water temperature

product=water_temperature (drop &datum=MLLW), key path data.0.v. Not every station has a thermometer.

Troubleshooting

What the meter says, why, and what to do
SymptomCauseFix
No number found in the responseThe key path doesn’t match the reply.Run curl -s with the address and read the JSON. Dots walk into objects, numbers pick array items (items.0.count).
Couldn’t reach the addressNo network, a typo in the host, or the service is down.Open the address in your browser. Multimeter tries again at the next refresh.
No number foundThe reply is an error object: the station doesn’t report that product.Open the address in a browser to read the error; try a nearby station.

Questions

Can it show the predicted next high tide?

The predictions product returns a list of times; a Script meter with jq could count minutes to the next one. The water level is the simple, live number.

Related

Put it in your menu bar

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