360 Secure SkillHub
360 安全技能中心

ClawHub Download Tracker

这是一款CLI工具,核心功能为追踪ClawHub平台发布的技能下载量,存储历史数据,生成日/周/月报表,支持飞书推送通知;可添加、移除、查看监控技能列表。适合需监控自有技能下载趋势、设置自动化追踪或生成分析报表的用户。输入为终端命令,输出为本地数据文件及飞书消息,仅支持ClawHub,为周期性快照非实时分析。

tsag1
tsag1
热度 39.03
最近更新 2026-07-06 11:27:25
分类:数据依赖:代码执行 / 读写文件 / 第三方 API / MCP 服务应用场景:数据处理 / 报告撰写 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add skill-download-tracker
Metadata
name
clawhub-download-tracker
description
Monitor download counts for your ClawHub-published skills. Track changes over time, generate daily/weekly/monthly reports, and push notifications via Feishu.
triggerWords
["clawhub download","download tracker","download monitoring","clawhub stats"]
metadata
{"openclaw":{"requires":{"bins":["python3","clawhub"]},"tags":["clawhub","download-tracker","monitoring","skill-analytics","clawhub-tracker"],"permissions":{"file":{"read":["~/.openclaw/workspace/data/clawhub-tracker/**"],"write":["~/.openclaw/workspace/data/clawhub-tracker/**"]},"exec":{"scripts":["*.py","*.sh"]},"network":{"domains":["open.feishu.cn"]}}}}

Overview

A CLI tool that fetches official download counts for skills published on ClawHub, stores history in local CSV, and pushes snapshots/reports via Feishu.

Use when: User wants to monitor their ClawHub skill downloads, set up automated tracking, or generate trend reports.

Do NOT use for: Real-time analytics (this is periodic snapshots, not streaming), other registries (only ClawHub), individual user analytics (skill-level only).

Quick Commands

# Snapshot (collect + Feishu push)
python3 ~/.openclaw/workspace/skills/clawhub-download-tracker/clawhub_tracker.py

# Reports
python3 .../clawhub_tracker.py report daily
python3 .../clawhub_tracker.py report weekly
python3 .../clawhub_tracker.py report monthly

# Manage monitor list
python3 .../clawhub_tracker.py add <slug> [note]
python3 .../clawhub_tracker.py remove <slug>
python3 .../clawhub_tracker.py list

Workflow

Snapshot collection

1. Load skills.csv (managed by add/remove)
2. For each slug: clawhub inspect <slug> --json → extract stats.downloads
3. Compare to last_state.json
4. If delta ≠ 0 → append to checklog.csv + update last_state
5. Build summary text
6. Archive to reports/YYYY-MM.md
7. Push to Feishu (if configured)

Report generation

1. Read checklog.csv (only delta ≠ 0 records)
2. Filter by date range (last 1d / 7d / month-to-date)
3. Build report with: per-skill start→end, cumulative delta, peak time, total
4. Print + archive + Feishu push

Add/remove skills

add <slug>     → append to skills.csv (auto-create with header if missing)
remove <slug>  → remove from skills.csv (historical checklog preserved)
list           → show monitor list with last known download counts

Prerequisites

  • clawhub CLI installed (auto-detected via shutil.which with fallback to /opt/homebrew/bin/clawhub)

  • Python 3 (built-in on macOS)

  • Feishu credentials (only needed for push notifications):

    • CLAWHUB_FEISHU_APP_ID
    • CLAWHUB_FEISHU_APP_SECRET
    • CLAWHUB_FEISHU_USER_OPEN_ID

    Configure via env vars or ~/.openclaw/workspace/data/clawhub-tracker/.env

Storage Strategy

  • checklog.csv — only records with delta ≠ 0 (sparse, keeps file small)
  • last_state.json — latest snapshot per slug (avoids re-scanning checklog on each run)
  • reports/YYYY-MM.md — monthly archive of all outputs
  • tracker.log — run history with errors
  • File locking via fcntl.flock — safe under concurrent launchd triggers

Data Files

~/.openclaw/workspace/data/clawhub-tracker/
├── skills.csv         # slug,note
├── checklog.csv       # timestamp,slug,downloads,delta
├── last_state.json    # {slug: {downloads, ts}}
├── reports/           # YYYY-MM.md archives
├── tracker.log        # Run logs
└── .tracker.lock      # File lock (transient)

Data Source

Fetches official stats.downloads via clawhub inspect <slug> --json. Direct from ClawHub registry — no third-party APIs.

Edge Cases

Scenario Behavior
Slug not found in ClawHub Mark as fetch failed, skip
Invalid slug format Reject (regex validation, prevents injection)
Missing .env Skip Feishu push, continue with local files
Empty skills.csv Send "no skills to monitor" notice to Feishu, exit
Concurrent runs Second instance detects lock, exits gracefully
checklog missing (e.g. migration) Fall back to last_state.json for delta

See Also

  • README.md — full user-facing docs (installation, launchd setup, security)
  • README.zh.md — Chinese version
  • test_clawhub_tracker.py — test suite