What does trader-in-news do?
A chart can look perfect and still be about to gap on a results date, a promoter pledge invocation or a surprise MD resignation. Before a setup becomes a trade, this skill reads the feeds that carry those first, for every stock on the watchlist, and tells you only what is new. It also prints how far each stock is from the previous close, so a headline and a move sit side by side.
Tool in this folder (standard library Python, no keys, no sign-up):
python3 "${CLAUDE_SKILL_DIR}/news.py" # watchlist + plan + portfolio
python3 "${CLAUDE_SKILL_DIR}/news.py" --tickers RELIANCE TCS M&M --hours 12
python3 "${CLAUDE_SKILL_DIR}/news.py" --tickers BSE:500325 HDFCBANK.NS --json
python3 "${CLAUDE_SKILL_DIR}/news.py" --no-filings --no-google # Yahoo headlines only
Symbols: RELIANCE, RELIANCE.NS, NSE:RELIANCE, RELIANCE.BO,
BSE:RELIANCE, 500325.BO, BSE:500325. A bare symbol means NSE (or
default_exchange in trader-in/config.json). Quote M&M in the shell.
What it reads and writes
| file / feed | what |
|---|---|
--tickers, else trader-in/watchlist.json | the scanner's hits (trader-in-scanner) |
trader-in/plan.json | the trade you are planning (trader-in-exit) |
trader-in/portfolio.json | what you hold (trader-in-broker records fills there) |
| Yahoo Finance headline RSS | https://feeds.finance.yahoo.com/rss/2.0/headline?s=TCS.NS®ion=IN&lang=en-IN. Works for many NSE names, empty for some (RELIANCE.NS, HDFCBANK.NS when checked) and often off-topic |
| Google News RSS, India edition | https://news.google.com/rss/search?q=<company>+share&hl=en-IN&gl=IN&ceid=IN:en; the company name comes from your watchlist, the exchange or Yahoo's chart. Titles that do not name the company or its symbol are dropped |
| NSE corporate announcements | https://www.nseindia.com/api/corporate-announcements?index=equities&symbol=RELIANCE&from_date=..&to_date=.., after a cookie warm-up on the NSE homepage (the homepage answers 403 and still sets the cookie; that is normal) |
| BSE corporate announcements (fallback) | https://api.bseindia.com/BseIndiaAPI/api/AnnSubCategoryGetData/w?...&strScrip=500325, used when NSE refuses or for a BSE scrip code. The scrip code comes from 500325.BO, bse_codes in trader-in/config.json ({"RELIANCE": "500325"}), or BSE's search |
| Yahoo Finance chart endpoint | the last price against the previous close, in ₹ (unofficial, can lag; Yahoo has no chart for numeric BSE codes, use RELIANCE.BO) |
trader-in/state/news.json | what has been shown (kept 30 days) and the BSE scrip codes it found |
NSE and BSE sit behind Akamai and can refuse a machine (HTTP 401/403/429, or an
"Access Denied" page). The tool never fails because of it: it notes
NSE refused ... falling back to BSE, then
exchange filings skipped for X (...); headlines still run if BSE refuses too.
Say so in the brief ("no exchange filings could be read this check"), and
point the user at the company's page on nseindia.com / bseindia.com.
From the machine this was built on, NSE answered and BSE refused.
The rules
- Headlines are leads, not facts. Before telling the user something happened, open the story or the filing PDF and read it. Quote the source and link it. Never summarise a paywalled story you could not read: say so.
- Filings beat headlines. If an exchange announcement and a headline disagree, the announcement is what the company told NSE/BSE under SEBI's LODR rules.
- Say what it touches. Every item lists the symbols it touches and its
tags: earnings, analyst, legal, deal, capital, people, risk, halt,
regulatory, macro. Filings marked
!are the ones that move stocks: financial results, an outcome of a board meeting, a buyback, a fund raise (QIP, preferential, rights), a bonus or split, an acquisition, merger or scheme, a resignation (above all an MD, CEO, CFO or auditor), a pledge invocation, a credit rating downgrade, a default or insolvency, a trading suspension. "General Updates" and "Press Release" filings are read by their text (an MD and CEO change filed as "General Updates" still gets!). - Routine filings are hidden (lost share certificates, newspaper copies,
Reg. 74(5) certificates); the output counts them and
--routineshows them. - MOVING marks a stock 3 % or more from the previous close (
--move-pct). A move with no headline is worth saying out loud too. Remember NSE price bands: a stock stuck at its upper or lower circuit cannot be traded at all. - Google News matches by name, so a namesake can slip in (a Kotak Mahindra Bank story under M&M). Read the title before you repeat it.
- No predictions. Report what was published and how far the price is from the previous close. Never say what the stock will do next.
Steps
- Run the check:
python3 "${CLAUDE_SKILL_DIR}/news.py". Exit code 1 means nothing new.--allshows items already seen,--jsongives everything machine readable (times in UTC plustime_ist),--dry-runleaves the state alone. - Read the items that matter: every
!filing, anything tagged earnings, halt, legal, regulatory or risk, and every MOVING symbol first. Open the filing PDF for any!item. - Write a short brief, per symbol: what happened, the source and link, the move in ₹ and %, and one line on why it matters to the setup (for example "board meets on 5 November to approve results: a gap there can jump past any stop, so this stays an intraday trade").
- If a story changes the picture, say so before
/trader-in-entryand/trader-in-exit: a results date inside the trade, a circuit, a pledge invocation, a fund raise. Never act on a headline alone.
During the session: /loop 15m /trader-in-news, or a scheduled task each
morning before the 09:15 IST open (pre-open is 09:00 to 09:08).
Example
Tuesday 2026-10-27, checked at 15:45 IST with --tickers RELIANCE TCS HDFCBANK:
RELIANCE.NS ₹1,196.20 -0.47% vs previous close ₹1,201.80 at 15:28 IST
TCS.NS ₹2,496.90 -1.50% vs previous close ₹2,535.00 at 15:28 IST
2026-10-27 13:56 IST RELIANCE.NS Google News Jio IPO draws INR 7.4 trillion as Reliance Industries stock awaits debut
via ad-hoc-news.de tags: capital https://news.google.com/rss/articles/...
! 2026-10-27 08:02 IST HDFCBANK.NS NSE General Updates: Reg. 30 disclosure: Change in Managing Director and Chief Executive Officer of the Bank
tags: people https://nsearchives.nseindia.com/corporate/HDFCBANK_27102026080232_SEIntimation_appt_of_AB.pdf
The brief: "HDFC Bank told NSE at 08:02 IST that its MD & CEO is changing. Open the PDF before trading it today. Reliance: the Jio Platforms IPO lists tomorrow, so expect group-wide moves. TCS is down 1.5 % with no company filing; the IT sector fell on the day." If a symbol has no news, say so rather than padding the brief.
What it never does
- Never invents or embellishes a story, a quote or a number.
- Never trades on news, and never tells the user to buy or sell because of a headline.
- Never hammers a server: one request per feed per symbol, a pause between calls, one NSE homepage warm-up per run, and once NSE or BSE refuses, it stops asking that exchange for the rest of the run.
Safety
Education and tooling, not investment advice. For advice, talk to a
SEBI-registered investment adviser. This skill only reads and reports.
Nothing places an order except /trader-in-broker (paper by default: a local
simulated ledger), after /trader-in-risk passes and the user types an
explicit yes for that order.