# idx-cli TODO ## ✅ Completed (v0.1.0) - [x] Provider abstraction (MarketDataProvider trait, Yahoo impl) - [x] `stocks quote ` — real-time quotes, multi-symbol - [x] `stocks history ` — historical OHLC data - [x] File cache with TTL + offline mode + stale-cache fallback - [x] Config system (TOML file, env vars, CLI flags, precedence) - [x] Output modes: table (human) + JSON (agent) - [x] 52-week range bar in quote table - [x] `cache info` / `cache clear` - [x] `config init` / `get` / `set` / `path` - [x] Pre-commit hooks (fmt, clippy, test) - [x] GitHub Actions CI - [x] Nix flake + devshell - [x] MIT license - [x] crates.io metadata ## ✅ Completed (v0.1.1) - [x] Technical analysis module (SMA, EMA, RSI, MACD, volume ratio) - [x] Signal interpretation (bullish/bearish/neutral consensus) - [x] `stocks technical ` — full technical analysis command - [x] Colored signal output (green/red/yellow) - [x] 1-year lookback for SMA200 coverage ## ✅ Completed (v0.1.1 — fundamental suite) - [x] `stocks growth ` — revenue/earnings growth with signals - [x] `stocks valuation ` — PE, PB, ROE, margins, EV/EBITDA with signals - [x] `stocks risk ` — D/E, current ratio, ROA with signals - [x] `stocks fundamental ` — composite growth + valuation + risk - [x] `stocks compare ` — side-by-side multi-symbol comparison - [x] `analysis/fundamental.rs` — fundamental analysis module (ported from idx-mcp) - [x] Yahoo quoteSummary endpoint parser (/v10/finance/quoteSummary) - [x] 41 tests passing (22 unit + 19 integration) ## 🚧 Next Up ## 📋 Backlog (per SPEC.md) - [ ] `market summary` — IHSG index, market breadth - [ ] `market movers` — top gainers/losers/volume - [ ] `market sectors` — sector performance overview - [ ] `screen query ""` — filter stocks by expression - [ ] `screen presets` / `screen run ` — built-in screener presets - [ ] `watchlist` commands — create, manage, live watch - [ ] `alerts` system (v0.2+) — price alerts with daemon - [ ] `completions ` — shell completion generation - [ ] CSV/TSV output formats - [ ] Additional providers (Alpha Vantage, Twelve Data, IDX official) ## 🐛 Known Issues - [ ] Yahoo Finance returns 429 from datacenter IPs occasionally - [ ] SMA200 trend shows "Insufficient data" if Yahoo returns < 200 candles - [x] Yahoo quoteSummary crumb auth — fixed via curl-impersonate-chrome (curl_chrome131) - fc.yahoo.com → A3 cookie + query1 getcrumb → crumb, both sent to quoteSummary - Requires nixpkgs#curl-impersonate-chrome in PATH (added to flake.nix + clan-private)