Token导航 LogoToken导航

Agent Skill · 开发

wechat-archiver(微信存档器)

wechat-archiver 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

wechat-archiver 是开发类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为只读;许可证信息还不明确,第三方扫描有提醒项,按安装量在开发类的 21,746 个 Skill 里排第 16,391。

总安装 509周安装 21GitHub Stars 8下载 166核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:wechat-archiver(微信存档器)
来源仓库:https://github.com/lingengyuan/my-skills
仓库路径:skills/wechat-archiver
安装命令:
npx skills add https://github.com/lingengyuan/my-skills --skill wechat-archiver
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/lingengyuan/my-skills --skill wechat-archiver

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

用于处理 GitHub 协作信息和微信存档管理。适合在需要整合仓库状态和文档归档时使用。支持 Issue、PR 等事项的批量处理与存储。从指定仓库安装并参考原始 README 了解功能细节。注意权限范围及是否允许文件写入操作。wechat-archiver 属于开发类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/wechat-archiver

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/lingengyuan/my-skills --skill wechat-archiver;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它标注为只读,先用只读任务试一次,确认行为符合预期再扩大使用范围。

常见问题

6 条

wechat-archiver 怎么安装?

在终端执行 npx skills add https://github.com/lingengyuan/my-skills --skill wechat-archiver。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

wechat-archiver 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

wechat-archiver 需要什么权限?

权限级别是只读。该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

wechat-archiver 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

wechat-archiver 用的人多吗?

公开数据是累计安装 509 次,近一周安装 21 次,下载 166 次,GitHub 8 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

wechat-archiver 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 标注为只读权限,试用阶段不容易误改本地文件。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。
  • 只想先试试效果、不希望它改动本地文件的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
wechat-archiver

微信存档器 · 本页

5098只读未明确有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

wechat-archiver (Wrapper Skill)

Purpose

一键归档微信公众号文章到知识库,自动生成结构化笔记。

此 skill 是一个 wrapper/orchestrator,负责:

  1. 调用 wechat2md 抓取原始文章
  2. 统一路径管理、幂等性控制
  3. 调用 note-creator 生成结构化笔记
  4. 聚合所有产物到单一资产目录

核心原则:

  • ✅ 幂等性:同一 URL 重复抓取不会产生混乱
  • ✅ 可追溯:保留原文、图片、运行日志
  • ✅ 单一资产目录:所有文件集中在同一目录便于 review
  • ✅ 增量友好:支持批量重跑、更新

Dependencies

此 skill MUST 依赖以下 skills:

  • wechat2md/SKILL.md - 抓取微信文章并转换为 Markdown
  • note-creator/SKILL.md - 生成结构化笔记

Inputs

单篇模式

  • article_url (必填): 微信公众号文章 URL (mp.weixin.qq.com)
  • target_folder (可选): 目标文件夹,默认 20-阅读笔记
  • force (可选, bool): 强制重新生成笔记,默认 false
  • canvas (可选): canvas 生成策略,默认 auto

- auto: 根据关键词规则自动判断 - on: 总是生成 - off: 不生成

  • base (可选): base 生成策略,默认 auto

- auto: 根据关键词规则自动判断 - on: 总是生成 - off: 不生成

批量模式

  • inbox_file (必填): 包含微信文章链接的 markdown 文件路径
  • target_folder (可选): 目标文件夹,默认 20-阅读笔记
  • dry_run (可选, bool): 预览模式,不实际处理
  • force (可选, bool): 强制重新处理已完成的 URL
  • mark_done (可选, bool): 处理后标记源文件,默认 true

详见 references/batch-processing.md


Output Contract

CRITICAL: Output paths are relative to CURRENT WORKING DIRECTORY (CWD)

所有输出 MUST 写入到:

outputs/<target_folder>/<slug>/
  ├── article.md              # 原始文章(从 wechat2md 复制/移动)
  ├── images/                 # 图片文件夹(从 wechat2md 复制/移动)
  ├── note.md                 # 结构化笔记(note-creator 生成)
  ├── diagram.canvas          # 可选:文章逻辑结构图
  ├── table.base              # 可选:文章要点/概念表
  ├── meta.json               # 统一元数据(merge wrapper + note-creator)
  └── run.jsonl               # 运行日志(每次运行追加一行)

其中:

  • <slug> = YYYYMMDD-<标题slug>-<asset_id前6位>

- 例:20260111-understanding-async-a1b2c3

  • <asset_id> = sha1(normalized_url)

- 用于幂等性判断的主键


Algorithm (Strict Execution Checklist)

0) 前置检查

  • 验证 article_url 是否为有效的微信公众号 URL
  • 如果不是 mp.weixin.qq.com 域名,报错并退出

1) 调用 wechat2md 抓取文章

python3 .claude/skills/wechat2md/tools/wechat2md.py "<article_url>"

期望输出:

  • outputs/<title>/<title>.md - 原始 Markdown
  • images/<title>/ - 图片文件夹

读取输出:

  • 提取 article_title(从 MD 文件名或内容)
  • 记录 temp_md_path、temp_images_dir

2) 生成 asset_id 和 slug

import hashlib

# Normalize URL (移除追踪参数等)
normalized_url = normalize_url(article_url)
asset_id = hashlib.sha1(normalized_url.encode()).hexdigest()

# Generate slug
date_prefix = datetime.now().strftime("%Y%m%d")
title_slug = sanitize_title(article_title, max_len=50)
asset_id_short = asset_id[:6]
slug = f"{date_prefix}-{title_slug}-{asset_id_short}"

3) 创建统一资产目录

asset_dir = "<cwd>/outputs/<target_folder>/<slug>/"
mkdir -p "${asset_dir}"

4) 统一文件到资产目录

# 复制原始文章
cp "${temp_md_path}" "${asset_dir}/article.md"

# 复制图片文件夹
cp -r "${temp_images_dir}" "${asset_dir}/images/"

# CRITICAL: Fix image paths in article.md
# wechat2md generates images with ./images/ prefix (portable relative path)
# After copying images to same directory as article.md, links work correctly
# No path replacement needed!

# 清理临时目录
rm -rf "outputs/<title>/"  # wechat2md 的临时输出

5) 计算哈希并判断幂等性

# 计算 article.md 内容哈希
with open(f"{asset_dir}/article.md", "r", encoding="utf-8") as f:
    content = f.read()
hash_content = hashlib.sha1(content.encode()).hexdigest()

# 检查是否存在历史 meta.json
meta_path = f"{asset_dir}/meta.json"
if os.path.exists(meta_path) and not force:
    with open(meta_path, "r", encoding="utf-8") as f:
        meta = json.load(f)
    if meta.get("hash_content") == hash_content:
        # 内容未变化,跳过 note-creator
        log_run("skipped", "content unchanged")
        return success(asset_dir, "skipped")

6) 调用 note-creator 生成结构化笔记

如果需要生成笔记(首次运行或内容变化或 force=true):

Step 6.1: 决定 artifact_plan

读取 article.md 内容,按 rules/classification.md 中的关键词规则判断 canvas/base 是否启用。on/off 参数可覆盖 auto 逻辑。构建 artifact_plan = ["md"] + (enabled items)。

Step 6.2: 调用 note-creator

通过 Skill(note-creator) 调用,传入:

  • user_prompt: 基于 article.md 内容生成的摘要提示词
  • optional_context_files: [article.md]
  • 额外上下文:

- title: article_title - folder: target_folder - artifact_plan: artifact_plan - target_slug: slug - output_to_same_dir: true # 告知 note-creator 输出到同一目录

注意: note-creator 会生成 note.md、diagram.canvas、table.base、meta.json 到同一资产目录。

7) 合并 meta.json

# 读取 note-creator 生成的 meta.json
note_meta = read_json(f"{asset_dir}/meta.json")

# 构建统一的 meta.json
unified_meta = {
    # Article metadata
    "asset_id": asset_id,
    "url": article_url,
    "title": article_title,
    "published_at": extract_date(article_content),  # 尝试从文章提取
    "ingested_at": datetime.now().isoformat(),
    "hash_content": hash_content,

    # Note-creator metadata (merge)
    "category": note_meta.get("category", "article"),
    "tags": note_meta.get("tags", []),
    "properties": note_meta.get("properties", {}),

    # Artifact plan
    "artifact_plan": artifact_plan,

    # Run info
    "last_run_at": datetime.now().isoformat(),
    "last_run_status": "success",
}

write_json(f"{asset_dir}/meta.json", unified_meta)

8) 记录运行日志

{"timestamp": "2026-01-11T10:30:00", "action": "ingest", "asset_id": "a1b2c3...", "status": "success", "hash_content": "...", "artifact_plan": ["md", "canvas"]}
{"timestamp": "2026-01-11T11:00:00", "action": "update", "asset_id": "a1b2c3...", "status": "skipped", "reason": "content unchanged"}

9) 清理临时文件

# 删除 wechat2md 的临时输出(如果还残留)
rm -rf "outputs/<title>/"

10) 输出执行摘要

返回给用户:

  • 资产目录路径
  • 生成的文件列表
  • 运行状态(success/skipped/updated)
  • 如果生成了 canvas/base,提示用户

File Writing Rules (CRITICAL)

  • 每个步骤的文件 MUST 实际写入到磁盘
  • 使用绝对路径或确保在 CWD 下使用正确的相对路径
  • 不允许只输出内容不写文件
  • run.jsonl 每次运行追加一行,不覆盖历史

Hard Constraints

幂等性

  • 相同 URL 必须生成相同的 asset_id
  • 相同内容(hash_content)默认跳过 note-creator
  • force=true 时跳过幂等检查

目录结构

  • 所有文件 MUST 在同一个 <slug> 目录下
  • 不允许分散存放
  • article.md MUST 保留(不可删除)

Meta.json

  • MUST 包含 asset_id、hash_content、url
  • MUST merge note-creator 的元数据
  • 更新时保留历史字段(如 first_ingested_at)

Artifact Plan

  • note.md MUST 始终生成
  • canvas/base 默认 auto,根据关键词规则判断
  • 规则定义在 rules/classification.md

Error Handling

wechat2md 失败

  • 记录错误到 run.jsonl
  • 不创建资产目录
  • 向用户返回错误信息

note-creator 失败

  • 保留 article.md 和 images/
  • 记录错误到 run.jsonl
  • meta.json 中标记 last_run_status: "failed"
  • 向用户返回部分成功状态

文件冲突

  • 如果资产目录已存在但 meta.json 缺失或损坏:

- 警告用户 - 询问是否覆盖或跳过


Examples

  • 首次抓取 → 完整运行 Steps 0-10,生成资产目录和所有文件
  • 重复抓取 → hash_content 不变时 Step 5 短路,跳过 note-creator
  • 强制更新 → force=true 跳过幂等检查,重新调用 note-creator
  • 批量模式 → 读取 inbox.md 中的 URL 列表,逐个执行;详见 references/batch-processing.md

Templates

See templates/ directory:

  • execution-flow.md - 执行流程模板
  • meta-merge.md - meta.json 合并规则
  • classification-rules.md - canvas/base 自动判断规则

平台分布

Codex

38.88%
按下载量换算65

Claude

29.37%
按下载量换算49

Cursor

20.44%
按下载量换算34

Gemini CLI

8.94%
按下载量换算15

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills