Pluggable AI-Powered Report Engine | 插件化 AI 智能简报引擎
LunaClaw Brief is an OpenClaw Skill that generates intelligent reports across multiple domains. It features a plugin architecture with 8-stage pipeline, 8 data sources, 7 editor strategies, hybrid intent routing, streaming output, and multi-channel delivery.
LunaClaw Brief 是一个 OpenClaw Skill,支持多领域智能报告生成。采用插件化架构,8 阶段管线,8 个数据源,7 种编辑器策略,混合意图路由,流式输出,多渠道推送。
PresetTypeDescriptionai_cv_weeklyTechAI/CV/多模态技术深度周报ai_dailyTechAI 技术日报finance_weeklyFinance金融投资周报finance_dailyFinance金融快报日刊stock_a_dailyStockA 股日报(大盘/板块/北向资金/IPO/异动)stock_hk_dailyStock港股日报(恒生/南向资金/中概股/IPO)stock_us_dailyStock美股日报(S&P/NASDAQ/科技巨头/IPO)CustomAnyvia --create-preset natural language
SourceCoveragegithubOpen-source projects + competitor discoveryarxivAcademic papershackernewsTech community discussionspaperswithcodeML papers with codefinnewsFinancial news (HN + BBC/NYT RSS)yahoo_financeYahoo Finance RSS + market indiceseastmoney东方财富 (A-share news, IPO calendar)xueqiu雪球 (hot stocks, sentiment)
bash
python run.py # AI/CV Weekly (default)
python run.py --preset stock_a_daily # A-share daily
python run.py --hint "今天A股怎么样" # Auto-route → stock_a_daily
python run.py --hint "帮我看看腾讯和阿里" # LLM auto-route
python run.py --preset ai_cv_weekly --email # Generate + email
python run.py --create-preset "我是新能源基金经理" # Create custom preset
python -m brief.scheduler # Run scheduled jobs
python
from run import generate_report
result = generate_report({
"preset": "stock_hk_daily",
"hint": "重点关注腾讯和美团",
"send_email": True,
})
## Section → ### N. Item → **Label**: → **🦞 Claw**: structurepipeline.run_stream() yields progress events + content chunksPatternWhereAdapterBaseSource → 8 source adaptersStrategyBaseEditor → 7 editor strategiesPipeline8-stage ReportPipeline (sync + stream)Registry@register_source / @register_editor decoratorsObserverMiddlewareChain for timing, metrics, custom hooksFactorycreate_sources() / create_editor()CacheFileCache with TTL for API responses
Global config in config.yaml. Secrets in config.local.yaml (gitignored).
yaml
# config.local.yaml (not committed)
llm:
api_key: "your-key"
Auto-detects OpenClaw environment ( OPENCLAW_API_KEY / OPENCLAW_BASE_URL) — no manual LLM config needed when running as an OpenClaw skill.
Built by llx & Luna 🐱 — where the claw meets the code. 🦞