No description
  • Rust 92.9%
  • Shell 6.7%
  • Nix 0.4%
Find a file
Ciphercat f89f4c90ce fix(yahoo): use curl-impersonate for crumb auth (TLS fingerprinting)
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
2026-03-06 07:31:11 +00:00
.github/workflows ci: add GitHub Actions workflow for fmt clippy test 2026-03-05 19:35:31 +00:00
src fix(yahoo): use curl-impersonate for crumb auth (TLS fingerprinting) 2026-03-06 07:31:11 +00:00
tests feat(fundamental): add fundamental analysis suite (growth, valuation, risk, compare) 2026-03-06 05:54:37 +00:00
.envrc dev: add flake.nix and .envrc for Rust dev environment 2026-03-05 16:23:49 +00:00
.gitignore feat: implement idx-cli MVP foundation, provider abstraction, and core quote/history commands 2026-03-05 17:54:52 +00:00
.pre-commit-config.yaml ci: convert prek.toml to .pre-commit-config.yaml (prek 0.3 compat) 2026-03-05 18:32:48 +00:00
AGENTS.md docs: add AGENTS.md + CLAUDE.md symlink for agent-first development 2026-03-05 18:00:29 +00:00
Cargo.lock Fix Yahoo schema handling, integer IDR prices, and resilience 2026-03-05 19:26:35 +00:00
Cargo.toml chore(release): add crate metadata for crates.io readiness 2026-03-05 19:36:29 +00:00
CLAUDE.md docs: add AGENTS.md + CLAUDE.md symlink for agent-first development 2026-03-05 18:00:29 +00:00
flake.lock feat: implement MVP foundation — quote, history, provider abstraction 2026-03-05 17:59:50 +00:00
flake.nix fix(yahoo): use curl-impersonate for crumb auth (TLS fingerprinting) 2026-03-06 07:31:11 +00:00
LICENSE docs: add MIT license for 2026 contributors 2026-03-05 19:35:06 +00:00
README.md docs: add comprehensive README for v0.1 2026-03-05 19:32:14 +00:00
TODO.md docs: update TODO.md — mark fundamental suite done, add crumb auth issue 2026-03-06 05:55:14 +00:00

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:

  1. CLI flags
  2. Environment variables
  3. Config file
  4. Built-in defaults

Agent-friendly usage

  • Use idx --help and subcommand help for discoverability
  • Use -o json / --output json for 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