Skill flagged — review recommended

ClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.

mapulse-korea

v1.0.3

한국주식 analyst Telegram bot. Monitors KOSPI/KOSDAQ, tracks watchlist, delivers AI briefings, answers natural-language questions in Korean/Chinese/English. Cove...

1· 155· 4 versions· 0 current· 0 all-time· Updated 10h ago· MIT-0
bymap@lbtsm

Install

openclaw skills install mapulse-korea

Mapulse 🇰🇷

Korean stock market AI analyst Telegram bot. Free, no billing — just set your bot token and go 한국 주식, 시장 분위기, 해외 변수까지 분석해주는 AI .

Quick Start

# 1. Install dependencies
pip install python-telegram-bot pykrx requests beautifulsoup4

# 2. Set your bot token
export TELEGRAM_BOT_TOKEN=your_token_here

# 3. Start the bot
cd bot && python3 mapulse_bot.py

All configuration is via environment variables. No .env files are loaded automatically.

Environment Variables

VariableRequiredDescription
TELEGRAM_BOT_TOKENTelegram bot token from @BotFather
OPENROUTER_API_KEYAI deep analysis (OpenRouter)
ANTHROPIC_API_KEYAI deep analysis (Anthropic, alternative)
DART_API_KEYKorean corporate disclosure data
ALLOWED_GROUPSRestrict to specific Telegram group IDs
MAPULSE_DBSQLite path (default: data/mapulse.db)
MAPULSE_CLAUDE_MODELLLM model override (default: claude-sonnet-4)
KOREA_STOCK_WATCHLISTDefault tickers, comma-separated
RATE_LIMIT_PER_MINMax requests per user per minute (default: 10)
RATE_LIMIT_COOLDOWNMin seconds between requests (default: 3)
OPS_CHAT_IDSYour Telegram user ID for daily stats
MAPULSE_CHANNEL_IDTelegram channel ID for public pushes
OPENNEWS_TOKEN6551.io news API token
TWITTER_TOKEN6551.io Twitter API token

What Users Can Do

Type naturally in Telegram (Korean / Chinese / English):

  • Stock query: 삼성전자, NAVER, 005930
  • Why analysis: 삼성 왜 빠졌어?
  • Compare: 비교 삼성 하이닉스
  • Market: 시황, 코스피, sector, 업종
  • FX/Crypto/Commodity: 환율, 비트코인, 금, 원유
  • DART disclosures: 삼성 공시
  • Alerts: /alert 005930 3.0

Mapulse는 한국 주식 시장에 특화된 분석 AI입니다. 종목명이나 질문만 입력하면 종목 분석, 시장 요약, 투자자 심리, 해외 변수 해석까지 빠르게 정리해드립니다.

단순히 뉴스를 나열하는 것이 아니라, 지금 무엇을 봐야 하는지와 어떤 리스크를 체크해야 하는지를 판단 중심으로 정리해주는 것이 특징입니다.

Cron Scripts (optional)

The skill includes cron scripts that send scheduled briefings to your bot's own users (people who have interacted with your bot). These only run if you explicitly schedule them:

ScriptPurposeSuggested schedule
cron_briefing.pyEvening briefing with watchlist0 13 * * 1-5 (UTC)
cron_platform_push.py morningPre-market briefing30 7 * * 1-5 (CST)
cron_platform_push.py middayMidday recap20 11 * * 1-5 (CST)
cron_platform_push.py eveningOvernight briefing50 19 * * 1-5 (CST)
cron_news_scan.pyBreaking news alerts*/30 0-6 * * 1-5 (UTC)
cron_daily_metrics.pyUsage stats to OPS_CHAT_IDS0 8 * * * (CST)
cron_news_aggregate.pyNews digest3x daily

None of these run automatically. You opt in by adding them to your crontab.

Data Sources (free, no keys needed)

  • pykrx — KRX official KOSPI/KOSDAQ data
  • Yahoo Finance — real-time quotes, FX, commodities
  • Daum Finance — sector rankings, trending stocks
  • CoinGecko — crypto prices

Persistence

The bot stores a local SQLite database (default: data/mapulse.db) containing:

  • User records (Telegram user ID, username, call count)
  • Watchlists and alerts
  • Push logs and seen news hashes
  • User profiles (focus stocks, push preferences)

No payment data, no billing, no external credentials are stored.

Version tags

latestvk979w9pyx6axtzy4hqdqrt9c6x83mrqk

Runtime requirements

Environment variables
TELEGRAM_BOT_TOKENoptionalEnables Telegram bot integration (sending and receiving messages). If not provided, Telegram features will be disabled .
OPENROUTER_API_KEYoptionalOpenRouter API key for AI deep analysis
ANTHROPIC_API_KEYoptionalAnthropic API key (alternative to OpenRouter)
DART_API_KEYoptionalDART API key for Korean corporate disclosures
ALLOWED_GROUPSoptionalComma-separated Telegram group IDs to restrict bot access
MAPULSE_DBoptionalSQLite database path (default: data/mapulse.db)
MAPULSE_CLAUDE_MODELoptionalLLM model override (default: claude-sonnet-4)
KOREA_STOCK_WATCHLISToptionalDefault watchlist tickers, comma-separated
RATE_LIMIT_PER_MINoptionalMax requests per user per minute (default: 10)
RATE_LIMIT_COOLDOWNoptionalMin seconds between requests (default: 3)
OPS_CHAT_IDSoptionalComma-separated Telegram user IDs for daily stats reports
MAPULSE_CHANNEL_IDoptionalTelegram channel ID for public briefing pushes
OPENNEWS_TOKENoptional6551.io news API token
TWITTER_TOKENoptional6551.io Twitter API token