mirror of
https://github.com/0xrsydn/idx-cli.git
synced 2026-08-07 01:33:52 +00:00
No description
- Rust 92.9%
- Shell 6.7%
- Nix 0.4%
Yahoo Finance blocks standard ureq/rustls via TLS fingerprinting (JA3/JA4). Reverse-engineered from yfinance source: they use curl_cffi with Chrome impersonation. Fix: - Fetch cookie via curl-impersonate from fc.yahoo.com - Fetch crumb via curl-impersonate from query1.finance.yahoo.com/v1/test/getcrumb (correct URL: getcrumb, not getCrumb or csrfToken) - Parse Netscape cookie jar format, send cookies as header to quoteSummary - 401 retry: clear crumb + cookie jar, re-auth on next attempt - Crumb validation: reject HTML, empty, rate-limit responses - Add curl-impersonate-chrome to flake.nix devShell |
||
|---|---|---|
| .github/workflows | ||
| src | ||
| tests | ||
| .envrc | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| AGENTS.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
| TODO.md | ||
idx-cli
CLI tool for Indonesian stock market (IDX) analysis, built in Rust for humans and AI agents.
Installation
cargo install idx-cli
nix run github:0xrsydn/idx-cli
Quick start
idx stocks quote BBCA
idx stocks quote BBCA,BBRI,BMRI
idx -o json stocks quote BBCA
idx stocks history BBCA --period 3mo
idx config init
idx cache info
idx --offline stocks quote BBCA
Features
- Provider abstraction (swap data sources behind one interface)
- Local file cache with TTL
- Offline mode with stale-cache fallback
- Human table output and machine-friendly JSON output
Configuration
Config file location:
~/.config/idx/config.toml
You can configure using:
- Config file (
idx config init,idx config set) - Environment variables
- CLI flags
Precedence order:
- CLI flags
- Environment variables
- Config file
- Built-in defaults
Agent-friendly usage
- Use
idx --helpand subcommand help for discoverability - Use
-o json/--output jsonfor structured output - See
skills/for agent workflows and task recipes
Development
nix develop
cargo test
Prek hooks are configured for quality gates:
- pre-commit:
cargo fmt --check+cargo clippy -- -D warnings - pre-push:
cargo test
License
MIT