Show a stock price in your Mac menu bar

The Stocks widget lives in Notification Center; this lives in the menu bar, where you can see it without swiping. Yahoo Finance’s chart data answers without a key and includes the latest price for stocks, ETFs, indexes, currencies and crypto.

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

Preview: the Split-Flap 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 ticker as Yahoo Finance writes it: AAPL, ^GSPC for the S&P 500, VOO, EURUSD=X.

Set it up

  1. Check it in Terminal:
    Terminal
    curl -s -A 'Mozilla/5.0' https://query1.finance.yahoo.com/v8/finance/chart/AAPL | grep -o '"regularMarketPrice":[0-9.]*'
  2. Add a Web Address meter with your ticker in the address and the key path chart.result.0.meta.regularMarketPrice. Write ^ as %5E (the S&P 500 is %5EGSPC).
    Web address
    https://query1.finance.yahoo.com/v8/finance/chart/AAPL
  3. Refresh every 5 minutes. Prices move only while the market is open.

Multimeter settings

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

Settings for this meter
SettingValue
SourceWeb Address
Web addresshttps://query1.finance.yahoo.com/v8/finance/chart/TICKER
Key pathchart.result.0.meta.regularMarketPrice
Refresh every5 minutes
Labelthe ticker
FaceSplit-Flap, LCD Readout or Sparkline

Tested: Run on October 29, 2026: AAPL 349.21, the S&P 500 (%5EGSPC) 7,722.4, EUR/USD 1.1167. The percent-change command printed {"value": 1.7, "formatted": "AAPL 349.78"}.

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

Limits

  • This is Yahoo Finance’s public chart data, not a paid market data feed: prices can be delayed and Yahoo may answer 429 if an address asks too often. Every 5 minutes has been fine.
  • Outside trading hours the meter shows the last close.

Variations

Today’s change in percent, with the price as the text

A Script meter computes the change from the previous close and shows the price beside it. Range -5 to 5, unit %.

Command
curl -s -m 8 -A 'Mozilla/5.0' https://query1.finance.yahoo.com/v8/finance/chart/AAPL | jq '.chart.result[0].meta | {value: ((.regularMarketPrice / .chartPreviousClose - 1) * 1000 | round / 10), formatted: ("AAPL " + (.regularMarketPrice | tostring))}'

Indexes, funds, currencies

%5EGSPC (S&P 500), %5EIXIC (Nasdaq), %5EDJI (Dow), VOO, EURUSD=X, GC=F (gold futures).

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.
The server answered 429Yahoo is limiting requests from your address.Refresh every 15 minutes, and fewer meters on the same address.
No number found for an indexThe ^ wasn’t encoded.Write it as %5E.

Questions

Can it notify me when the price crosses a level?

Yes. In Customize This Meter, set alerts to High values (or Low values for a drop) with your level as critical, and turn on Notify me when it goes critical. Notifications repeat at most every 15 minutes.

Is the data real time?

Close to it for most US stocks, but treat it as a glance, not a trading feed.

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.

Related

Put it in your menu bar

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