关于 scrawl
scrawl 是面向处理问题反馈的编码 Agent 技能,用于解读屏幕、语音、点击和标注组成的录制包。它指导 Agent 检查关键帧与原始媒体,并通过 CLI 放大细节、查看信息或发送捕获。
主要功能
- 01解析录制包与关键帧
- 02查看语音转录和屏幕标注
- 03按时间或标注放大画面
- 04检查捕获元数据与帧
- 05发送捕获或导出视频
适用场景
- 01根据屏幕录制定位软件问题
- 02核对转录与实际界面内容
- 03查看动画或关键帧间变化
- 04将捕获发送到 OpenCode 会话
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ kitlangton/ scrawl --skill scrawl安装后在 Claude Code 中输入/scrawl确认已加载。
详细介绍
Scrawl 捕获
Scrawl 会记录某人的屏幕、语音、点击和红色笔迹,然后将结果打包到 .scrawl 文件夹(一个捆绑包)中。他们会把它发给你,用来展示问题,而不是用文字描述;因此,这段捕获内容就是问题报告。请仔细阅读后再回答,不要再问对方解释捕获内容中已经展示的情况。如果有不清楚的地方,请先用 scrawl zoom 仔细查看。
粘贴内容的样子
[scrawl 0:33 · OpenCode “Settings” · /Users/me/Library/Application Support/scrawl/captures/scrawl-1792432139176.scrawl]
Open contact-sheet.png and frames/ in that folder before changing anything: the marks and words only make sense on the images, which can show more than the text does.
Cropped to: the activity in OpenCode (full frames in frames-full/)
- #1 (0:04) [clicked “New tab”] “Command T makes a new session, but here it should make a tab.”
- #2 (0:07) “No, it doesn't.”
- #3 (0:10) ⚑ “It says command shift B makes a new tab.”
- #4 (0:18) clicked (x 0.51, y 0.93)
- 第一行包含录制时长、所录制的应用和窗口,以及捆绑包路径。
- 下一行会提示你先打开图片。请照做:文本只记录了说过的话和执行的操作,而问题可能会显示在某一帧中,即使没有标记或提及。
- 每个
#N (M:SS)行都是一个关键帧:方括号中是当时执行的操作,之后是画面显示期间说的话。没有引述内容的行只记录了操作。 ⚑表示对方特意标记了该时刻。⟨Name⟩表示应用报告了一个新画面。以·开头的行是应用记录的事件或值。- 顶部附近可能还会有可选行:
For session:(Scrawl 将其发送到哪里)、包含应用上下文的Screen:、Note:和Cropped to:。 - 坐标是相对于捕获区域的比例,从左上角开始(x 0.51 表示中心略偏右)。
回答时,请用相同方式引用时刻,例如“#3 (0:10)”,这样对方就能在联系表中找到对应内容。
阅读捆绑包
- 先查看捆绑包中的
contact-sheet.png(通常已附上)。它按时间顺序展示每个关键帧,从左到右、从上到下排列;每帧的角落处有一个白色小标签,标明编号N(即summary.md中的#N)。 - 接着阅读旁边的转录行。语音识别可能会误听姓名和代码术语;如果两者不一致,请以屏幕内容为准。
- 如需查看完整尺寸的关键帧,请打开
frames/frame-NN.png(例如,frame-03.png是 #3)。如果摘要中有Cropped to:,未裁剪的屏幕图像位于frames-full/中。
标注的含义:
- 红色笔画、圆圈、下划线和箭头是对方添加的标记,用来指出问题。同一屏幕上的所有标记都会显示在同一个关键帧中。如果标记不止一个,文本会按绘制顺序为它们编号(
✎① 0:06 …、✎② 0:09 …);图像只显示笔迹,因此请使用scrawl zoom --mark来辨认各个笔迹。 - 光标周围的波纹表示点击或轻点,手指轨迹表示滑动。
- 逐渐变细并消失的红色发光轨迹是激光笔,用来指示内容而不留下标记。
其他文件:scrawl.json 是完整清单(关键帧、包含形状和框选区域的 marks、events、带时间信息的 transcript.words、应用 context 和 autocrop)。recording.mp4 或 recording.mov 以及 audio.wav 是源媒体文件。.media-pending 文件表示视频仍在从另一台 Mac 复制。
Scrawl CLI
scrawl 是 Scrawl 应用自带的二进制文件。如果 command -v scrawl 查找不到,请使用 /Applications/Scrawl.app/Contents/MacOS/scrawl(或 ~/Applications 下的相同路径),并告知对方可以在 Scrawl 的 Settings › Agents 中通过 Install 将其添加到 PATH。它只能在安装了 Scrawl 的 Mac 上运行。在其他地方,请直接读取 contact-sheet.png、frames/ 和 scrawl.json。每条命令都需要一个捆绑包路径,大多数命令默认使用 latest,即最新的捕获内容。请将路径用引号括起来,因为其中通常包含 Application Support。
仔细查看某一时刻
如果问题出在运动过程中(动画、跳跃、闪烁)、关键帧之间,或者你无法判断某个标记指向哪里,请使用 zoom:
scrawl zoom <bundle> --at 0:21 # a time, M:SS or seconds
scrawl zoom <bundle> --at "the width changes" # or a phrase they said
scrawl zoom <bundle> --at 0:21 --span 1 --frames 16 --full
scrawl zoom <bundle> --mark 2 # the mark shown as ✎② in the text
scrawl zoom <bundle> --mark 1 --frame 4 # ✎① of keyframe #4, when several have a ✎①
它会输出该时刻附近帧的 PNG 拼图路径、每个单元格对应的时间,以及当时说的话。请先打开 PNG 查看,再根据反馈采取行动。--span 表示覆盖的秒数(默认值为 2,四分之一的时长位于该时刻之前),--frames 表示单元格数量(默认值为 12),--full 则显示整个屏幕,而不是裁剪区域。单元格在拼图中从 #1 开始编号,因此这些编号并不是关键帧编号。
--mark 接受文本中的标记编号或标记的 id(m2),并将拼图居中于该标记绘制时的时间,只显示该标记的笔迹,并从它开始的时刻起完整绘制。scrawl inspect <bundle> --marks 会列出每个标记(#2 ✎② 0:09 marked (2 strokes) · m2:关键帧、编号、时间、形状、绘制所在位置、id),而 --marks --json 会以 JSON 格式提供相同内容。
其他命令
scrawl inspect <bundle> # summary.md, the text above
scrawl inspect <bundle> --json # scrawl.json
scrawl inspect <bundle> --marks # the marks, numbered as in the text [--json]
scrawl frames <bundle> --from 0:04 --to 0:06 [--fps 4] # plain PNGs of a range; prints their paths
scrawl send <bundle> --session ses_… # queue the capture into an OpenCode session
scrawl send <bundle> --clipboard # copy the summary text to the clipboard
scrawl export <bundle> [--out demo.mp4] [--zoom] [--crop auto|full|x,y,w,h] [--size 1920]
zoom和frames会将文件写入<bundle>/zoom/。请保留捆绑包的其余部分不变,因为 Scrawl 会管理这些文件并清理它们。- 不带
--session的send会发送到本次捕获指定的会话(For session:行所示),否则会发送到最近活动的会话。如果记录了目标会话,则除非传入--reroute,否则它会拒绝使用不同的--session;因此,重新路由前请先与对方确认。 export会导出一个.mp4文件,其中包含叠加的笔迹和点击效果,且音频保持同步(默认路径为~/Movies/Scrawl/<bundle>.mp4)。--zoom会平滑地放大并聚焦于活动区域。还可使用--no-ink、--no-clicks、--hevc和--fps。- 捕获 7 天后,视频和音频会移至废纸篓,除非有人在 Settings 中更改了该设置。此后,
zoom、frames和export将无法读取视频,但frames/、联系表和scrawl.json仍会保留。 scrawl <command> --help会列出所有标志;scrawl skill会输出本指南中已安装版本所对应的内容。