A Go terminal UI that polls the top-gainers list and flags NEW / SPIKE / PUMP / SETUP alerts in real time. It ships as a single binary, and its config can be edited inside the app.
The screener line needed a live watcher on the desk's screens, not an after-the-fact report. I rewrote the Python version in Go for concurrency, performance and a single terminal surface.
scraper top-gainers poll
|
v
engine rank movement
rolling-window volume baseline (300 s)
classify: NEW | SPIKE | PUMP | SETUP
shared MatchesFilters helper
| ^
v |
ui (Bubble Tea) finviz client -> fundamentals
dashboard, config preview panel, filters
boot screen, health check, session persistence
packages: config / engine / finviz / health / scraper / session / ui
| date | result |
|---|---|
| 2026-01-09 | Go TUI initialised; the Python-to-Go rewrite recorded |
| 2026-01-21 | Thresholds redefined: SPIKE 1.5x -> 2.0x; PUMP moved from a volume multiple to price change % |
| 2026-01-23 | Session persistence, [SETUP] alert, configurable delta window, display filters |
| 2026-08-18 | Finviz integration, health check, boot screen; legacy Python scraper removed; responsive columns |
VOLUME CHECKER window 300s spike>=2.0x pump>=+10% health ok # TICKER LAST %CHG VOLx RANKΔ ALERTS 1 AAAA 3.42 +64.1% 8.7x ▲2 09:41:07 [SPIKE] AAAA 8.7x 2 BBBB 1.18 +41.9% 5.2x ▲5 09:40:52 [PUMP] BBBB +12% in 300s 3 CCCC 7.05 +22.4% 2.3x ▼1 09:39:30 [SETUP] CCCC 4 DDDD 0.87 +18.0% 1.4x ▼1 09:38:11 [NEW] DDDD 5 FFFF 4.66 +15.3% 1.2x NEW 09:37:48 [NEW] FFFF 6 EEEE 12.30 +11.6% 1.1x ▼3 [c] config [f] filters [s] save session [q] quit user ████████ feed ██████████