← 返回 Skills 市场
raufimusaddiq

IHSG Session Summary

作者 Raufi Musaddiq · GitHub ↗ · v4.0.1 · MIT-0
cross-platform ⚠ suspicious
349
总下载
0
收藏
0
当前安装
4
版本数
在 OpenClaw 中安装
/install ihsg-session-summary
功能描述
IHSG Closing Summary Agent untuk OpenClaw. Menghasilkan laporan sesi pagi dan closing dengan Top 10 Net Buy/Sell, Foreign Flow, YTD data, dan insights dalam...
使用说明 (SKILL.md)

IHSG Session Closing Summary - OpenClaw Skill

Metadata

  • Name: ihsg_session_summary
  • Version: 4.0.1
  • Description: IDX session closing summary with narrative market analysis using Tavily API
  • Author: IHSG Agent
  • Tags: finance, stocks, indonesia, market-analysis, idx, tavily

Schedule

Session Trading Hours Closing Agent Run Cron
Session 1 (Morning) 09:00 - 11:30 11:30 WIB 12:30 WIB 30 12 * * 1-5
Session 2 (Closing) 13:30 - 16:00 16:00 WIB 16:30 WIB 30 16 * * 1-5

When to Use

Use this skill when:

  • Cron trigger for session closing (12:30 or 16:30 WIB)
  • User requests session/market summary for today
  • User wants to know top net buy/sell with price change

Data Requirements

Session 1 (Morning) - 12:30 WIB

  • IHSG: current, open, high, low, change %
  • Top 10 Net Buy: code, value, volume, price change %
  • Top 10 Net Sell: code, value, volume, price change %
  • Foreign Flow: buy, sell, net
  • Insights: SHORT - focus on what's actionable for Session 2

Session 2 (Closing) - 16:30 WIB

  • All data from Session 1, plus:
  • YTD Foreign Flow
  • Domestic Flow
  • Market Breadth: advancing, declining (if available)
  • Insights: FULL - comprehensive analysis with outlook for tomorrow

Data Sources

Primary Sources

  1. IHSG Index Data

    • Source: Yahoo Finance API
    • URL: https://query1.finance.yahoo.com/v8/finance/chart/%5EJKSE
    • Data: current, open, high, low, previous close, change %
  2. Top 10 Net Buy/Sell (via Tavily Search)

    • API: Tavily Search API
    • Query: "top 10 net buy sell saham Indonesia hari ini"
    • Query: "top foreign net buy sell IDX today"
    • Sources to look for: kontan.co.id, investing.com, idx.co.id, stockbit.com
  3. Foreign Flow Data (via Tavily Search + Extract)

    • Search Query: "net foreign flow Bursa Efek Indonesia hari ini"
    • Extract from: Kontan, Kompas, CNBC Indonesia
  4. YTD Foreign Flow (via Tavily Search)

    • Query: "YTD foreign flow Indonesia stock exchange"
    • Query: "akumulasi dana asing BEI tahun ini"
  5. Stock Price Changes (via Tavily Extract)

    • Extract from: Yahoo Finance, Investing.com for individual stocks

Environment Variables Required

Set the TAVILY_API_KEY environment variable with your Tavily API key.

Get your API key from: https://app.tavily.com


Instructions

Step 1: Run Extraction Script

cd ~/.openclaw/skills/ihsg-session-summary/scripts
python3 ihsg_session_extractor.py [morning|closing]

Step 2: Use Tavily API for Missing Data

The script will indicate missing data. Use Tavily to fill gaps:

Tavily Search - For finding information:

from tavily import TavilyClient
import os

client = TavilyClient(api_key=os.environ.get("TAVILY_API_KEY"))

# Search for top net buy/sell
response = client.search(
    query="top 10 net buy sell saham Indonesia hari ini",
    search_depth="advanced",
    max_results=10,
    include_raw_content=True
)

# Search for foreign flow
response = client.search(
    query="net foreign flow Bursa Efek Indonesia hari ini miliar",
    search_depth="advanced",
    max_results=10
)

Tavily Extract - For extracting content from URLs:

# Extract content from financial news sites
response = client.extract(
    urls=["https://investasi.kontan.co.id/news/..."],
    extract_depth="advanced"
)

Step 3: Generate Complete Output

Format output in PLAIN TEXT with ASCII tables.

IMPORTANT: Output must be in Bahasa Indonesia (Indonesian language)

Step 4: Write Insights

Generate insights in Bahasa Indonesia:

  • Morning: 1 paragraph, 2-3 sentences, actionable for Session 2
  • Closing: 2-3 paragraphs, comprehensive with outlook

Tavily API Usage Examples

Search for Top Net Buy/Sell

from tavily import TavilyClient
import os
import json

client = TavilyClient(api_key=os.environ.get("TAVILY_API_KEY"))

# Search queries for different data
queries = [
    "top 10 net buy sell saham Indonesia hari ini 2026",
    "top foreign net buy sell IDX Indonesia today",
    "net foreign flow Bursa Efek Indonesia hari ini miliar",
    "YTD foreign flow Indonesia stock exchange 2026",
    "akumulasi dana asing BEI tahun ini"
]

all_results = []
for query in queries:
    response = client.search(
        query=query,
        search_depth="advanced",
        max_results=10,
        include_raw_content=True
    )
    all_results.extend(response.get('results', []))

Extract from Financial News

# Extract detailed content from URLs found in search
urls_to_extract = [
    "https://investasi.kontan.co.id/news/...",
    "https://money.kompas.com/read/...",
    "https://www.cnbcindonesia.com/market/..."
]

extracted = client.extract(
    urls=urls_to_extract,
    extract_depth="advanced"
)

for item in extracted.get('results', []):
    content = item.get('raw_content', '')
    # Parse content for stock data

Extract Stock Price Changes

# Get price changes for specific stocks
stock_codes = ["GOTO", "BUMI", "BMRI", "BBRI", "BBCA"]

for code in stock_codes:
    response = client.search(
        query=f"{code} stock price change Indonesia today",
        search_depth="basic",
        max_results=5
    )
    # Parse response for price change %

Output Format

SESSION 1 (Morning) - 12:30 WIB

📊 IHSG PAGI SUMMARY
[Hari, Tanggal dalam Bahasa Indonesia]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[🟢/🔴] IHSG: [nilai] ([+/-]X.XX%)
Open: [nilai] | High: [nilai] | Low: [nilai]
Prev Close: [nilai]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📈 TOP 10 NET BUY (by Value)
┌────┬────────┬────────────┬───────────┬──────────┐
│ No │ Kode   │ Net Value  │ Net Vol   │ Chg %    │
├────┼────────┼────────────┼───────────┼──────────┤
│  1 │ BBCA   │ IDR 125.5B │ 45.2M     │ +1.25%   │
│  2 │ TLKM   │ IDR 98.3B  │ 125.8M    │ +0.85%   │
... (10 stocks)
└────┴────────┴────────────┴───────────┴──────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📉 TOP 10 NET SELL (by Value)
┌────┬────────┬────────────┬───────────┬──────────┐
│ No │ Kode   │ Net Value  │ Net Vol   │ Chg %    │
├────┼────────┼────────────┼───────────┼──────────┤
│  1 │ GOTO   │ IDR 85.5B  │ 180.5M    │ -2.35%   │
... (10 stocks)
└────┴────────┴────────────┴───────────┴──────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

💰 FOREIGN FLOW

Foreign:
• Buy:  IDR [X,XXX.X]B
• Sell: IDR [X,XXX.X]B
• Net:  IDR [+/-XXX.X]B [📈INFLOW/📉OUTFLOW]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

💡 INSIGHTS SESI PAGI

[ONE SHORT PARAGRAPH - 2-3 sentences max]
[Focus: What happened + What to watch in Session 2]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Session: PAGI | Generated: [HH:MM] WIB
Data Source: Tavily API

SESSION 2 (Closing) - 16:30 WIB

📊 IHSG CLOSING SUMMARY
[Hari, Tanggal dalam Bahasa Indonesia]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[🟢/🔴] IHSG: [nilai] ([+/-]X.XX%)
Open: [nilai] | High: [nilai] | Low: [nilai]
Prev Close: [nilai]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📈 TOP 10 NET BUY (by Value)
... (same format)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📉 TOP 10 NET SELL (by Value)
... (same format)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

💰 FOREIGN vs DOMESTIC FLOW

Foreign:
• Buy:  IDR 8,250.5B
• Sell: IDR 8,500.2B
• Net:  IDR -249.7B 📉 OUTFLOW

Domestic:
• Net:  IDR +249.7B

YTD Foreign: IDR +2,459.7B

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

💡 INSIGHTS CLOSING

[2-3 PARAGRAPHS - Full analysis]
[Paragraph 1: Full day summary + what happened]
[Paragraph 2: Connect the dots - patterns, rotation, themes]
[Paragraph 3: Outlook for tomorrow + actionable recommendations]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Session: CLOSING | Generated: [HH:MM] WIB
Data Source: Tavily API

🎯 Insights Writing Guidelines

SESSION 1 (Morning) - SHORT & ACTIONABLE

Length: 1 paragraph, 2-3 sentences max

Focus:

  1. Brief summary of what happened in morning session
  2. What to watch/do in Session 2

SESSION 2 (Closing) - FULL & COMPREHENSIVE

Length: 2-3 paragraphs

Structure:

Paragraph 1: The Big Picture

  • Full day summary (open to close)
  • Sentiment and overall market behavior
  • Connect IHSG movement with foreign flow

Paragraph 2: Connecting the Dots

  • Interesting patterns from top net buy/sell
  • Sector rotation? Flight to quality? Profit taking?
  • Why certain stocks accumulated/sold?

Paragraph 3: Outlook & Actionable

  • What might happen tomorrow
  • Important levels to watch
  • Specific recommendations

Rules

  1. 10 STOCKS for each top net buy/sell - use Tavily Search if needed
  2. PRICE CHANGE % must be included for each stock - use Tavily Extract
  3. Output in PLAIN TEXT with ASCII table
  4. Bahasa Indonesia for all output and insights
  5. Session 1: SHORT insights (1 paragraph, 2-3 sentences)
  6. Session 2: FULL insights (2-3 paragraphs, comprehensive)
  7. Connect the dots - link data, find patterns
  8. Use Tavily API for all web data - search, extract, crawl
  9. Never leave data incomplete - always fill via Tavily

Jobs Configuration

{
  "jobs": [
    {
      "name": "ihsg_session_morning",
      "schedule": { "kind": "cron", "expr": "30 12 * * 1-5" },
      "timezone": "Asia/Jakarta",
      "prompt": "Use skill ihsg_session_summary to create MORNING session summary. Run extraction script first, then use Tavily API (search & extract) to fill any missing data. Generate SHORT insights (1 paragraph) in Bahasa Indonesia.",
      "enabled": true
    },
    {
      "name": "ihsg_session_closing",
      "schedule": { "kind": "cron", "expr": "30 16 * * 1-5" },
      "timezone": "Asia/Jakarta",
      "prompt": "Use skill ihsg_session_summary to create CLOSING session summary. Run extraction script first, then use Tavily API (search & extract) to fill any missing data (Top 10, Foreign Flow, YTD, Price Changes). Generate FULL insights (2-3 paragraphs) in Bahasa Indonesia.",
      "enabled": true
    }
  ]
}

File Structure

~/.openclaw/
├── skills/
│   └── ihsg-session-summary/
│       ├── SKILL.md
│       └── scripts/
│           ├── ihsg_session_extractor.py
│           └── requirements.txt
└── cron/
    └── jobs.json

Installation

# 1. Create skill directory
mkdir -p ~/.openclaw/skills/ihsg-session-summary/scripts

# 2. Copy files
cp SKILL.md ~/.openclaw/skills/ihsg-session-summary/
cp ihsg_session_extractor.py ~/.openclaw/skills/ihsg-session-summary/scripts/
cp requirements.txt ~/.openclaw/skills/ihsg-session-summary/scripts/

# 3. Install dependencies
cd ~/.openclaw/skills/ihsg-session-summary/scripts
pip install -r requirements.txt

# 4. Set Tavily API key (use your actual key)
# On Linux/Mac: export TAVILY_API_KEY="your-key"
# On Windows: set TAVILY_API_KEY=your-key

# 5. Test
python3 ihsg_session_extractor.py morning
python3 ihsg_session_extractor.py closing

Dependencies

  • Python 3.8+
  • requests
  • beautifulsoup4
  • tavily-python (Tavily SDK)
  • Tavily API key (get from https://app.tavily.com)

Tavily API Pricing

Plan Searches/month Price
Free 1,000 $0
Pro 10,000 $29/mo
Enterprise Unlimited Custom

For IHSG session summaries (2x daily on weekdays):

  • ~40-50 searches per month
  • Free tier is sufficient for testing
  • Pro recommended for production
安全使用建议
This skill's functionality (IHSG summaries) matches its code and instructions, but the published metadata is inconsistent: SKILL.md and the script require a TAVILY_API_KEY and Python dependencies (tavily-python, requests, beautifulsoup4) while the registry metadata lists no env vars and provides no install instructions. Before installing/running: (1) ensure you have a Tavily API key and understand its scope (it can fetch/extract arbitrary web content); (2) install dependencies (pip install -r scripts/requirements.txt) in a controlled environment/sandbox; (3) inspect scripts/ihsg_session_extractor.py yourself to verify there are no calls to unexpected external endpoints beyond Yahoo Finance and Tavily; (4) consider restricting the API key and monitoring its usage, and ask the publisher to correct the registry metadata or provide an explicit install spec for clarity.
功能分析
Type: OpenClaw Skill Name: ihsg-session-summary Version: 4.0.1 The skill bundle is a legitimate financial analysis tool designed to generate Indonesian stock market (IHSG) summaries. It uses Yahoo Finance and the Tavily Search API to gather market data, with fallback scraping logic for Infovesta. The Python script (ihsg_session_extractor.py) and agent instructions (SKILL.md) are transparent, lack obfuscation, and do not exhibit any signs of data exfiltration, malicious execution, or harmful prompt injection.
能力评估
Purpose & Capability
The name/description (IHSG market summaries) matches the code and SKILL.md: the script fetches IHSG data from Yahoo Finance and uses Tavily for web search/extract to get top net buy/sell and foreign flow. This capability legitimately needs a Tavily API key and HTTP access to finance/news endpoints. However, the registry metadata claims 'Required env vars: none' and 'Primary credential: none' while SKILL.md and the code require TAVILY_API_KEY, which is an incoherence in the manifest.
Instruction Scope
Runtime instructions are scoped to fetching market data and using Tavily for search/extract, running the included Python script, and producing a textual summary in Bahasa Indonesia. The instructions do not ask the agent to read unrelated local files or export system credentials. Note: Tavily extract can return raw page content, so the agent will process arbitrary third-party web content (expected for this purpose).
Install Mechanism
There is no install spec (instruction-only), but the package includes a requirements.txt listing tavily-python and standard scraping libs. This is not inherently malicious but is inconsistent: without an install step, the environment may lack required packages and the SKILL.md prints a warning if tavily-python is missing. No downloads from suspicious URLs or extract steps are present.
Credentials
The code and SKILL.md require a single API credential (TAVILY_API_KEY), which is proportionate to the stated purpose. However, the registry metadata failing to declare this required env var is a meaningful mismatch that could mislead users into installing without providing a required credential. Also verify the Tavily API key's scope/permissions before use because it enables arbitrary web search/extraction through the third-party service.
Persistence & Privilege
The skill does not request persistent/system-wide privileges, does not set always:true, and does not reference or modify other skill configurations or sensitive system paths. It runs as a normal invocable skill.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install ihsg-session-summary
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /ihsg-session-summary 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v4.0.1
v4.0.1: Reduced false positive triggers in documentation. Cleaner API key examples.
v4.0.0
v4.0: Added Tavily API integration for web search and extract. Better data accuracy and coverage.
v3.0.1
Added Python extraction script and requirements
v3.0.0
Initial release: Morning and Closing session summaries, Top 10 Net Buy/Sell, Foreign Flow, YTD data, Insights in Bahasa Indonesia
元数据
Slug ihsg-session-summary
版本 4.0.1
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 4
常见问题

IHSG Session Summary 是什么?

IHSG Closing Summary Agent untuk OpenClaw. Menghasilkan laporan sesi pagi dan closing dengan Top 10 Net Buy/Sell, Foreign Flow, YTD data, dan insights dalam... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 349 次。

如何安装 IHSG Session Summary?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install ihsg-session-summary」即可一键安装,无需额外配置。

IHSG Session Summary 是免费的吗?

是的,IHSG Session Summary 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

IHSG Session Summary 支持哪些平台?

IHSG Session Summary 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 IHSG Session Summary?

由 Raufi Musaddiq(@raufimusaddiq)开发并维护,当前版本 v4.0.1。

💬 留言讨论