Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add JHamidun/screencast-desktop --skill screencast-agentgit clone --depth 1 https://github.com/JHamidun/screencast-desktopWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jhamidun/screencast-desktop/screencast-agent)<a href="https://agentmods.dev/skills/jhamidun/screencast-desktop/screencast-agent"><img src="https://agentmods.dev/badge/skills/jhamidun/screencast-desktop/screencast-agent.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00124 | $0.00999 |
| Opus 5 | $0.00062 | $0.00500 |
| Sonnet 5 | $0.00025 | $0.00200 |
| Haiku 4.5 | $0.00012 | $0.00100 |
Grade A, and why
screencast-desktop scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 93 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Screencast Desktop
Two MCP servers work together:
windows-ui— control via Windows UI Automation: finds controls by name, clicks, types. Also works with Electron apps (VS Code, Teams, Slack), where a plain tree walk returns nothing.screencast— vision and video: screenshots, window recording, assembling the video with camera moves, cursor, and voiceover.
The main rule: never act blind
Look before every step and after it. The tools return state on their own —
desktop_click, desktop_type, desktop_key have a see parameter
(shot by default, none to save context).
Workflow:
desktop_windows— what is open.ui_snapshot(thewindows-uiserver) — controls by name. Cheap, precise, survives the window being moved. Try it first.- If the app gives no tree —
desktop_screenshot, look with your eyes and click by coordinates. - Act and verify against the returned shot.
Recording a demo
desktop_place_window(window="My App", monitor=1, fit=0.7) # verifies it fits
desktop_record_start(window="My App")
… ordinary clicks and typing — each one is written to the journal …
desktop_record_stop()
desktop_render(out_dir="…", max_zoom=2.0)
The camera is built from the action journal, not guessed from the video: the zoom starts half a second before the click, because the click moment is known in advance. Rendering does not touch the app — you can change parameters and rebuild as many times as you like.
What breaks silently — verified on a real machine
Window position. An app is not obliged to take the size it was given:
a UWP window asked for 2380×1490 came back at 3967×2426 and hung off the edge
of the screen — in the recording the app was cropped. desktop_place_window
measures the result, adjusts, and reports whether it fit.
A freshly launched app restores its own size a couple of seconds after the window appears, overwriting the one you set. Set the size after a pause.
Display scaling. A process that has not declared itself DPI-aware sees a screen smaller than the real one (2560×1440 instead of 3840×2160) and misses buttons by a factor of 1.5. The servers handle this themselves; your own scripts must do it too.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 93 lines · 0 tokens per session scan A d57e82e6f1be
screencast-desktop is a skill published in the GitHub repository JHamidun/screencast-desktop (0 stars, last pushed 13d ago), licensed MIT. It adds 124 tokens to every session and 999 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
video-perception
Use when the user mentions a video file (.mp4, .mov, .avi, .mkv, .webm), a YouTube URL, asks to watch/analyze/review a video, or references video content in conversation.
wechat_channels
A search skill for WeChat Channels, WeChat's short-video service, using the TikHub service.
demo-video-factory
Generate a custom 26s product-demo video from any SaaS URL — brand-matched scenes, a recreated product-UI "wow" scene, real screenshots, and a soundtrack. Use whenever the user wants a demo, promo, launch, or marketing video for a website or product.
mastering-chain
Master the current Ableton Live set — build a Glue Compressor → (EQ Eight) → Limiter chain on the Main track with conservative, streaming-safe settings. Use when the user asks to master the track, finish/polish the mix, "make it louder", add glue/punch to the whole mix, or prepare the song for export or streaming.
using-ig-dl
Use when the user asks to download something from Instagram, archive an Instagram profile, extract an IG reel/story/post, or mentions Instagram URLs. Prefer ig-dl's MCP tools and prompts over ad-hoc curl/yt-dlp invocations.
media
Use whenever someone wants to confirm an image/video is usable for a social post, or asks to "upload", "resize", or "list" media, through the Ayrshare MCP server. The only media tool is mcpayrsharevalidatemedia, which HEAD-checks that a media URL is reachable (it does not upload, store, or resize anything). Trigger on…