SuperAPI AI 工具集

view-your-harness

办公与效率

查看项目

更新于 10-16 08:30

技能介绍

用途

把本地目录清点成一个能浏览、能搜、能点开的工作台。它与 star-your-harness(负责搭)和 better-your-harness(负责体检)是一套。体检回答「我这儿哪里有问题」,工作台回答「我这儿都有什么」,后者是前者的前置——当 Skill 数量多到记不住、笔记散落在大量目录里时,需要的是一个能翻的架子,而不是一份报告。

主要能力

  • 顶栏概览:显示目录路径、文件数、目录数、总体量、Skill 数以及用过/没用过的数量。
  • 全局搜索:一个搜索框同时搜文件名、文档标题、Skill 名称和描述,按 / 聚焦,Esc 关抽屉。
  • 文件页:左侧按文件数排列的一级目录可点击下钻;卡片显示文档标题(Markdown 的 frontmatter title 或第一个 #)、类型、体量、最近改动;可按类型筛选(文档/代码/数据/图片/音视频/配置),按最近改动/体量/名称排序。
  • Skill 页:每个 Skill 一张卡,显示名字、description、真实调用次数、文件数、体量、最后更新;筛选包括全部/用过/从未调用/元信息不全/项目级;左侧列出 Skill 的所有来源目录,以及 skills/ 根下的裸 .md 文件(这些不是 Skill,永远不会被加载)。
  • 抽屉预览:点任意卡片右侧滑出。文本文件看内容,图片直接显示,Skill 看 SKILL.md 全文。三个动作:打开(交给系统默认程序)、在访达中显示、复制绝对路径。
  • 同名 Skill 折叠:按 项目 > 全局 > 插件 保留优先级最高的一条,避免「用过几个」被重复计数。

使用方式

起服务:

python3 ~/.claude/skills/view-your-harness/scripts/serve.py <目录>

它会先跑一遍索引(几秒到半分钟,看目录大小),然后起服务、自动开浏览器,终端打印端口和实际盘的路径。Ctrl-C 停止。

常用参数:

  • --port 7799:指定端口,被占用会自动往后顺延
  • --no-open:不自动开浏览器(远程/无头环境)
  • --no-usage:跳过会话日志统计,日志多时更快,代价是没有调用次数

这是前台进程,建议用 run_in_background 起,把 URL 报给用户。

交付时告诉用户三件事:地址、盘的是哪个目录、按 Ctrl-C 停。再用一两句话说说清点结果里最扎眼的内容,不要把文件清单在对话里念一遍。

只要数据不要界面时,单独跑索引器:

python3 ~/.claude/skills/view-your-harness/scripts/index.py <目录> -o /tmp/index.json

设计约束

  1. 只读:该 Skill 不改用户任何文件,服务端没有写、改、删接口。可操作的边界就是打开和定位,调系统的 open 把文件交给用户自己的编辑器和访达。
  2. 路径校验:所有路径都必须校验落在 root 之内。serve.py 的 safe_join 会 resolve 后比对,越界返 403。Skill 卡片的绝对路径额外白名单 ~/.claude 和 ~/.codex。
  3. 数字只来自 index.py:文件数、Skill 数、调用次数全部以 index.json 为准,脚本没统计的量就说「未统计」。

调用次数的口径

只认会话日志里 tool_use(name="Skill") 的 input.skill,不认 Skill 出现在系统提示词的可用清单里。统计范围是 ~/.claude/projects 和 ~/.codex/sessions 下的全部 jsonl(上限 1200 个文件)。换过客户端或清过日志就统计不到,这时页面显示「调用次数未统计」而不是 0。

适用场景

  • 需要快速了解某个本地目录里有哪些文件和 Skill
  • 需要查看 Skill 的真实调用次数、找出从未调用的 Skill
  • 需要按类型、时间或体量筛选和浏览文件
  • 需要把清点结果导出为 JSON 供其他分析使用

限制

  • 只描述目录当前状态,不评价文件质量,也不判断哪个 Skill 该留该删
  • 默认最多索引 20000 个文件,超了会在顶栏标 +,不是全量
  • 会跳过 node_modules、.git、dist、.obsidian 等构建与缓存目录
  • 卡片墙一次最多渲染 300 张,剩下的靠搜索缩小范围,不是无限滚动
  • 「从未调用」不等于「没用」——刚装的、手动看过 reference 的、被别的 Skill 内部引用的,都会显示成从未调用。这是一条线索,不是一条判决

文件结构

view-your-harness/
├── SKILL.md
└── scripts/
    ├── index.py    目录 + Skill 清点 → index.json(纯事实,不做判断)
    ├── serve.py    本地只读服务,零依赖,只绑 127.0.0.1
    └── ui.html     单页工作台,原生 JS,跟随系统深浅色