Communitygithub.com

scrawl

Leia e explore capturas de tela do Scrawl, onde alguém gravou a tela enquanto falava, clicava e desenhava marcas vermelhas. Use sempre que uma mensagem contiver uma captura Scrawl, ou quando o usuário se referir a algo que acabou de gravar ou desenhar.

O que é scrawl?

Este skill permite que um agente de IA interprete e interaja com capturas de tela criadas pelo aplicativo Scrawl, que registra a tela, voz, cliques e anotações a tinta vermelha do usuário. O resultado é um pacote `.scrawl` (uma pasta) que funciona como um relatório de bug visual — em vez de descrever um problema, o usuário envia a gravação. O agente deve ler atentamente o resumo (`summary.md`) e a `contact-sheet.png` antes de responder, e nunca pedir ao usuário para explicar novamente o que a captura já mostra. Se algo não estiver claro, o agente pode usar o comando `scrawl zoom` para examinar um momento específico com mais detalhes, extrair quadros ou visualizar marcas. O skill suporta a navegação por keyframes numerados, interpretação de desenhos (círculos, flechas, laser pointer), e oferece uma CLI (`scrawl`) para comandos como `inspect`, `frames`, `send` (para enviar a captura a uma sessão do OpenCode) e `export` (para gerar um vídeo com as anotações). A CLI está disponível apenas no Mac com Scrawl instalado; em outras plataformas, o agente deve ler os arquivos diretamente.

Funciona com~Claude Code~Codex CLI✓Cursor✓OpenCode
npx skills add https://github.com/huaxel/dotfiles/tree/main/skills/scrawl

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Capturas Scrawl

O Scrawl grava a tela, voz, cliques e tinta vermelha de alguém, e empacota o resultado em uma pasta .scrawl (um pacote). A pessoa envia isso para mostrar um problema em vez de descrevê-lo, então a captura é o relatório de bug. Leia atentamente antes de responder, e não peça para explicarem novamente o que a captura já mostra. Se algo não estiver claro, olhe mais de perto com scrawl zoom primeiro.

Como fica uma colagem

[scrawl 0:33 · OpenCode “Settings” · /Users/me/Library/Application Support/scrawl/captures/scrawl-1792432139176.scrawl]
Abra o contact-sheet.png e as frames/ naquela pasta antes de alterar qualquer coisa: as marcas e palavras só fazem sentido nas imagens, que podem mostrar mais do que o texto.
Cortado para: a atividade no OpenCode (quadros completos em frames-full/)
- #1 (0:04) [clicou “New tab”] “Command T cria uma nova sessão, mas aqui deveria criar uma aba.”
- #2 (0:07) “Não, não cria.”
- #3 (0:10) ⚑ “Diz command shift B cria uma nova aba.”
- #4 (0:18) clicou (x 0.51, y 0.93)
  • A primeira linha tem a duração, o app e janela gravados, e o caminho do pacote.
  • A próxima linha pede para você abrir as imagens primeiro. Faça isso: o texto é apenas o que foi dito e feito, e um problema pode aparecer em um quadro sem ser marcado ou mencionado.
  • Cada linha #N (M:SS) é um keyframe: o que fizeram naquele momento entre colchetes, depois o que disseram enquanto estava na tela. Uma linha sem citação tem apenas a ação.
  • ⚑ significa que marcaram o momento propositalmente. ⟨Nome⟩ significa que o app informou uma nova tela. Linhas começando com · são eventos ou valores que o app registrou.
  • Linhas opcionais perto do topo: For session: (para onde o Scrawl enviou), Screen: com contexto do app, Note:, e Cropped to:.
  • Coordenadas são frações da área capturada, a partir do canto superior esquerdo (x 0.51 fica ligeiramente à direita do centro).

Quando você responder, refira-se aos momentos da mesma forma, como em "#3 (0:10)", para que a pessoa possa encontrá-los na contact-sheet.

Lendo um pacote

  1. Olhe primeiro para contact-sheet.png no pacote (geralmente já está anexada). Ela mostra cada keyframe em ordem cronológica, da esquerda para a direita e de cima para baixo, cada um com seu número N em um pequeno chip branco em um canto superior (o #N em summary.md).
  2. Leia as linhas de transcrição ao lado dela. O reconhecimento de fala pode entender errado nomes e termos de código; confie na tela quando os dois discordarem.
  3. Abra frames/frame-NN.png para qualquer keyframe que precisar em tamanho real (frame-03.png é #3). Quando o resumo disser Cropped to:, as telas sem corte estão em frames-full/.

O que os desenhos significam:

  • Traços vermelhos, círculos, sublinhados e setas são as marcas da pessoa, e apontam para o problema. Marcas desenhadas na mesma tela aparecem todas em um único keyframe. Quando há várias, o texto as numera em ordem de desenho (✎① 0:06 …, ✎② 0:09 …); a imagem mostra apenas a tinta, então use scrawl zoom --mark para ver qual tinta é qual.
  • Uma ondulação ao redor do cursor indica um clique ou toque, e um rastro de dedo indica um deslize.
  • Um rastro vermelho brilhante que afina é o apontador laser, usado para apontar sem deixar marca.

Outros arquivos: scrawl.json é o manifesto completo (keyframes, marks com forma e caixa, events, transcript.words com tempos, contexto context do app e autocrop). recording.mp4 ou recording.mov e audio.wav são as mídias originais. Um arquivo .media-pending significa que o vídeo ainda está sendo copiado de outro Mac.

A CLI scrawl

scrawl é o binário do próprio aplicativo Scrawl. Se command -v scrawl não encontrar nada, use /Applications/Scrawl.app/Contents/MacOS/scrawl (ou o mesmo caminho em ~/Applications), e avise à pessoa que ela pode colocá-lo no PATH com Instalar em Ajustes do Scrawl › Agentes. Ele funciona apenas no Mac com Scrawl instalado. Em qualquer outro lugar, leia contact-sheet.png, frames/ e scrawl.json diretamente. Todo comando aceita um caminho de pacote, e a maioria usa latest por padrão (a captura mais recente). Coloque o caminho entre aspas, pois geralmente contém "Application Support".

Olhar mais de perto um momento

Use zoom quando o problema for movimento (uma animação, um salto, uma cintilação) ou acontecer entre keyframes, ou quando você não conseguir identificar para onde uma marca aponta:

scrawl zoom <pacote> --at 0:21                 # um horário, M:SS ou segundos
scrawl zoom <pacote> --at "a largura muda"     # ou uma frase que disseram
scrawl zoom <pacote> --at 0:21 --span 1 --frames 16 --full
scrawl zoom <pacote> --mark 2                  # a marca mostrada como ✎② no texto
scrawl zoom <pacote> --mark 1 --frame 4        # ✎① do keyframe #4, quando vários têm ✎①

Isso imprime o caminho de uma folha PNG de quadros ao redor daquele momento, o horário de cada célula e o que foi dito. Abra o PNG e olhe antes de agir com base no feedback. --span são os segundos cobertos (padrão 2, um quarto deles antes do momento), --frames o número de células (padrão 12) e --full mostra a tela inteira em vez do corte. As células são numeradas a partir de #1 dentro da folha, então esses números não são números de keyframe.

--mark recebe o número de uma marca do texto ou seu id (m2) e centraliza a folha no horário em que foi desenhada, apenas com a tinta daquela marca, desenhada por completo desde o momento em que começa. scrawl inspect <pacote> --marks lista cada marca (#2 ✎② 0:09 marked (2 strokes) · m2: keyframe, número, horário, forma, em que foi desenhada, id), e --marks --json fornece o mesmo em JSON.

Outros comandos

scrawl inspect <pacote>               # summary.md, o texto acima
scrawl inspect <pacote> --json        # scrawl.json
scrawl inspect <pacote> --marks       # as marcas, numeradas como no texto [--json]
scrawl frames <pacote> --from 0:04 --to 0:06 [--fps 4]   # PNGs simples de um intervalo; imprime seus caminhos
scrawl send <pacote> --session ses_…  # enfileira a captura em uma sessão do OpenCode
scrawl send <pacote> --clipboard      # copia o texto do resumo para a área de transferência
scrawl export <pacote> [--out demo.mp4] [--zoom] [--crop auto|full|x,y,w,h] [--size 1920]
  • zoom e frames escrevem em <pacote>/zoom/. Deixe o resto do pacote como está, pois o Scrawl gerencia esses arquivos e os limpa.
  • send sem --session vai para a sessão para a qual a captura foi endereçada (a linha For session:), e senão para a sessão mais recentemente ativa. Com um destino gravado, ele recusa um --session diferente a menos que você passe --reroute, então verifique com a pessoa antes de redirecionar.
  • export escreve um .mp4 com a tinta e cliques incorporados e o áudio sincronizado (padrão ~/Movies/Scrawl/<pacote>.mp4). --zoom suaviza em direção à atividade. --no-ink, --no-clicks, --hevc e --fps também estão disponíveis.
  • Vídeo e áudio vão para a Lixeira 7 dias após uma captura, a menos que a pessoa tenha mudado isso nos Ajustes. Depois disso, zoom, frames e export não conseguem ler o vídeo, mas frames/, a contact-sheet e scrawl.json permanecem.
  • scrawl <comando> --help lista todas as flags, e scrawl skill imprime este guia como a versão instalada o conhece.

Habilidades Relacionadas