CommunityProductivity & Collaborationgithub.com

bhardwajaditya/trader-in-news

News Monitor for Indian stocks (NSE / BSE). Tracks breaking news on every stock you watch and flags what moves it: Yahoo Finance and Google News (India edition) headlines, each company's exchange corporate announcements on NSE with a BSE fallback (financial results, board meeting outcomes, dividends, buybacks, acquisitions, credit ratings, KMP resignations and appointments, insider trading / SAST, promoter pledges, fund raising) and how far each stock is from the previous close in rupees. Shows only what is new since the last check, newest first, in IST, tags each item (earnings, analyst, deal, capital, people, halt, regulatory, macro...) and never repeats one. Use when the user says "any news on Reliance", "why is TCS moving", "news on my Nifty watchlist", "morning briefing", "pre-market news", "check NSE announcements", "any corporate announcements", "did HDFC Bank file anything", "monitor the news on my Indian stocks", or after /trader-in-scanner finds setups.

What is trader-in-news?

trader-in-news is a Claude Code agent skill that news Monitor for Indian stocks (NSE / BSE). Tracks breaking news on every stock you watch and flags what moves it: Yahoo Finance and Google News (India edition) headlines, each company's exchange corporate announcements on NSE with a BSE fallback (financial results, board meeting outcomes, dividends, buybacks, acquisitions, credit ratings, KMP resignations and appointments, insider trading / SAST, promoter pledges, fund raising) and how far each stock is from the previous close in rupees. Shows only what is new since the last check, newest first, in IST, tags each item (earnings, analyst, deal, capital, people, halt, regulatory, macro...) and never repeats one. Use when the user says "any news on Reliance", "why is TCS moving", "news on my Nifty watchlist", "morning briefing", "pre-market news", "check NSE announcements", "any corporate announcements", "did HDFC Bank file anything", "monitor the news on my Indian stocks", or after /trader-in-scanner finds setups.

Works with✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bhardwajaditya/day-trader-skill-india/tree/main/trader-in-news

Installed? Explore more Productivity & Collaboration skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

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 / feedwhat
--tickers, else trader-in/watchlist.jsonthe scanner's hits (trader-in-scanner)
trader-in/plan.jsonthe trade you are planning (trader-in-exit)
trader-in/portfolio.jsonwhat you hold (trader-in-broker records fills there)
Yahoo Finance headline RSShttps://feeds.finance.yahoo.com/rss/2.0/headline?s=TCS.NS&region=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 editionhttps://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 announcementshttps://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 endpointthe 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.jsonwhat 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 --routine shows 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

  1. Run the check: python3 "${CLAUDE_SKILL_DIR}/news.py". Exit code 1 means nothing new. --all shows items already seen, --json gives everything machine readable (times in UTC plus time_ist), --dry-run leaves the state alone.
  2. 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.
  3. 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").
  4. If a story changes the picture, say so before /trader-in-entry and /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.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

bhardwajaditya/trader-in-alerts

Price Alerts for Indian stocks (NSE, BSE). Rings when a price, a stop or the opening bell hits. Turns the trade plan into three alerts in one go (the stop, the target and "flat by" at your flat-by time, 15:10 IST by default, before brokers square off MIS at about 15:20), plus above / below / stop / target levels in rupees, percent moves from the previous close for stocks and for Nifty, Bank Nifty or Sensex, any time of day, the 09:15 IST opening bell and the 09:00 pre-open, each ringing once so you are not spammed. Reminds you that the stop and target are separate orders at Zerodha, Upstox and other Indian brokers (no OCO for MIS): when one fills, cancel the other. Knows NSE hours in IST with the 2026 NSE holidays, the Budget-day and Muhurat special sessions, fetches free delayed Yahoo quotes for .NS / .BO tickers one at a time, and writes trader-in/prices.json (INR) for sizing and the risk check. Use when the user says "alert me when", "tell me if Reliance hits 1,200", "watch my stop", "watch my trade",…

bhardwajaditya/trader-in-broker

Order Executor for Indian stocks (NSE, BSE). Turns orders that passed /trader-in-risk into plain tickets for Zerodha Kite (default) or Upstox, and never sends anything without your yes. Indian brokers dropped bracket orders, so one trade becomes three orders: the buy, then a SL-M stop and a LIMIT target. The ticket warns that those two are NOT linked (no OCO). Shows the exact JSON for Kite's place_order MCP tool or the Upstox place-order body (ISIN instrument_token), the estimated costs (brokerage, STT, stamp duty, GST) and the max loss at the stop including costs, in ₹. Paper by default: a local simulated ledger with realised P&L after costs, because Indian brokers have no paper account. Live needs "paper": false, your yes typed word for word, then Claude's own Allow once card. Builds the sell that closes an MIS trade by 15:10 IST, before the broker's ~15:20 auto square-off. Covers connecting the Kite MCP server (tokens never in chat). Use when the user says "place the order", "buy it", "execute", "send…

Related Skills