Skip to content

avalidurl/tickerline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tickerline

A Claude Code status line that turns your terminal into a rolling ticker tape of whatever you're talking about — stocks, crypto, and Polymarket prediction markets, resolved live. No watchlist, no dictionary: mention a company and its ticker appears.

Listed on claudelines.com — audited, free to install.

████░░░░░░ 42%  |  🌿 main  |  /tlm <n> opens a market
NVDA 210.96 ▲4.03%  |  CRWV 88.88 ▼0.91%  |  BTC 118,204 ▲1.2%  |  TSM 305.40 ▲0.6%   ← rolls
1. Will Nvidia hit $5T market cap in 2026? 64%  |  2. Anthropic IPO by 2027? 12%       ← rolls

Say "CoreWeave" in the conversation and CRWV joins the tape a refresh later. Move on to another topic and it self-clears. Both bands scroll like a broadcast ticker whenever they're wider than your terminal.

How it works

  • No dictionary. Capitalized names and $CASHTAGS from your last ~16 messages (yours and Claude's) are resolved to real tickers live against Yahoo Finance's search index; crypto is routed to CoinGecko for canonical prices. Resolutions are cached a day, so steady state costs zero network and renders in ~50 ms.
  • Stocks batch in one request (Yahoo spark endpoint), crypto in one request (CoinGecko), markets from Polymarket's keyless Gamma API, volume-ranked and cached 5 minutes.
  • A dim · after a quote means that market is closed (last data >20 min old) — the price is the last close, not live.

Open a market: /tlm

The second band is interactive through the /tlm slash command (installed by --init):

  • /tlm — numbered list of the markets currently scrolling, full questions (the band shows the same numbers)
  • /tlm 3 — opens market #3 directly: outcomes, prices, volume, end date, link — right in the chat
  • If the official Polymarket CLI isn't installed, it offers to install it (Homebrew) in the background; if it is, the market is tradeable from your terminal

Terminals with OSC-8 support (iTerm2, Kitty, WezTerm) can also Cmd+click any market in the band. Outside Claude Code, node tickerline.js markets prints the same list statically, and tlm.zsh ships a shell picker.

Install

node tickerline.js --init      # writes ~/.claude/tickerline.json + offers the /tlm command

Then add to ~/.claude/settings.json (the init prints this snippet with your absolute path):

{
  "statusLine": {
    "type": "command",
    "command": "node \"/path/to/tickerline.js\"",
    "refreshInterval": 1
  }
}

refreshInterval: 1 is what makes the bands actually roll. No config file is required — defaults work out of the box.

Try it without installing:

./demo.sh "what's your read on the nvidia and coreweave earnings"

Installed from claudelines.com?

The registry ships only the script — grab the /tlm command file separately:

curl -o ~/.claude/commands/tlm.md https://raw.githubusercontent.com/avalidurl/tickerline/main/tlm.md

(Or let your agent author its own from the script's contract — it's a plain prompt file.)

Configure

~/.claude/tickerline.json (or run --init):

{
  "modules": ["context", "git", "cost"],
  "ttl": 60,
  "ascii": false,
  "contextAware": true,
  "maxTopicTickers": 30,
  "scrollSpeed": 2,
  "polymarket": true,
  "maxPolyMarkets": 12,
  "hint": true
}
  • modules — row-1 side info, any order: context (context-window bar), git (branch, pure-fs — no shell), cost (session cost)
  • ttl — price cache seconds; scrollSpeed — columns/sec the tape advances
  • maxTopicTickers / maxPolyMarkets — band size bounds
  • hint — the /tlm <n> opens a market pointer on row 1 (shown only if /tlm is installed)

Env overrides: TICKERLINE_MODULES, TICKERLINE_TTL, TICKERLINE_CONTEXT_AWARE, TICKERLINE_ASCII, TICKERLINE_POLYMARKET, TICKERLINE_CONFIG. See why a ticker appeared: TICKERLINE_DEBUG=1.

Privacy & data

Context awareness works by sending capitalized words from your recent messages as search queries to Yahoo Finance, and matched entity names to Polymarket's public search — over HTTPS, keyless, with no other identifiers. That is the entire feature; if you don't want conversation-derived text leaving your machine, set "contextAware": false (and "polymarket": false), and the bar still renders its modules.

  • Hosts are pinned (query1.finance.yahoo.com, api.coingecko.com, gamma-api.polymarket.com); all input is validated before it reaches a URL.
  • The transcript is read locally, tail-only, and only if the path ends in .jsonl.
  • No shell execution, no keys, no settings modification. Cache files live in ~/.claude/ and are pruned automatically; writes are atomic so concurrent sessions never corrupt them.

Requirements

Node 14+ (Claude Code ships with a newer runtime). macOS, Linux, or Windows — use "ascii": true on terminals without Unicode.

About

Claude Code status line: a rolling ticker tape of whatever you're discussing — stocks, crypto, Polymarket — resolved live, no watchlist

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors