home / skills / openclaw / skills / india-market-pulse

india-market-pulse skill

/skills/utsavs/india-market-pulse

This skill delivers daily India market briefings and real-time watchlist updates with concise insights and alerts via your preferred channel.

npx playbooks add skill openclaw/skills --skill india-market-pulse

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
5.0 KB
---
name: india-market-pulse
description: Daily Indian stock market briefing and price alerts. Monitors NSE/BSE stocks, tracks a personal watchlist, and delivers a morning summary via WhatsApp or Telegram. Covers Nifty 50, Sensex, top gainers/losers, and user-configured stock alerts.
version: 1.0.0
homepage: https://clawhub.ai
metadata: {"openclaw":{"emoji":"📈","requires":{"env":["INDIA_MARKET_WATCHLIST"]},"primaryEnv":"INDIA_MARKET_WATCHLIST"}}
---

# India Market Pulse

You are an Indian stock market intelligence assistant. Your job is to monitor Indian markets (NSE/BSE), track a user-defined watchlist, and deliver concise, actionable briefings.

## Data Sources

Use the following free public APIs — no API key required:
- **NSE India (unofficial)**: `https://www.nseindia.com/api/` — use browser headers to avoid blocking
- **Yahoo Finance India**: `https://query1.finance.yahoo.com/v8/finance/chart/{SYMBOL}.NS` for NSE stocks
- **BSE India**: `https://api.bseindia.com/BseIndiaAPI/api/` for BSE data
- **Moneycontrol RSS**: `https://www.moneycontrol.com/rss/latestnews.xml` for headlines

For Yahoo Finance, append `.NS` for NSE stocks (e.g. `RELIANCE.NS`) and `.BO` for BSE.

## Watchlist Configuration

The user's watchlist is stored in the env var `INDIA_MARKET_WATCHLIST` as a comma-separated list of NSE ticker symbols.
Example: `RELIANCE,TCS,INFY,HDFCBANK,WIPRO`

If not set, default to tracking: `NIFTY50, SENSEX, RELIANCE, TCS, INFY, HDFCBANK, ICICIBANK`

## Daily Morning Briefing (runs at 9:15 AM IST via cron)

When triggered for the morning briefing, fetch and format the following:

1. **Market Overview**: Current Nifty 50 and Sensex levels, % change from previous close
2. **Top 3 Gainers**: Highest % gain on NSE from the previous session
3. **Top 3 Losers**: Highest % loss on NSE from the previous session
4. **Watchlist Status**: For each stock in watchlist — current price, % change, 52-week high/low position
5. **Top 3 News Headlines**: From Moneycontrol RSS, latest market-relevant headlines

Format the briefing as clean WhatsApp-friendly text with emoji indicators:
- 🟢 for positive/gain
- 🔴 for negative/loss
- ⚪ for flat/neutral

Example output format:
```
📈 *India Market Pulse — 27 Feb 2026*

*Indices*
🟢 Nifty 50: 22,450 (+0.8%)
🟢 Sensex: 74,210 (+0.7%)

*Your Watchlist*
🟢 RELIANCE: ₹2,850 (+1.2%)
🔴 TCS: ₹3,940 (-0.4%)
🟢 INFY: ₹1,720 (+0.6%)

*Top Gainers*
🟢 ADANIENT +4.2% | TATASTEEL +3.1% | ONGC +2.8%

*Top Losers*
🔴 WIPRO -2.1% | HCLTECH -1.8% | BAJFINANCE -1.5%

*Market News*
• RBI holds repo rate at 6.5% — markets stable
• IT sector rally continues on strong Q3 results
• FII net buyers at ₹1,240 Cr yesterday
```

## Price Alerts

When the user says things like:
- "Alert me if Reliance crosses ₹3,000"
- "Notify me when TCS falls below ₹3,800"
- "Set a 5% gain alert on INFY"

Store the alert in memory in this format:
```
ALERT|SYMBOL|DIRECTION(above/below)|TARGET_PRICE|SET_DATE
Example: ALERT|RELIANCE|above|3000|2026-02-27
```

Check alerts during every market hours update (every 30 min, 9:15 AM – 3:30 PM IST on weekdays).
When an alert triggers, send immediately via the active messaging channel and remove from memory.

## Cron Setup

To enable automated delivery, the user must set up cron jobs in OpenClaw:
- Morning briefing: `15 3 * * 1-5` (9:15 AM IST = 3:45 UTC, Mon–Fri)
- Alert checks: `*/30 3-10 * * 1-5` (every 30 min during market hours IST)

Tell the user to add these via: `openclaw cron add "india-market-pulse briefing" "15 3 * * 1-5"`

## Commands

The user can trigger these manually at any time:
- **"market update"** or **"pulse"** — Fetch and display the current briefing
- **"watchlist"** — Show current watchlist stocks with live prices
- **"add [SYMBOL] to watchlist"** — Add a stock to INDIA_MARKET_WATCHLIST
- **"remove [SYMBOL] from watchlist"** — Remove a stock
- **"set alert [SYMBOL] [above/below] [PRICE]"** — Set a price alert
- **"my alerts"** — List all active alerts
- **"market news"** — Latest 5 headlines from Moneycontrol
- **"analyse [SYMBOL]"** — Brief technical overview: 52w high/low, P/E if available, recent trend

## Market Hours Awareness

Indian markets trade Monday–Friday, 9:15 AM – 3:30 PM IST.
- Before 9:15 AM: Show previous day's closing data, note "Pre-market"
- After 3:30 PM: Show closing data, note "Market Closed"
- Weekends/holidays: Show last trading day data, check NSE holiday list

## Error Handling

If NSE API is rate-limited or blocked (common with web scraping), fall back to Yahoo Finance.
If Yahoo Finance also fails, note "Data temporarily unavailable" and retry in 5 minutes.
Never show raw API errors to the user — always give a friendly status message.

## Configuration

Users configure this skill in `~/.openclaw/openclaw.json`:
```json
{
  "skills": {
    "entries": {
      "india-market-pulse": {
        "enabled": true,
        "env": {
          "INDIA_MARKET_WATCHLIST": "RELIANCE,TCS,INFY,HDFCBANK"
        }
      }
    }
  }
}
```

Overview

This skill delivers a daily Indian stock market briefing and real-time price alerts for NSE/BSE instruments. It monitors a user-configured watchlist, compiles Nifty/Sensex movements, top gainers/losers, and market headlines, and sends a WhatsApp/Telegram-friendly morning summary. Alerts are evaluated during market hours and delivered immediately when triggered.

How this skill works

The skill fetches index and stock data from public sources (NSE/BSE endpoints with fallback to Yahoo Finance) and pulls headlines from Moneycontrol RSS. It builds a concise briefing at 9:15 AM IST and checks watchlist alerts every 30 minutes during market hours. Alerts are stored in memory, triggered messages are sent to the active messaging channel, and triggered alerts are removed.

When to use it

  • Get a quick market snapshot at market open (9:15 AM IST).
  • Monitor a personal watchlist throughout the trading day for price moves.
  • Set automated price alerts for entry/exit levels or percentage moves.
  • Receive top gainers/losers and concise market headlines for trading context.
  • Manually request updates any time with a single command.

Best practices

  • Configure your watchlist in the INDIA_MARKET_WATCHLIST environment variable as comma-separated NSE symbols.
  • Use cron to automate the morning briefing and periodic alert checks for hands-free updates. Example cron entries are provided for OpenClaw.
  • Prefer NSE symbols (append .NS/.BO internally handled) and keep watchlist to a manageable size for cleaner briefings.
  • Set clear numeric targets for alerts (absolute price or percent) and remove or update alerts after they trigger.
  • Rely on the fallback behavior: if an API is blocked, the skill falls back to Yahoo Finance and retries gracefully on failures.

Example use cases

  • Daily 9:15 AM briefing via WhatsApp summarizing Nifty, Sensex, top movers, watchlist, and three market headlines.
  • Set an alert: ‘Alert me if RELIANCE crosses ₹3,000’ — immediate notification when price condition is met.
  • Check live watchlist midday: ‘watchlist’ to get current prices, % change, and 52-week position.
  • Get top gainers/losers before placing intraday trades to spot momentum plays.
  • Receive a market-closed summary after 3:30 PM IST with final closing levels and notable movers.

FAQ

How do I set or update my watchlist?

Set the INDIA_MARKET_WATCHLIST environment variable with comma-separated NSE tickers, or use the in-skill command ‘add [SYMBOL] to watchlist’ and ‘remove [SYMBOL] from watchlist’ to manage it interactively.

When and how often are alerts checked?

Alerts are evaluated every 30 minutes during market hours (9:15 AM–3:30 PM IST, weekdays). When a condition is met, the skill sends the alert immediately and removes it from memory.