mcpField
A
analytics-export

analytics-export

github.com/laurigates数据与数据库5951 次安装1 天前更新
代码仓库

关于 analytics-export

用于导出 `~/.claude-analytics` 中分析数据的技能,可供外部分析或报告使用。支持 JSON、CSV 和 Markdown 格式,并可指定输出文件。

主要功能

  1. 01导出分析数据
  2. 02支持 JSON、CSV 和 Markdown
  3. 03可选输出文件

适用场景

  1. 01为表格分析准备数据
  2. 02生成 Markdown 分析表
  3. 03将分析数据导出到文件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/laurigates/claude-plugins --skill analytics-export

安装后在 Claude Code 中输入/analytics-export确认已加载。

详细介绍

/analytics:export

导出分析数据,以便进行外部分析或报告。

上下文

检查分析功能是否可用:

ANALYTICS_DIR="${HOME}/.claude-analytics"
SUMMARY_FILE="${ANALYTICS_DIR}/summary.json"
EVENTS_FILE="${ANALYTICS_DIR}/events.jsonl"

if [[ ! -f "${SUMMARY_FILE}" ]]; then
  echo "No analytics data to export."
  exit 0
fi

TOTAL=$(cat "${SUMMARY_FILE}" | jq -r '.total_invocations')
echo "Exporting ${TOTAL} invocations..."

参数

  • $ARGS - 格式和可选的输出文件:
    • json(默认)- 导出为 JSON
    • csv - 导出为 CSV,以便进行电子表格分析
    • markdown - 导出为 Markdown 表格

执行

导出分析数据:

ANALYTICS_DIR="${HOME}/.claude-analytics"
SUMMARY_FILE="${ANALYTICS_DIR}/summary.json"
EVENTS_FILE="${ANALYTICS_DIR}/events.jsonl"

# Parse arguments
FORMAT=$(echo "${ARGS}" | awk '{print $1}')
OUTPUT_FILE=$(echo "${ARGS}" | awk '{print $2}')

FORMAT=${FORMAT:-json}

case "${FORMAT}" in
  json)
    if [[ -n "${OUTPUT_FILE}" ]]; then
      cat "${SUMMARY_FILE}" > "${OUTPUT_FILE}"
      echo "✓ Exported to: ${OUTPUT_FILE}"
    else
      echo "📦 Analytics Summary (JSON):"
      echo ""
      cat "${SUMMARY_FILE}" | jq '.'
    fi
    ;;

  csv)
    OUTPUT=${OUTPUT_FILE:-/dev/stdout}

    if [[ "${OUTPUT}" == "/dev/stdout" ]]; then
      echo "📦 Analytics Summary (CSV):"
      echo ""
    fi

    {
      echo "Name,Type,Count,Success,Failure,Success Rate,First Used,Last Used"
      cat "${SUMMARY_FILE}" | jq -r '
        .items |
        to_entries[] |
        [
          .key,
          .value.type,
          .value.count,
          .value.success,
          .value.failure,
          (.value.success * 100 / (.value.success + .value.failure)),
          .value.first_used,
          .value.last_used
        ] |
        @csv
      '
    } > "${OUTPUT}"

    if [[ "${OUTPUT}" != "/dev/stdout" ]]; then
      echo "✓ Exported to: ${OUTPUT}"
    fi
    ;;

  markdown)
    OUTPUT=${OUTPUT_FILE:-/dev/stdout}

    if [[ "${OUTPUT}" == "/dev/stdout" ]]; then
      echo "📦 Analytics Summary (Markdown):"
      echo ""
    fi

    {
      echo "# Command & Skill Analytics"
      echo ""
      TOTAL=$(cat "${SUMMARY_FILE}" | jq -r '.total_invocations')
      SINCE=$(cat "${SUMMARY_FILE}" | jq -r '.tracking_since')
      echo "**Total invocations:** ${TOTAL}"
      echo "**Tracking since:** ${SINCE}"
      echo ""

      echo "## Commands"
      echo ""
      echo "| Command | Uses | Success | Failure | Success Rate |"
      echo "|---------|------|---------|---------|--------------|"
      cat "${SUMMARY_FILE}" | jq -r '
        .items |
        to_entries[] |
        select(.value.type == "command") |
        "| \(.key) | \(.value.count) | \(.value.success) | \(.value.failure) | \((.value.success * 100 / (.value.success + .value.failure)) | floor)% |"
      ' | sort -t'|' -k2 -nr

      echo ""
      echo "## Skills"
      echo ""
      echo "| Skill | Uses | Success | Failure | Success Rate |"
      echo "|-------|------|---------|---------|--------------|"
      cat "${SUMMARY_FILE}" | jq -r '
        .items |
        to_entries[] |
        select(.value.type == "skill") |
        "| \(.key) | \(.value.count) | \(.value.success) | \(.value.failure) | \((.value.success * 100 / (.value.success + .value.failure)) | floor)% |"
      ' | sort -t'|' -k2 -nr
    } > "${OUTPUT}"

    if [[ "${OUTPUT}" != "/dev/stdout" ]]; then
      echo "✓ Exported to: ${OUTPUT}"
    fi
    ;;

  *)
    echo "❌ Unknown format: ${FORMAT}"
    echo ""
    echo "Supported formats:"
    echo "  • json     - JSON format"
    echo "  • csv      - CSV for spreadsheet import"
    echo "  • markdown - Markdown table"
    echo ""
    echo "Examples:"
    echo "  /analytics:export json"
    echo "  /analytics:export csv analytics.csv"
    echo "  /analytics:export markdown report.md"
    exit 1
    ;;
esac

echo ""
echo "💡 Tip: Raw event data is in ${EVENTS_FILE}"

后续操作

无。

评论

支持 Markdown