mcpField
S
scrawl

scrawl

github.com/kitlangton测试与质量792384 次安装4 天前更新
代码仓库

关于 scrawl

scrawl 是面向处理问题反馈的编码 Agent 技能,用于解读屏幕、语音、点击和标注组成的录制包。它指导 Agent 检查关键帧与原始媒体,并通过 CLI 放大细节、查看信息或发送捕获。

主要功能

  1. 01解析录制包与关键帧
  2. 02查看语音转录和屏幕标注
  3. 03按时间或标注放大画面
  4. 04检查捕获元数据与帧
  5. 05发送捕获或导出视频

适用场景

  1. 01根据屏幕录制定位软件问题
  2. 02核对转录与实际界面内容
  3. 03查看动画或关键帧间变化
  4. 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)”,这样对方就能在联系表中找到对应内容。

阅读捆绑包

  1. 先查看捆绑包中的 contact-sheet.png(通常已附上)。它按时间顺序展示每个关键帧,从左到右、从上到下排列;每帧的角落处有一个白色小标签,标明编号 N(即 summary.md 中的 #N)。
  2. 接着阅读旁边的转录行。语音识别可能会误听姓名和代码术语;如果两者不一致,请以屏幕内容为准。
  3. 如需查看完整尺寸的关键帧,请打开 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 会输出本指南中已安装版本所对应的内容。

评论

支持 Markdown