Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add cafe3310/public-agent-skills --skill chat-screenrec-extractorgit clone --depth 1 https://github.com/cafe3310/public-agent-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/cafe3310/public-agent-skills/chat-screenrec-extractor)<a href="https://agentmods.dev/skills/cafe3310/public-agent-skills/chat-screenrec-extractor"><img src="https://agentmods.dev/badge/skills/cafe3310/public-agent-skills/chat-screenrec-extractor/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/cafe3310/public-agent-skills/chat-screenrec-extractor"><img src="https://agentmods.dev/badge/skills/cafe3310/public-agent-skills/chat-screenrec-extractor.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00048 | $0.01665 |
| Opus 5.5 | $0.00019 | $0.00666 |
| Sonnet 5.5 | $0.00010 | $0.00333 |
| Haiku 4.5 | $0.00005 | $0.00167 |
Grade A, and why
chat-screenrec-extractor scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 112 lines — stays where its author put it; the contents beside it link to each section on GitHub.
技能:群聊录屏记录提取器 (Chat Screenrec Extractor)
概述
此技能用于将包含群聊滚屏录屏的一系列视频文件(.mp4 / .mov 等)转化为结构化、分群归档的 Markdown 聊天记录。支持:
- 交互式 Web 调参与 ROI 标定:可视化调整切帧采样周期(步长/帧率),并在大图上交互式框选「群聊标题栏」与「聊天消息正文区」ROI,一键保存配置。
- 高精度本地 OCR:调用 macOS 原生 Apple Vision 框架,零外部 Python 繁重依赖,快速输出文本与精确像素/归一化坐标。
- 滚屏时序去重与聚类:利用群聊滚屏在垂直方向移动的坐标连续性与文本相似度算法,自动剔除重叠帧中的冗余行并完成消息段聚合。
- 分群独立成文:根据标题栏识别自动识别群聊切换,输出包含发送人、消息内容、时间戳与系统提示的标准 Markdown 文件。
核心工作流
第一阶段:交互式采样调参与 ROI 框选标定 (Calibration)
- 启动服务:调用
server.py,传入包含录屏视频的目录:python3 <path_to_skill>/scripts/server.py --input-dir /path/to/videos --port 8765 - 浏览器标定:
- 访问
http://localhost:8765。 - 拖动采样滑块(如 0.5s ~ 1.5s/帧),观察当前视频不同时刻的帧画面。
- 在主画布上拖拽框选:
- Title ROI (红色框):锁定顶部群聊名称区域(用于自动识别群名及群切换)。
- Body ROI (蓝色框):锁定消息展示区域(排除顶部状态栏与底部输入键盘)。
- 点击 保存配置 (Save Configuration),参数将自动写入目标目录下的
roi_config.json。
- 访问
第二阶段:批量切帧与原生 OCR 识别 (Batch OCR)
- 执行提取与识别:
python3 <path_to_skill>/scripts/extract_and_ocr.py --config /path/to/videos/roi_config.json - 处理逻辑与产物存放:
- 脚本使用
ffmpeg按配置周期将视频抽帧保存至<video_dir>/video-frames/目录。 - 图片命名遵循
原始名称-mmssSSS.jpg(例如recording-0133500.jpg,精确到毫秒)。 - 同时调用 macOS 原生 OCR CLI 工具对每帧进行文本识别,并在
video-frames/目录下生成同名的文本文件原始名称-mmssSSS.txt,记录时间戳、Title 标题和消息区域识别行,便于人工直接快速对照复核。 - 汇总数据保存为
.cache/ocr_results/all_frames_data.json。
- 脚本使用
第三阶段:滚屏去重与消息聚合 (Dedup & Stitching)
- 执行去重合并:
# 若录屏为向下拉取历史记录(从晚到早),使用 --direction reverse python3 <path_to_skill>/scripts/dedup_and_stitch.py --ocr-data /path/to/videos/.cache/ocr_results/all_frames_data.json --output-dir /path/to/videos/output --direction reverse - 处理逻辑:
- 群识别:根据 Title ROI 的文字变化切分 Session,自动过滤主屏列表与瞬态系统横幅。
- 时间标记提取:识别日期/时间标签(如
7/28 09:53、8/26 14:20、昨天 10:15)。 - 时序去重与反转重整:对于向下滑动录制的视频,自动将时间轴重整为正序(从早到晚),比对多帧垂直位移文本行,过滤滚动产生的冗余重复,拼接跨帧长文本。
- 生成聚合后的候选消息数据
intermediate_chats.json。
第四阶段:Agent / 模型循环整理与输出 (Format & Polish)
- 生成最终 Markdown:
- 运行格式化导出脚本,或由 Agent 循环校验并补全上下文(修复 OCR 偶发断行、规范化发送人与气泡归属),按群组输出为独立 Markdown 文件:
output/[群聊名称].md
python3 <path_to_skill>/scripts/format_markdown.py --input /path/to/output/intermediate_chats.json --output-dir /path/to/output - 运行格式化导出脚本,或由 Agent 循环校验并补全上下文(修复 OCR 偶发断行、规范化发送人与气泡归属),按群组输出为独立 Markdown 文件:
What ships with it
11 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- scripts/dedup_and_stitch.py 26 KB runs code
- scripts/extract_and_ocr.py 11 KB runs code
- scripts/format_markdown.py 5.7 KB runs code
- scripts/ocr_vision 139 KB
- scripts/ocr_vision.swift 6.4 KB
- scripts/run_pipeline.py 6.6 KB runs code
- scripts/server.py 9.4 KB runs code
- scripts/web/app.js 15 KB runs code
- scripts/web/index.html 5.1 KB
- scripts/web/style.css 7.8 KB
- templates/chat_log_template.md 447 B
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 112 lines · 48 tokens per session scan A ac81208f75cc
chat-screenrec-extractor is a skill published in the GitHub repository cafe3310/public-agent-skills (256 stars, last pushed yesterday), licensed Apache-2.0. It adds 48 tokens to every session and 1,665 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-11-05.
chat-screenrec-extractor compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| chat-screenrec-extractorcafe3310/public-agent-skills | Skill | 256 | yesterday | Apache-2.0 | A | 48 | Claude Code, Codex |
| yuqueflc1125/skills | Skill | 39 | yesterday | MIT | A | 72 | Claude Code, Codex |
| getnoteflc1125/skills | Skill | 39 | yesterday | MIT | A | 83 | Claude Code, Codex |
| preview-mermaidveelenga/preview-skills | Skill | 9 | 18d ago | MIT | A | 25 | Claude Code |
| preview-csvveelenga/preview-skills | Skill | 9 | 18d ago | MIT | A | 20 | Claude Code |
| preview-markdownveelenga/preview-skills | Skill | 9 | 18d ago | MIT | A | 20 | Claude Code |
| visa-doc-translatex-cmd/skill | Skill | 26 | 4mo ago | Apache-2.0 | A | 23 | Claude Code, Codex |