Skip to content

Instantly share code, notes, and snippets.

@lucasgrow
Last active January 27, 2026 22:03
Show Gist options
  • Select an option

  • Save lucasgrow/2bfa440c17375ec687a8c71291486d4c to your computer and use it in GitHub Desktop.

Select an option

Save lucasgrow/2bfa440c17375ec687a8c71291486d4c to your computer and use it in GitHub Desktop.
From a Video: A structured article about McKay Wrigley's Claude Code Task System demo, with frames, transcript, and analysis.

Backstage: How This Lesson Was Created With an Agent

Someone asked: "Did you use an agent to automate that?"

Yes. Here's exactly how.


The Result

A structured article about McKay Wrigley's Claude Code Task System demo, with frames, transcript, and analysis.


The Process

Step 1: Initial Instruction

Me: "Extract this video and create an explanatory lesson with images"
    https://x.com/mckaywrigley/status/2015811031675662507

One instruction. No step-by-step commands.


Step 2: Agent Fetches Tweet Metadata

curl -s -H "X-API-Key: $TWITTER_API_KEY" \
  "https://api.twitterapi.io/twitter/tweet?tweet_id=2015811031675662507"

Output:

  • Author: @mckaywrigley
  • Date: Jan 26, 2026
  • Engagement: 41 likes, 36 bookmarks, 1.5K views
  • Video URL extracted from tweet JSON response

Step 3: Agent Downloads Video

Video URL extracted from tweet metadata, then downloaded directly from Twitter CDN:

curl -L -o video.mp4 \
  "https://video.twimg.com/amplify_video/2015805528728027136/vid/avc1/1724x1080/XobMq0XrPOR_Aati.mp4?tag=21"

Output:

  • video.mp4 (1080p, 3min 28s, 10.5MB)

Step 4: Agent Extracts Frames

ffmpeg -i video.mp4 -vf "fps=1/10" frames/frame_%03d.jpg

Parameters:

  • 1 frame every 10 seconds
  • Total: 21 frames

Output:

frames/
├── frame_001.jpg  # 0:00 - Create Project modal
├── frame_002.jpg  # 0:10
├── frame_003.jpg  # 0:20
├── ...
├── frame_020.jpg  # 3:10 - Grid view (24 agents)
└── frame_021.jpg  # 3:20

Step 5: Agent Extracts Audio

ffmpeg -i video.mp4 -vn -acodec pcm_s16le -ar 16000 -ac 1 audio.wav

Output:

  • audio.wav (mono, 16kHz - optimized for Whisper)

Step 6: Agent Transcribes via Groq Whisper

curl -X POST "https://api.groq.com/openai/v1/audio/transcriptions" \
  -H "Authorization: Bearer $GROQ_API_KEY" \
  -F "file=@audio.wav" \
  -F "model=whisper-large-v3-turbo" \
  -F "response_format=verbose_json"

Output: transcript.txt with timestamps

[00:00] So check this out. What we're going to do here is 
       we're just really quickly going to create a new project.
[00:08] I'm just going to actually call this basic calculator app.
[00:15] We're just going to do something really stupid here just to demo it.
...
[03:20] But very excited to get this into your guys' hands 
       and see what you do with it.

Step 7: Agent Associates Frames ↔ Transcript

Agent analyzed which frame corresponds to which part of the transcript:

Frame Timestamp Content
frame_001.jpg 0:00-0:10 "Create Project" modal open
frame_005.jpg 0:40-0:50 Two-column agent view setup
frame_010.jpg 1:30-1:40 Tasks being created in side panel
frame_015.jpg 2:20-2:30 Task claimed, shows "Owner: claude"
frame_020.jpg 3:10-3:20 Grid view with multiple cells

Step 8: Agent Builds Lesson Structure

Agent created markdown with:

## STEP 1: Create Project
![Frame 1](frames/frame_001.jpg)

**What's happening:**
- AgentShare interface (McKay's app)
- "Create Project" modal open
- Project name: "Basic Calculator App"

**Key concept:**
> "Projects let you work on the same files across multiple chats."

---

## STEP 2: Set Up Multi-Agent View
![Frame 5](frames/frame_005.jpg)
...

Extracted automatically:

  • Key quotes from transcript
  • Tools mentioned (AgentShare, Claude Code, Agent SDK)
  • Concepts (Task Claiming, Blocking System, Sync)
  • Practical applications

Step 9: Human Refinement

At this point, I had a complete tutorial. Then I refined:

Me: "Transform into article style, inspired by viral article patterns"

Agent analyzed high-performing articles and identified patterns:

  • Attack conventional wisdom in opening
  • "The missing piece" reveal
  • Short punchy sentences
Me: "Add context comparing Ralph (loop-based) vs Task System (parallel)"

Agent added comparison table:

Aspect Ralph (Loop) Task System
Architecture Single agent, N iterations Multiple agents, parallel
Coordination progress.txt file Native task sync
Speed Sequential Scales with agents
Me: "Add Old Way vs New Way hook"

Agent rewrote intro:

## The Problem

**OLD WAY:** Run one Claude agent. Wait. Check. Fix. Repeat.

The community found a workaround: **Ralph Wiggum** - bash loops 
that restart agents, track progress in text files.

It works. But it's duct tape.

**NEW WAY:** Run 24 agents in parallel. Tasks sync automatically.

No more bash loops. No more progress.txt hacks. Native coordination.

Final Output

mckay-tasks-video/
├── video.mp4                    # Original video (1080p)
├── audio.wav                    # Extracted audio
├── transcript.txt               # Full transcript with timestamps
├── LESSON_TASK_SYSTEM_EN.md     # Final article
└── frames/
    ├── frame_001.jpg
    ├── frame_005.jpg
    ├── frame_010.jpg
    ├── frame_015.jpg
    ├── frame_020.jpg
    └── ... (21 frames total)

Tools Used

Tool Purpose
Claude Code Orchestration + writing
Twitter API (twitterapi.io) Fetch tweet metadata + extract video URL
curl Download video from Twitter CDN
ffmpeg Extract frames + audio
Groq Whisper API Transcribe audio
Markdown Output format

Summary

Agent pipeline (autonomous): Steps 2-8 Human direction: Steps 1 and 9

The agent did the extraction, structuring, and heavy lifting. I directed the style and refined the output.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment