mirror of
https://github.com/0xrsydn/idx-cli.git
synced 2026-11-07 01:35:36 +00:00
`idx stocks actions SYM [--kind ...]`: one stock's cash and stock
dividends, bonus shares, rights, warrants, splits and reverse splits,
meetings, public exposes and tender offers (`--kind ipo` adds its IPO),
newest first. `idx stocks calendar [--from] [--to] [--kind ...]`: the
market's actions dated in the range (default today and 30 days ahead),
oldest first. MCP: get_corporate_actions, get_corporate_calendar.
Stockbit's `/corpaction/{type}` serves one kind per request; each type has
its own field prefix and list key, so entitlements are read by field
suffix. An action's `date` is the cum date for entitlements, else the
event's first day. Dividends keep their decimals. One request per kind,
cached 6 hours. AUTHERROR without a session.
Fixtures are the 2026-11-03 recordings (market-wide ones trimmed to
October-December). Goldens added; help-stocks and completions-bash gain
the two subcommands, MCP tools.json the two tools (regenerated with
UPDATE_GOLDEN=1). The MCP docs counted 17 tools without stockbit_login;
now 20.
Claude-Session: https://claude.ai/code/session_01RqPPVeVDrnLoP7NUZmLRxY
77 lines
4.2 KiB
Markdown
77 lines
4.2 KiB
Markdown
# Roadmap
|
|
|
|
Open work only. Shipped behavior is described in `README.md` and `docs/`;
|
|
history lives in git.
|
|
|
|
## Stocks
|
|
- `market summary`: market breadth and an index overview (index levels alone
|
|
are already `stocks intraday ^JKSE` and `--provider stockbit stocks quote IHSG`)
|
|
- `market movers`: top gainers, losers, and volume
|
|
- `market sectors`: sector performance overview
|
|
- `screen query "<EXPR>"`: filter stocks by expression
|
|
- `screen presets` / `screen run <PRESET>`: built-in screener presets
|
|
(graduate `screen` out of `stocks` only if these grow into a richer workflow)
|
|
- Multi-period financial statements (today `financials` is single-period)
|
|
- Order book depth without a login: no free source exists (IDX sells delayed
|
|
depth to vendors); `stocks orderbook` needs the user's Stockbit login.
|
|
- Shareholder movements (`ownership movements`) from the Stockbit session;
|
|
design and endpoints in `docs/STOCKBIT.md`. Corporate-action follow-ups:
|
|
ex-dates of splits, bonuses and rights noted in `stocks history`, and the
|
|
`stock_dividend` / `reversesplit` row shapes once Stockbit lists one.
|
|
- Stockbit login follow-ups: hourly OHLCV from the session's `1w` chart (the
|
|
`1d` chart is per-minute closes only); confirming session 1 is
|
|
`STATE_NAME_SESSION_1` (session 2, `BREAK` and `MARKET_CLOSED` were
|
|
recorded on 2026-11-03), and when `has_foreign_bs` turns on with the day's
|
|
foreign figures; an
|
|
opt-in daily refresh so a session outlives the refresh token's week, once
|
|
it is known whether Stockbit caps a session's total life; and the sign-in
|
|
response (`/login/v6/*`, read over DevTools' `Fetch`) as a second signal
|
|
beside the `credentialStorage` cookie, should Stockbit rename or move it.
|
|
- Google sign-in in idx's browser window: Google refused it on 2026-10-31,
|
|
most likely over `--remote-debugging-port`. First confirm by trying Google
|
|
in a plain window on a throwaway profile; if that works, sign in with no
|
|
debugging flag and reopen the profile with it, on a blank page, to read the
|
|
cookie.
|
|
- Observe Stockbit's `market_hour.status` in the pre-open (08:45-09:00) and
|
|
the closing auction (15:50-16:00) before `--watch` or alerts build on it;
|
|
`open`, `break` and `close` are known, and the bid/offer gate hides the book
|
|
for anything but `open`.
|
|
- Bandarmology follow-ups: a daily series (per-session readings and the
|
|
cumulative top-N net) and a price-move phase (quiet accumulation, markup),
|
|
calibration of the `top_concentration_v1` thresholds across more sessions,
|
|
and a market-wide foreign flow screen from one IDX trading summary
|
|
- News beyond MSN in `news` / `get_company` (`docs/IDX_NEWS.md`): Google News
|
|
RSS per ticker, and IDX disclosures and exchange news through a
|
|
maintainer-published feed
|
|
|
|
## Workflow
|
|
- `watchlist`: named symbol sets usable by other commands
|
|
- `alerts`: price alerts with a daemon
|
|
- CSV/TSV output
|
|
- Additional providers (Alpha Vantage, Twelve Data); IDX's own site serves
|
|
only `stocks flow --source idx` today
|
|
|
|
## Agent integration
|
|
- JSON Schema export for command output
|
|
- Composite `analyze` command (quote, fundamentals, ownership, sentiment)
|
|
|
|
## Known limits
|
|
- `stocks broker` and `stocks bandar` show only IPOT's top 10 buyers and
|
|
sellers, ranked by gross lots, with figures of a million and more rounded
|
|
to one decimal.
|
|
- `stocks flow --source idx` depends on IDX's Cloudflare passing a
|
|
curl-impersonate profile (only `curl_safari184` in October 2026) and on the
|
|
network; the default IPOT source rounds to one decimal.
|
|
- Stockbit's terms call its data delayed at least 10 minutes and for
|
|
personal, non-commercial use (on 2026-10-23 the last trade was within a
|
|
minute of the clock); its CDN refuses some user agents with a 403
|
|
(`UPSTREAMBLOCKED`). The public page's best bid/offer sizes are not shown
|
|
yet; they are shares (equal to the session API's book on 2026-10-23).
|
|
- Yahoo can return `429` from datacenter IPs; requests retry with backoff but
|
|
can still fail.
|
|
- `stocks technical` reports the SMA200 trend as unavailable when fewer than
|
|
200 daily candles are returned.
|
|
- MSN's `low-pe` screen returns no priced stocks (`PARSEERROR`; still so on
|
|
2026-10-23, upstream; other filters work).
|
|
- MSN history for IDX is price-only (`1mo`, `3mo`, `1y`); Yahoo stays the
|
|
default OHLCV source.
|