I Built an AI Skill That Screenshots and Records My PC for Tutorials

I Built an AI Skill That Screenshots and Records My PC for Tutorials

●1 ●2 ●9
calendar_today ago • schedule3 min read

Every tutorial I write needs the same boring assets: screenshots of each step, a short screen recording, and a vertical clip for reels. I used to do all of it by hand — Print Screen, paste, crop, repeat. So I built an AI skill that does it for me. It's called tutorial-reels, and it lives in my AI agents (Cline, Claude Code, Codex) as five small Python scripts.

This post explains what the skill does and walks through using it, end to end.

What the skill does

The skill drives my real Windows PC — Chrome, Settings, Services, Device Manager — and produces three kinds of output:

Output Tool Result
Step screenshots focus-shot.py / shot.py PNGs, one per tutorial step
Web captures browse.py Full-page PNGs or PDFs via headless Chrome
Reel clips record.py + to-reel.py Vertical 1080x1920 MP4s for Facebook

No new dependencies. Everything runs on tools already on a Windows PC: Python with Pillow, ffmpeg, and Chrome. The skill is just a SKILL.md instruction file plus the scripts, synced to every agent I use.

The hard lesson: focus before you shoot

The first version had an embarrassing bug. When I asked the agent to screenshot my Sound settings, it captured... our chat window. The agent's own window was in front, so every "screenshot" was a picture of the conversation.

The fix became the skill's core idea: minimize everything, force the target window to the front with the Win32 API, wait, then capture. That workflow is now baked into focus-shot.py:

# minimize clutter, open the target, focus + shoot:
powershell -NoProfile -Command "(New-Object -ComObject Shell.Application).MinimizeAll()"
Start-Process ms-settings:sound; Start-Sleep 5
python $env:USERPROFILE\tutorial-reels\scripts\focus-shot.py --out shots/no-sound/step01.png --title Settings --wait 2

The --title flag matches window titles — Settings, Services, Device Manager, Chrome, File Explorer — and brings the right window forward before the shot. One capture per turn: open, focus, shoot, verify, move on.

Tutorial: from zero to published screenshots

Here is the full workflow I used to illustrate my Windows 11 no-sound article with 5 screenshots.

Step 1: Take a focused screenshot

Open the page you want to show, then capture it with the window forced to front:

python $env:USERPROFILE\tutorial-reels\scripts\focus-shot.py --out shots/no-sound/fix1.png --title Settings --wait 2

For a region instead of the full screen, add --region x,y,w,h. If the target is already visibly in front, the plain shot.py is faster (no focus handling).

Step 2: Capture a web page without opening it

For article hero images or full-page captures, browse.py drives headless Chrome — no manual browsing at all:

python $env:USERPROFILE\tutorial-reels\scripts\browse.py --url "https://example.com/page" --shot shots/no-sound/hero.png --window-size 1280,800

It also prints pages to PDF with --pdf, handy for archiving reference pages.

Step 3: Record a short clip for a reel

Screen recordings use ffmpeg's gdigrab — already installed, captures video only. Important: ffmpeg holds the console, so always launch it detached:

Start-Process python -ArgumentList "$env:USERPROFILE\tutorial-reels\scripts\record.py","--out","raw/no-sound-raw.mp4","--seconds","30","--fps","30" -WindowStyle Hidden

Perform the tutorial steps while it records. It stops automatically after --seconds.

Step 4: Convert to a vertical reel

One command center-crops and scales the recording to 1080x1920 with H.264, ready for Facebook:

Start-Process python -ArgumentList "$env:USERPROFILE\tutorial-reels\scripts\to-reel.py","--in","raw/no-sound-raw.mp4","--out","no-sound.mp4" -WindowStyle Hidden

The output drops straight into my existing reel pipeline — the same folder and scheduler that posts my article reels.

Step 5: Embed in the article

Name screenshots after the article slug so everything stays in sync, then embed one image per fix:

![Select the output device in Windows 11 Sound settings](/article-media/windows-11-no-sound-fix1-output-device.png)

Two more things it taught me

Desktop launchers matter. I keep capture.bat and capture.ps1 on my Desktop — capture.ps1 shot, capture.ps1 browse <url>, capture.ps1 record 30 — so I can grab assets without opening a chat at all.

Verify before you push. I can't stress this enough after the chat-screenshot incident: glance at every capture before committing. File sizes are a cheap signal — when my "Settings" shots jumped from 55KB to 100KB+, I knew the real window was finally in frame.

Frequently Asked Questions

Does it work on Mac or Linux?

Not as-is. Screenshots use Pillow's ImageGrab and recording uses ffmpeg's gdigrab — both Windows-only paths. The ideas transfer, but the scripts would need screencapture/x11grab equivalents.

Does recording capture audio?

No. gdigrab grabs video only. Add voiceover in editing, or pair it with a microphone recorder.

Can it click around the browser by itself?

No — and that's deliberate. The skill captures what you do (or what headless Chrome renders). Scripted clicking is a different tool (Playwright); this skill stays small and dependable.

1 Comment

0 votes
🔥 Join developers growing publicly
Share your knowledge, build in public, and grow your developer presence with a global community.

More Posts

How I Built a React Portfolio in 7 Days That Landed ₹1.2L in Freelance Work

Dharanidharan - Feb 9

I’m a Senior Dev and I’ve Forgotten How to Think Without a Prompt

Karol Modelski - Mar 19

Cache-Control Headers for Web Performance: CDN and Browser Caching That Sticks

ApogeeWatcherverified - Sep 17

The Sovereign Vault — A Comprehensive Guide to Protocol-Driven AI

Ken W. Algerverified - Jun 4

Your AI Doesn't Just Write Tests. It Runs Them Too.

Kevin Martinez - May 12
chevron_left
812 Points • 12 Badges
Bangladesh • techtips.fun
3Posts
2Comments
8Connections
Saon Islam's professional expertise is built upon three primary pillars: SEO, Web3 development, and ... Show more

Related Jobs

Commenters (This Week)

2 comments
1 comment
1 comment

Contribute meaningful comments to climb the leaderboard and earn badges!