Omahub
← All plugins
D

Stock Ticker

by dchristensen8

Real-time stock price ticker with interactive chart. Shows ticker and price in the bar; click for detailed view with line chart and timeframe selector.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
0e603dd
Scanned
1 week ago

No potentially dangerous behavior detected in the analyzed commit.

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

None
AI risk level
None
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
0e603dd
Reviewed
1 week ago

The plugin is a straightforward stock-ticker widget that fetches public price data from Yahoo Finance via curl and displays it in the Omarchy bar. No install-time scripts, obfuscated code, credential access, destructive operations, or hidden persistence were found. The deterministic scan found no issues, and the sampled source is consistent with the documented behavior.

How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/dchristensen8/omarchy-stock-ticker --enable
Widgets #bar #quickshell #system

Stock Ticker

Real-time stock price ticker with an interactive line chart for the Omarchy Quattro bar.

Screenshots

Details panel Watchlist
Details panel Watchlist

Install

omarchy plugin add https://github.com/dchristensen8/omarchy-stock-ticker.git --enable

Usage

Bar label

Shows the ticker (uppercase), the latest price, and the day's percent change, e.g. MU: 937.85 -7.3%. The label color follows the day's move: green when up, red when down, dimmed when the data is stale (no successful fetch within three refresh cycles).

Click the label to open the details panel; right-click opens the watchlist; middle-click refreshes immediately.

Watchlist

Right-click the bar label to open the shared watchlist pane. It shows every symbol you're tracking with a live mini-quote (price + day's change, color-coded the same as the bar label).

  • Click a row to switch the widget to that ticker (closes the watchlist pane)
  • Hover a row to pre-highlight it, then Enter to select
  • ↑ / ↓ (or k / j) to move the selection
  • x or the red ✕ to remove a symbol
  • a or the "+ add symbol" row to add one; additions are validated against Yahoo before they are saved (typos are rejected with "Ticker not found")

The watchlist is stored in ~/.local/share/stock-ticker/watchlist.json (symbols plus a cache of the last-known mini-quotes, so the pane isn't blank on first open). The file is shared by all instances of the widget, and writes are merged against the latest on-disk state. Mini-quotes refresh sequentially — one request at a time, every 45 seconds — only while the watchlist pane is open, so a large list can't hammer the API or interfere with the primary ticker's own retry/backoff behavior.

Details panel

  • Company name, ticker (editable — see below), price with currency
  • Day's change ($ and %), previous close, currency
  • Day range bar with a marker at the current price, plus day low → high
  • Click Day or 52W to switch the range bar between the daily range and the 52-week range (resets to Day when the panel closes); 52-week low → high shown alongside
  • After-hours / pre-market price in the stats column (e.g. post 310.22), colored by the change vs the regular close (today's close after hours, the prior close pre-market); the bar's main price stays on the regular close
  • Volume (abbreviated: 12.4M, 340K)
  • "Updated Xs ago" freshness line (amber when stale)
  • Interactive line chart with a hover crosshair showing price · time
  • Timeframe selector: 1D, 1W, 1M, 6M, 1Y, 5Y
  • "Ticker not found" feedback when a symbol does not exist

Keyboard

Key Action
Enter Edit ticker symbol (quote pane) / select highlighted row (watchlist pane)
← / → (or h / l) Step through timeframes
↑ / ↓ (or k / j) Move watchlist selection
x Remove the selected watchlist row
a Add a symbol (watchlist pane)
r Refresh now
Esc Close the panel
Tab / Shift+Tab Switch to the neighboring panel

Refresh behavior

  • The plugin refreshes automatically once per minute while the NYSE is open (9:30–16:00 ET, Mon–Fri) and once every 3 minutes while it's closed, so the after-hours/pre-market price keeps tracking without hammering the API.
  • A manual refresh overrides the schedule and fetches immediately: middle-click the bar label, or press r in the panel.
  • On consecutive fetch failures the interval backs off exponentially (up to 8×), and resets after a successful fetch.
  • An invalid ticker stops automatic retries until you edit the symbol.

Multiple tickers

The plugin supports multiple instances (allowMultiple: true). Add more than one entry to the bar layout, each with its own ticker. All instances share one watchlist (see above), so "stocks I'm tracking" lives in one place regardless of how many widgets are on the bar:

{
  "id": "dchristensen8.stock-ticker",
  "ticker": "MSFT"
},
{
  "id": "dchristensen8.stock-ticker",
  "ticker": "AAPL"
}

Configure

Change the tracked stock in ~/.config/omarchy/shell.json:

{"id": "dchristensen8.stock-ticker", "ticker": "MSFT"}

Or click the ticker name in the panel and press Enter to edit it interactively.

Settings

Key Type Default Description
ticker string AAPL Stock symbol, e.g. AAPL, MSFT, GOOGL

Tests

Pure helpers in Model.js are covered by Node's test runner:

node --test tests/model.test.js

Notes

  • This plugin uses an unofficial/undocumented Yahoo endpoint — not a supported API — and may break at any time. It may also be rate-limited. The plugin is intentionally conservative (1 min during market hours, 3 min otherwise); with multiple instances the default allowMultiple means several widgets can still be polling at once.
  • Ticker input is validated against an allowlist (A–Z, 0–9, and ./-/^/=, up to 10 chars) before any request is made, and the watchlist is capped at 50 symbols so a hand-edited file can't balloon the UI or the fetch queue.

Remove

omarchy plugin remove dchristensen8.stock-ticker

Dependencies

  • curl (for Yahoo Finance API requests)
  • Internet connection (for live price data)

License

MIT