Skill: jiajiaoy/trendradar (version 1.1.2)

# TrendRadar > Scan social media and communities to detect trending products before they peak — then act on them with BuyWise and CouponClaw. TrendRadar monitors 小红书, 微博, Reddit, Google Trends, and Product Hunt in real time. It assigns a trend direction (↑↑ surging / ↑ rising / → stable / ↓ cooling) and a commercial signal to each item, so you know whether to buy now, wait, or skip. ## What TrendRadar does differently Most tools show you what's already popular. TrendRadar shows you what's about to peak — so you can get the best price before demand drives it up, or avoid buying into something already fading. It is the upstream signal source for the entire ecosystem: - Feed trending products into **BuyWise** for price and review analysis - Feed trending stores into **CouponClaw** for coupon and cashback stacking - Daily briefing surfaces the top 3 most commercially interesting trends each morning ## Trigger phrases - "什么在爆" - "最近什么在火" - "小红书在推什么" - "Reddit trending" - "今日爆款" - "热销商品" - "trending products" - "what's hot right now" - "what's going viral" - "trending on TikTok" - "trending on xiaohongshu" - "hot items" ## Scripts | Script | Command | Description | |---|---|---| | `scan.js` | `node scripts/scan.js [keyword/category] [--region cn\|us\|global\|all] [--lang zh\|en]` | Scan social platforms for trending products related to a keyword, or scan all categories if no keyword given | | `daily-hot.js` | `node scripts/daily-hot.js [--region cn\|us\|global\|all] [--lang zh\|en]` | Generate full daily trending briefing across all categories (for cron push) | To schedule a daily push, add a cron job directly: ``` openclaw cron add --schedule "0 0 8 * * *" --cmd "node scripts/daily-hot.js --region all --lang zh" --channel telegram ``` ## Trend signals explained | Direction | Meaning | Commercial action | |---|---|---| | ↑↑ Surging | >200% growth in 7 days | Buy before price rises | | ↑ Rising | 50-200% growth in 7 days | Good timing — more competition = better deals | | → Stable | High volume, growth slowing | Safe choice, no urgency | | ↓ Cooling | Declining 3+ days | Wait for price drop | ## Ecosystem integration ``` TrendRadar (signal) ↓ BuyWise (analysis: price / reviews / buy timing) ↓ CouponClaw (action: coupons + cashback stacking) ``` TrendRadar is also called by: - **NewsToday** — surfaces trending consumer products from the news feed - **GiftRadar** *(planned)* — uses trending items to inform gift recommendations ## Data sources | Platform | Region | What it tracks | |---|---|---| | 小红书 (Xiaohongshu) | CN | Post volume, engagement velocity | | 微博热搜 | CN | Search trend ranking | | 什么值得买 | CN | Save/comment growth rate | | 抖音热榜 | CN | Viral product videos | | Reddit | US/Global | Upvotes, post frequency | | Google Trends | Global | Search volume trajectory | | Product Hunt | US/Global | New product launches | ## No API required TrendRadar uses browser navigation to read live platform data directly. No API keys needed.

path: README.md
content: # TrendRadar — Detect Trending Products Before They Peak

> Know what's going viral before everyone else — track 小红书, 微博, Reddit, Google Trends. Buy before prices spike.

[![clawhub](https://img.shields.io/badge/clawhub-trendradar-blue)](https://clawhub.ai/skills/trendradar)
[![version](https://img.shields.io/badge/version-1.1.0-green)](https://clawhub.ai/skills/trendradar)
[![license](https://img.shields.io/badge/license-MIT--0-lightgrey)](LICENSE)

## What it does

TrendRadar is an [OpenClaw](https://openclaw.ai) skill that monitors social platforms for rising products and assigns a **trend direction signal**:

| Signal | Meaning | Commercial action |
|---|---|---|
| ↑↑ Surging | >200% growth in 7 days | Buy before price rises with demand |
| ↑ Rising | 50–200% growth in 7 days | Good timing — more deals as competition increases |
| → Stable | High volume, growth slowing | Safe choice, no urgency |
| ↓ Cooling | Declining 3+ days | Wait for price drop, or try alternatives |

It is the **upstream signal** for the entire smart shopping ecosystem — trending items flow into [BuyWise](https://github.com/jiajiaoy/BuyWise) for decision analysis and [CouponClaw](https://github.com/jiajiaoy/CouponClaw) for deal stacking.

## Data sources

| Platform | Region | Signal |
|---|---|---|
| 小红书 (Xiaohongshu) | China | Post volume & engagement velocity |
| 微博热搜 | China | Search trend ranking |
| 什么值得买 | China | Save/comment growth rate |
| 抖音 (Douyin) | China | Viral product videos |
| Reddit | US / Global | Upvotes and post frequency |
| Google Trends | Global | Search volume trajectory |
| Product Hunt | US / Global | New product launches & upvotes |

## Installation

```bash
openclaw install trendradar
```

## Usage

```bash
# Scan a keyword or category for trending items
openclaw run trendradar scan "wireless earbuds" --region all

# Full daily trending briefing across all categories
openclaw run trendradar daily-hot --region all --lang en

# China only, Chinese output
openclaw run trendradar scan --region cn --lang zh

# Schedule daily trending push at 8am
openclaw cron add --schedule "0 0 8 * * *" \
  --cmd "node scripts/daily-hot.js --region all --lang zh" \
  --channel telegram
```

## Ecosystem

Part of the **OpenClaw Smart Consumer** skill suite:

```
TrendRadar (signal source)
    ↓  ↑↑ surging item detected
BuyWise (is it worth buying? price + reviews)
    ↓  confirmed: buy now
CouponClaw (find coupon codes + stack cashback)
```

| Skill | Description |
|---|---|
| **TrendRadar** | Trend detection ← you are here |
| [BuyWise](https://github.com/jiajiaoy/BuyWise) | Buying decision for trending items |
| [CouponClaw](https://github.com/jiajiaoy/CouponClaw) | Coupons + cashback for confirmed buys |
| [NewsToday](https://github.com/jiajiaoy/NewsToday) | News feed including consumer trend signals |

## Keywords

trending products · viral products · what's hot · going viral · TikTok trends · xiaohongshu trending · Reddit hot · Google Trends · Product Hunt · social commerce · product discovery · 爆款 · 热销 · 种草 · 小红书爆款 · 消费趋势 · 热门商品

---

Built for [OpenClaw](https://openclaw.ai) · Published on [clawhub.ai/skills/trendradar](https://clawhub.ai/skills/trendradar)


path: package.json
content: {
  "name": "trendradar",
  "version": "1.1.2",
  "description": "Spot viral products before prices spike — track 小红书, 微博, Reddit, Google Trends & Product Hunt for rising trends. Get surge signals and optimal buy timing.",
  "keywords": [
    "trending products",
    "trending",
    "trending now",
    "what's trending",
    "viral products",
    "viral items",
    "going viral",
    "what's going viral",
    "hot items",
    "hot products",
    "what's hot",
    "rising products",
    "TikTok trends",
    "TikTok shop",
    "trending on TikTok",
    "xiaohongshu trends",
    "trending on xiaohongshu",
    "little red book",
    "Reddit trending",
    "Reddit hot",
    "Google Trends",
    "Product Hunt",
    "new product launch",
    "social media trends",
    "social commerce",
    "social listening",
    "product discovery",
    "product trends",
    "consumer trends",
    "buying trends",
    "trend radar",
    "trend tracking",
    "trend analysis",
    "爆款",
    "今日爆款",
    "爆款预警",
    "爆款发现",
    "热销",
    "热门商品",
    "热门产品",
    "新品推荐",
    "小红书爆款",
    "小红书热门",
    "小红书种草",
    "抖音热门",
    "微博热搜",
    "什么在火",
    "趋势",
    "热度",
    "种草",
    "种草必备",
    "消费趋势",
    "产品发现",
    "社交电商",
    "daily hot",
    "daily trending",
    "top products today"
  ],
  "main": "scripts/scan.js",
  "scripts": {
    "scan": "node scripts/scan.js",
    "daily-hot": "node scripts/daily-hot.js"
  },
  "openclaw": {
    "triggers": [
      "trending",
      "what's trending",
      "what's hot",
      "viral",
      "trending products",
      "hot items",
      "going viral",
      "爆款",
      "热销",
      "热门",
      "什么在火",
      "今日爆款",
      "种草",
      "最近流行"
    ],
    "entrypoint": "scripts/scan.js"
  },
  "dependencies": {}
}

path: scripts/daily-hot.js
content: #!/usr/bin/env node
'use strict';
/**
 * TrendRadar — 每日爆款简报
 * 由 openclaw cron 驱动，每日推送全品类热度榜
 * 用法: node scripts/daily-hot.js [--region cn|us|global|all] [--lang zh|en]
 */

const ALLOWED_REGIONS = new Set(['cn', 'us', 'global', 'all']);

const args = process.argv.slice(2);
const langIdx = args.indexOf('--lang');
const lang = langIdx !== -1 && args[langIdx + 1] === 'en' ? 'en' : 'zh';
const regionIdx = args.indexOf('--region');
const rawRegion = regionIdx !== -1 ? args[regionIdx + 1] : 'all';
const region = ALLOWED_REGIONS.has(rawRegion) ? rawRegion : 'all';

const now = new Date();
const WEEKDAYS_ZH = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];
const MONTHS_EN = ['January','February','March','April','May','June','July','August','September','October','November','December'];
const dateZH = `${now.getFullYear()}年${now.getMonth()+1}月${now.getDate()}日 ${WEEKDAYS_ZH[now.getDay()]}`;
const dateEN = `${MONTHS_EN[now.getMonth()]} ${now.getDate()}, ${now.getFullYear()}`;

// 分品类数据源
const categorySources = {
  cn: [
    { cat: '数码/家电', sources: [
      { url: 'https://www.smzdm.com/fenlei/shuma/', note: '提取今日收藏/评论增长最快的前3条' },
      { url: 'https://www.xiaohongshu.com/explore?type=normal&tag=%E6%95%B0%E7%A0%81', note: '数码标签热门笔记' },
    ]},
    { cat: '美妆/护肤', sources: [
      { url: 'https://www.smzdm.com/fenlei/meizhuang/', note: '提取今日热门美妆商品' },
      { url: 'https://www.xiaohongshu.com/explore?type=normal&tag=%E7%BE%8E%E5%A6%86', note: '美妆标签热门笔记前3条' },
    ]},
    { cat: '家居/生活', sources: [
      { url: 'https://www.smzdm.com/fenlei/jiajushenghuoyongpin/', note: '今日热门家居商品' },
    ]},
    { cat: '服饰/穿搭', sources: [
      { url: 'https://www.xiaohongshu.com/explore?type=normal&tag=%E7%A9%BF%E6%90%AD', note: '穿搭标签热门推荐' },
    ]},
  ],
  us: [
    { cat: 'Electronics', sources: [
      { url: 'https://www.reddit.com/r/gadgets/hot/', note: 'Top 3 posts this week' },
      { url: 'https://www.producthunt.com/', note: "Today's top new tech products" },
    ]},
    { cat: 'Beauty & Health', sources: [
      { url: 'https://www.reddit.com/r/SkincareAddiction/hot/', note: 'Top 3 recommended products' },
    ]},
    { cat: 'Home & Living', sources: [
      { url: 'https://www.reddit.com/r/malelivingspace/hot/', note: 'Popular home products' },
    ]},
    { cat: 'Fashion', sources: [
      { url: 'https://www.reddit.com/r/femalefashionadvice/hot/', note: 'Trending fashion picks' },
    ]},
  ],
};

const activeCategories = region === 'cn' ? categorySources.cn
  : region === 'us' ? categorySources.us
  : [...categorySources.cn, ...categorySources.us];

if (lang === 'zh') {
  const catList = activeCategories.map((c, ci) => {
    const srcList = c.sources.map((s, si) =>
      `   ${ci + 1}.${si + 1} 打开 ${s.url}\n       → ${s.note}`
    ).join('\n');
    return `【${c.cat}】\n${srcList}`;
  }).join('\n\n');

  console.log(`请扫描今日各品类热门商品，生成每日爆款简报。
当前日期：${dateZH}

使用 browser 工具导航以下页面，每个品类提取 1-3 个热度最高的商品：

${catList}

补充信号：
- web_search "今日 ${now.getFullYear()}年${now.getMonth()+1}月${now.getDate()}日 爆款 好物 推荐" → 获取今日全网热词
- web_search "小红书 今日爆款 ${now.getMonth()+1}月" → 补充小红书月度爆款

整理规则：
- 每品类最多3条，全榜共 8-10 条
- 每条注明：商品名、热度来源平台、趋势方向（↑↑/↑/→/↓）、商业信号
- 优先选择"正在爆发"的商品（↑↑），而非已经见顶的
- 跨品类对比，最后选出 TOP 3 最值得关注

输出格式：
📡 TrendRadar · 今日爆款 · ${dateZH}
━━━━━━━━━━━━━━━━━━━━━━━

📱 数码/家电
① [商品名] ↑↑ | [热度说明] | 🔥爆发期
② ...

💄 美妆/护肤
① [商品名] ↑ | [热度说明] | 📈上升期
② ...

🏠 家居/生活
...

👗 服饰/穿搭
...

━━━━━━━━━━━━━━━━━━━━━━━
🏆 今日 TOP 3 最值关注
① [商品] — [1句理由]
   → 立即分析：openclaw run buywise advise "[商品名]"
   → 找券：openclaw run couponclaw find "[商品名]"
② ...
③ ...

💡 回复商品名查详细趋势 · 回复"找券"叠加优惠`);

} else {
  const catList = activeCategories.map((c, ci) => {
    const srcList = c.sources.map((s, si) =>
      `   ${ci + 1}.${si + 1} Open ${s.url}\n       → ${s.note}`
    ).join('\n');
    return `[${c.cat}]\n${srcList}`;
  }).join('\n\n');

  console.log(`Please scan today's trending products across categories and generate a daily hot items briefing.
Date: ${dateEN}

Use the browser tool to navigate each page and extract the top 1-3 trending items per category:

${catList}

Supplement with:
- web_search "trending products today ${now.getFullYear()} Reddit TikTok" → global trend signals
- web_search "viral product TikTok ${MONTHS_EN[now.getMonth()]} ${now.getFullYear()}" → TikTok viral items this month

Rules:
- Max 3 items per category, 8-10 total
- Each entry: product name, source platform, trend direction (↑↑/↑/→/↓), commercial signal
- Prioritize surging items (↑↑) over items already at peak
- Compare across categories; select TOP 3 overall

Output format:
📡 TrendRadar · Daily Hot · ${dateEN}
━━━━━━━━━━━━━━━━━━━━━━━

📱 Electronics
① [product] ↑↑ | [signal data] | 🔥 Surging
② ...

💄 Beauty & Health
① [product] ↑ | [signal data] | 📈 Rising
② ...

🏠 Home & Living
...

👗 Fashion
...

━━━━━━━━━━━━━━━━━━━━━━━
🏆 Today's TOP 3 Picks
① [product] — [one-sentence reason]
   → Deep analysis: openclaw run buywise advise "[product]"
   → Find coupons: openclaw run couponclaw find "[product]"
② ...
③ ...

💡 Reply with a product name for trend details · Reply "find coupons" to stack deals`);
}


path: scripts/scan.js
content: #!/usr/bin/env node
'use strict';
/**
 * TrendRadar — 热搜雷达主入口
 * 扫描社交媒体和社区，识别正在爆火的商品/品牌/话题，输出趋势方向和商业信号
 * 用法: node scripts/scan.js [关键词/品类] [--region cn|us|global|all] [--lang zh|en]
 */

const ALLOWED_REGIONS = new Set(['cn', 'us', 'global', 'all']);

const args = process.argv.slice(2);
const langIdx = args.indexOf('--lang');
const lang = langIdx !== -1 && args[langIdx + 1] === 'en' ? 'en' : 'zh';
const regionIdx = args.indexOf('--region');
const rawRegion = regionIdx !== -1 ? args[regionIdx + 1] : 'all';
const region = ALLOWED_REGIONS.has(rawRegion) ? rawRegion : 'all';
const queryArgs = args.filter((a, i) => {
  if (['--lang', '--region'].includes(a)) return false;
  if (['--lang', '--region'].includes(args[i - 1])) return false;
  return true;
});
const query = queryArgs.join(' ').trim();

const now = new Date();
const dateISO = `${now.getFullYear()}-${String(now.getMonth()+1).padStart(2,'0')}-${String(now.getDate()).padStart(2,'0')}`;
const WEEKDAYS_ZH = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];
const MONTHS_EN = ['January','February','March','April','May','June','July','August','September','October','November','December'];
const dateZH = `${now.getFullYear()}年${now.getMonth()+1}月${now.getDate()}日 ${WEEKDAYS_ZH[now.getDay()]}`;
const dateEN = `${MONTHS_EN[now.getMonth()]} ${now.getDate()}, ${now.getFullYear()}`;

const encoded = query ? encodeURIComponent(query) : '';

const sources = {
  cn: query ? [
    { label: '小红书', url: `https://www.xiaohongshu.com/search_result?keyword=${encoded}&type=51`, note: '搜索笔记数量、最近发布时间、热门标签，判断是否处于爆发期' },
    { label: '微博热搜', url: `https://s.weibo.com/weibo?q=${encoded}&Refer=top`, note: '查是否进入微博热搜，记录热搜排名和阅读量' },
    { label: '什么值得买', url: `https://search.smzdm.com/?c=home&s=${encoded}&v=b`, note: '查近7天收藏数/评论数增长趋势，判断购买意愿热度' },
  ] : [
    { label: '小红书今日热门', url: `https://www.xiaohongshu.com/explore`, note: '提取首页"发现"板块热门商品笔记，取互动量最高的前5条' },
    { label: '微博热搜', url: `https://s.weibo.com/top/summary`, note: '提取消费/商品相关热搜词，过滤娱乐话题' },
    { label: '什么值得买热门', url: `https://www.smzdm.com/`, note: '提取今日收藏量增长最快的前5个商品' },
    { label: '抖音热销', url: `https://www.douyin.com/hot`, note: '如可访问，提取热销商品榜单前5条' },
  ],
  us: query ? [
    { label: 'Reddit', url: `https://www.reddit.com/search/?q=${encoded}&sort=hot&t=week`, note: '提取过去7天热帖数量、upvotes、评论数，判断讨论热度' },
    { label: 'Google Trends', url: `https://trends.google.com/trends/explore?q=${encoded}&date=now%207-d`, note: '查近7天搜索量趋势，是否"突破性上升"' },
    { label: 'Product Hunt', url: `https://www.producthunt.com/search?q=${encoded}`, note: '科技/新品类产品查热度排名和点赞数' },
  ] : [
    { label: 'Reddit /r/deals', url: `https://www.reddit.com/r/deals/hot/`, note: '提取热帖中的热销商品，记录 upvotes 和评论数' },
    { label: 'Reddit /r/BuyItForLife', url: `https://www.reddit.com/r/BuyItForLife/hot/`, note: '口碑型热销品，提取近7天热帖' },
    { label: 'Google Trends', url: `https://trends.google.com/trending?geo=US`, note: '提取今日美国热门搜索中的商品类词条' },
    { label: 'Product Hunt', url: `https://www.producthunt.com/`, note: '提取今日/本周热门新品' },
  ],
};

const activeSources = [];
if (region === 'cn') activeSources.push(...sources.cn);
else if (region === 'us') activeSources.push(...sources.us);
else activeSources.push(...sources.cn, ...sources.us);

if (lang === 'zh') {
  const sourceList = activeSources.map((s, i) =>
    `${i + 1}. 打开 ${s.url}\n   → ${s.label}：${s.note}`
  ).join('\n\n');

  const subject = query ? `「${query}」` : '全品类';

  console.log(`请扫描${subject}的社交媒体热度，识别正在爆火的商品和趋势信号。
当前日期：${dateZH}

使用 browser 工具依次导航以下页面，提取真实热度数据：

${sourceList}

${query ? '' : `
另外补充执行：
- web_search "今日 ${dateISO} 小红书爆款 好物推荐" → 获取今日热词
- web_search "trending products Reddit ${dateISO}" → 获取英文社区今日趋势
`}

【趋势判断规则】
根据以下信号判断每个商品的趋势方向：
- ↑↑ 急速上升：近7天讨论量增长 >200%，或刚进热搜前50
- ↑ 上升中：近7天讨论量增长 50-200%，热度持续
- → 高位平稳：热度高但增速放缓，已进入成熟期
- ↓ 开始降温：讨论量连续3天下降

【商业信号判断】
- 🔥 爆发期（↑↑）：先买先得，价格可能随热度上涨
- 📈 上升期（↑）：好时机，热度带来更多优惠竞争
- 📊 成熟期（→）：稳定选择，但不会有价格红利
- 🧊 降温期（↓）：可等待价格下跌，或改选替代品

输出格式：
📡 TrendRadar · ${subject} · ${dateZH}
━━━━━━━━━━━━━━━━━━━━━━━
🔥 热度趋势排行

① [商品/品牌名] [↑↑/↑/→/↓]
   热度来源：[平台] [数据，如：12.3k笔记 / 热搜第X位 / 5.2k upvotes]
   商业信号：[🔥爆发期 / 📈上升期 / 📊成熟期 / 🧊降温期]
   → 深度分析：openclaw run buywise advise "[商品名]"
   → 找券省钱：openclaw run couponclaw find "[商品名]"

② [重复格式]
③ ...（共列出5-8条）

📊 趋势概览
↑↑ 急速上升：X个 | ↑ 上升中：X个 | → 平稳：X个 | ↓ 降温：X个

💡 最值得关注：[最有商业价值的1个趋势 + 1句理由]
━━━━━━━━━━━━━━━━━━━━━━━
💬 回复商品名查热度详情 · 回复"今日爆款"查全品类热榜`);

} else {
  const sourceList = activeSources.map((s, i) =>
    `${i + 1}. Open ${s.url}\n   → ${s.label}: ${s.note}`
  ).join('\n\n');

  const subject = query ? `"${query}"` : 'all categories';

  console.log(`Please scan social media and community platforms for trending products/brands${query ? ` related to ${subject}` : ''}.
Date: ${dateEN}

Use the browser tool to navigate each page and extract real trend data:

${sourceList}

${query ? '' : `
Also run:
- web_search "trending products today ${dateISO} Reddit TikTok" → supplement with keyword signals
- web_search "viral product TikTok ${dateISO}" → TikTok viral items
`}

[Trend direction rules]
Assign a trend direction to each item based on the data:
- ↑↑ Surging: discussion volume up >200% in 7 days, or just entered top trending
- ↑ Rising: discussion volume up 50-200% in 7 days, sustained momentum
- → Peak / stable: high volume but growth slowing, entering maturity
- ↓ Cooling: discussion volume declining 3+ consecutive days

[Commercial signal]
- 🔥 Surging (↑↑): buy before price rises with demand
- 📈 Rising (↑): good timing — more deals as competition increases
- 📊 Mature (→): stable choice, no price advantage
- 🧊 Cooling (↓): wait for price drop, or switch to alternatives

Output format:
📡 TrendRadar · ${subject} · ${dateEN}
━━━━━━━━━━━━━━━━━━━━━━━
🔥 Trending Now

① [Product/Brand] [↑↑/↑/→/↓]
   Signal source: [Platform] [data, e.g.: 12.3k posts / trending #X / 5.2k upvotes]
   Commercial signal: [🔥 Surging / 📈 Rising / 📊 Mature / 🧊 Cooling]
   → Deep analysis: openclaw run buywise advise "[product name]"
   → Find coupons: openclaw run couponclaw find "[product name]"

② [repeat format]
③ ... (list 5-8 items total)

📊 Trend overview
↑↑ Surging: X | ↑ Rising: X | → Stable: X | ↓ Cooling: X

💡 Top pick: [the 1 item with most commercial value + one-sentence reason]
━━━━━━━━━━━━━━━━━━━━━━━
💬 Reply with a product name for detailed trend data · Reply "hot today" for full trending list`);
}


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)