Cassette Model
Cassette-Editor/oh-my-cassette
Show or change the Cassette editing model and thinking level for the current media session.
Record a clean product demo video of a web app on a disposable cloud VM — provision a GCE instance, install Xvfb + Chrome + ffmpeg + real fonts, deploy the app, drive the UI deterministically with…
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add oratis/LISA --skill cloud-screencast -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install oratis/LISA cloud-screencast --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/oratis/LISA.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/cloud-screencast .claude/skills/cloud-screencast && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "cloud-screencast" agent skill from https://github.com/oratis/LISA/tree/main/.claude/skills/cloud-screencast into .claude/skills/cloud-screencast/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloud-screencast", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/oratis/LISA/tree/main/.claude/skills/cloud-screencastType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add oratis/LISA --skill cloud-screencast -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install oratis/LISA cloud-screencast --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oratis/LISA.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/cloud-screencast .agents/skills/cloud-screencast && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cloud-screencast" agent skill from https://github.com/oratis/LISA/tree/main/.claude/skills/cloud-screencast into .agents/skills/cloud-screencast/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloud-screencast", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add oratis/LISA --skill cloud-screencast -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install oratis/LISA cloud-screencast --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oratis/LISA.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/cloud-screencast .cursor/skills/cloud-screencast && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cloud-screencast" agent skill from https://github.com/oratis/LISA/tree/main/.claude/skills/cloud-screencast into .cursor/skills/cloud-screencast/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloud-screencast", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/oratis/LISA.git --path .claude/skills/cloud-screencast--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add oratis/LISA --skill cloud-screencast -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install oratis/LISA cloud-screencast --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oratis/LISA.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/cloud-screencast .gemini/skills/cloud-screencast && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cloud-screencast" agent skill from https://github.com/oratis/LISA/tree/main/.claude/skills/cloud-screencast into .gemini/skills/cloud-screencast/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloud-screencast", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install oratis/LISA cloud-screencastInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add oratis/LISA --skill cloud-screencast -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/oratis/LISA.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/cloud-screencast .github/skills/cloud-screencast && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cloud-screencast" agent skill from https://github.com/oratis/LISA/tree/main/.claude/skills/cloud-screencast into .github/skills/cloud-screencast/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloud-screencast", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add oratis/LISA --skill cloud-screencast -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install oratis/LISA cloud-screencast --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oratis/LISA.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/cloud-screencast .opencode/skills/cloud-screencast && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cloud-screencast" agent skill from https://github.com/oratis/LISA/tree/main/.claude/skills/cloud-screencast into .opencode/skills/cloud-screencast/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cloud-screencast", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cloud-screencastRecord a clean product demo video of a web app on a disposable cloud VM — provision a GCE instance, install Xvfb + Chrome + ffmpeg + real fonts, deploy the app, drive the UI deterministically with…
Cloud Screencast is an agent skill from oratis/LISA. Record a clean product demo video of a web app on a disposable cloud VM — provision a GCE instance, install Xvfb + Chrome + ffmpeg + real fonts, deploy the app, drive the UI deterministically with Playwright over CDP while x11grab records, then cut the raw take into a social-ready clip with speed ramps and burned-in captions. Use when asked to record a demo / screencast / promo video, produce a GIF or clip of a UI, or capture a reproducible app walkthrough — and especially when the local machine is unsuitable…
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files (for example `reference/edit.sh`, `reference/music.sh` and `reference/setup.sh`).
It sits in Media & Creative, covering Video production. It works with FFmpeg, Playwright, Model Context Protocol and OpenAI. The repository describes itself as: Open-source AI Personal Assistant for planning, writing and personal knowledge. Use LISA Cloud or connect your own Mac. The licence is MIT.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fa44994. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditBashFrom allowed-tools in the SKILL.md frontmatter.
Ships script files (Shell and JavaScript), which the agent can run.
Shell commands in SKILL.md call:
gcloudsshffmpegFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gcloud and ssh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Cloud Screencast loads about 3.1k tokens when it runs. Until then it costs about 176 tokens; SKILL.md has 1,359 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found patterns that need a careful read before installing.
ssh -i ~/.ssh/google_compute_engine -o StrictHostKeyChecking=no <user>@<EXTERNAL_IP>allowed-tools: Read, Write, Edit, BashAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from oratis/LISA at commit fa44994, republished under its MIT licence (© oratis). 1,359 words, ~3,058 tokens.
.claude/skills/cloud-screencast/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Records a web UI on a headless cloud box instead of the user's desktop. You get a pristine app state, a chosen viewport, no personal data in frame, and a scripted take you can re-run until it's right — none of which is true of a hand-recorded local screen capture.
Cost + lifecycle: this creates a billable VM. Always tell the user it exists, and delete it when the recording is downloaded (§8). An e2-standard-4 left running is roughly $95/month.
Fill once per project, then run.
PROJECT = <gcp-project-id>
ZONE = <zone, e.g. us-central1-a>
VM = <instance-name, e.g. app-record>
APP_REPO = <git url of the app, or an npm package name>
APP_START = <command that serves the UI, e.g. node dist/cli.js serve --web --port 5757>
APP_URL = <local url the browser opens, e.g. http://127.0.0.1:5757/>
SECRETS = <local env file the app needs, e.g. ~/.app/config.env>Everything downstream depends on this, and getting it wrong means re-recording.
Chrome's --force-device-scale-factor=N divides the X display into CSS pixels:
CSS viewport = Xvfb resolution / DSFRecord at 2× the delivery resolution and downscale in post — supersampling is what makes small UI text look sharp in an H.264 clip.
| Delivery | Xvfb | DSF | CSS viewport | Notes |
|---|---|---|---|---|
| 1920×1080 | 2880×1620 | 2 | 1440×810 | good default, 16:9 |
| 1920×1080 | 2560×1440 | 2 | 1280×720 | tighter; short UIs get clipped |
| 1080×1080 | 2160×2160 | 2 | 1080×1080 | square, better mobile in-feed |
Do not just use 1280×720. A real user's browser window is far taller than 720 CSS px, so a 720-tall viewport clips panels that never clip in real life — and the clipped part is usually the payoff (the final state, the confirm button). Probe the actual content height before committing (§4) and go taller if it overflows.
Keep integer DSF values. Fractional scale factors make Chrome's text rendering noticeably softer.
gcloud compute instances create <VM> --project=<PROJECT> --zone=<ZONE> \
--machine-type=e2-standard-4 \
--image-family=ubuntu-2404-lts-amd64 --image-project=ubuntu-os-cloud \
--boot-disk-size=50GB --boot-disk-type=pd-balanced \
--labels=purpose=demo-recording4 vCPU is the floor — x11grab at 2880×1620/30fps plus Chrome plus the app will
saturate 2 cores. Copy reference/setup.sh over and run it: it installs Xvfb,
ffmpeg, Chrome, xdotool, ImageMagick, Node, and — critically — fonts.
Fonts are the whole ballgame for "does this look right". Most web UIs specify
-apple-system, BlinkMacSystemFont, "SF Pro Text"andui-monospace, "SF Mono", Menlo. None of those exist on Linux, so you get DejaVu fallback and the app looks subtly wrong in a way reviewers notice but can't name. Installfonts-inter(a near-exact SF Pro substitute, and often already in the CSS fallback chain),fonts-jetbrains-mono,fonts-noto-color-emoji(UIs lean on ❤️ 🌙 ★ far more than you expect), andfonts-noto-cjk. Thenfc-cache -f.
gcloud compute ssh is flaky under load. It intermittently dies with
RemoteDisconnected. Fall back to plain SSH against the external IP with the key
gcloud already provisioned:
ssh -i ~/.ssh/google_compute_engine -o StrictHostKeyChecking=no <user>@<EXTERNAL_IP>Prefer building from source at the version you want to show — a published package often lags the current version.
Never put secrets in instance metadata or in a command line. Metadata is
readable by anyone with project viewer, and argv shows up in ps and shell
history. Pipe them over SSH's stdin instead:
grep -E '^(API_KEY|BASE_URL)=' <SECRETS> | \
ssh ... "mkdir -p ~/.app && cat > ~/.app/config.env && chmod 600 ~/.app/config.env"Snapshot the pristine state before the app ever runs. First-run flows — onboarding, setup wizards, a birth ritual — happen exactly once, and you will need three or four takes to get one good one:
cp -r ~/.app ~/.app-pristine # BEFORE first launch
# each retake starts with: rm -rf ~/.app && cp -r ~/.app-pristine ~/.appreference/stack.sh does Xvfb → app → Chrome, idempotently. Chrome flags that
matter for a clean frame:
--kiosk no tabs, no URL bar, no bookmarks
--hide-scrollbars scrollbars read as clutter on video
--force-device-scale-factor see §1
--lang=en-US UIs branch on navigator.language; pin it
--remote-debugging-port=9222 so Playwright can attach
--user-data-dir=/tmp/... fresh profile, no first-run bubbles
--disable-features=Translate,TranslateUI,AutofillServerCommunication,MediaRouterAlso xsetroot -solid '<app-bg-color>' so any gap looks deliberate, and
xset -dpms s off s noblank so the screen never blanks mid-take.
Then probe before recording — check the content actually fits:
await page.evaluate(() => ({
viewport: [innerWidth, innerHeight], dpr: devicePixelRatio,
overflow: document.querySelector('<container>').scrollHeight,
clientH: document.querySelector('<container>').clientHeight,
}))If scrollHeight > clientHeight on something that shouldn't scroll, go back to §1.
Attach to the running Chrome rather than letting Playwright launch its own — the browser then survives a script crash, so a failed drive doesn't cost you the whole recording:
const b = await chromium.connectOverCDP('http://127.0.0.1:9222');
const page = b.contexts()[0].pages()[0];Use playwright-core (no bundled browser download). Rules that make takes usable:
MARK <label> <seconds> timeline. The edit is driven entirely by
these timestamps; without them you are scrubbing a 6-minute file by hand.-draw_mouse 0. A programmatically driven cursor never moves, so a
visible pointer just looks frozen.{ delay: 40-60 }. Instant fill() looks like a bug.for (i=0..N) el.scrollTop = total*i/N with a ~50ms
gap reads as a deliberate camera move; a single jump reads as a glitch.ffmpeg runs for the whole take; you cut afterwards.
ffmpeg -y -f x11grab -draw_mouse 0 -framerate 30 -video_size <W>x<H> -i :99.0 \
-c:v libx264 -preset ultrafast -crf 16 -pix_fmt yuv420p /tmp/raw.mp4ultrafast + crf 16 keeps capture real-time on 4 vCPU; quality is recovered in
the encode pass. Stop it with SIGINT (not SIGKILL) so the container finalizes.
Beware orphaned ffmpeg. If the drive script dies, its ffmpeg child keeps
recording and holds the output file — every later take then silently writes
nowhere. Start each take with pkill -f x11grab.
Launch long takes detached or the SSH session ending kills them:
ssh ... 'setsid bash ~/take.sh > ~/take.log 2>&1 < /dev/null & disown; exit 0'Do not try to chain sed/mv/launch in one backgrounded compound — the & breaks
the chain and you get a half-applied state that looks like it worked. Write the
script to a file, scp it, run it.
reference/edit.sh turns the raw take plus the MARK timeline into a clip: extract
each beat, apply a speed ramp, concat, burn captions, downscale.
Cut with the trim filter, never -ss/-to. Both shortcuts fail silently here
and you only notice when reviewing the output:
| what goes wrong | |
|---|---|
-ss before -i | seeks to the previous keyframe. An ultrafast screen capture has ~8s keyframe gaps, so the cut starts seconds early — on the wrong beat entirely. |
-to after -i | measured on the filtered timeline, so a setpts speed-up stretches the window. A 30s target came out 57s. |
trim=start=S:end=E,setpts=PTS-STARTPTS[,crop=W:H:X:Y],setpts=PTS/SPEED,fps=30,scale=...trim runs on input timestamps, before setpts touches them.
Push in on small UI. Full-frame desktop UI is unreadable in a phone feed. Crop to the element (keep it 16:9) and rescale — a 1.2–1.4× push-in is usually enough. Measure the bounding box from a full-res extracted frame first; a crop that misses the thing you are pointing at is invisible until you review the cut.
Editorial rules for a silent autoplay feed:
flags=lanczos; export yuv420p + -movflags +faststart.If a bed is wanted, synthesise it — reference/music.sh builds one from ffmpeg
sine sources. Never attach a track you found online: a promo clip is a commercial
use, and "royalty-free" pages routinely mislabel licences. Generated audio has no
rights question at all.
The recipe that sounds like music rather than a test tone: a four-chord progression
with tight voice leading, each voice doubled by a second sine ~0.35% off for slow
beating, then lowpass (warmth) → aecho (space) → tremolo (movement) →
loudnorm. Put aresample=48000 after loudnorm, which otherwise leaves the
output at 192kHz.
Verify what you can measure — -14 to -20 LUFS integrated, true peak under
-1 dBTP, 48kHz stereo:
ffmpeg -hide_banner -i bed.wav -af ebur128 -f null - 2>&1 | tail -12Say plainly that you could not listen to it and ask the user to audition before posting. Levels and format are verifiable; whether it actually sounds good is not.
gcloud compute scp <VM>:/tmp/final.mp4 ./ --zone=<ZONE> --project=<PROJECT>
gcloud compute instances delete <VM> --zone=<ZONE> --project=<PROJECT> --quietConfirm the download opens locally before deleting. Then tell the user the VM is gone. If you are keeping it for retakes, say so explicitly and give them the delete command.
The recording is a claim about how the product behaves. So:
reference/setup.sh — VM package + font installreference/stack.sh — Xvfb + app + Chrome bring-upreference/take.mjs — annotated Playwright drive script with the MARK timelinereference/edit.sh — segment / speed-ramp / caption / downscale pipeline© oratis, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files in .claude/skills/cloud-screencast of oratis/LISA.
Open the folder on GitHubat commit fa44994
Cloud Screencast next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Cloud Screencast this skilloratis/LISA | 175 | — | ~3.1k | Automated safety check: Warn | MIT | |
| Cassette ModelCassette-Editor/oh-my-cassette | 157 | 1 repos | ~374 | Automated safety check: Pass | MIT | |
| Render Chatgpt Chatgooseworks-ai/goose-skills | 1.2k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Browser Video Recordingnirholas/three.ws | 227 | 1 repos | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Render Apple Notes Chatgooseworks-ai/goose-skills | 1.2k | — | ~1.5k | Automated safety check: Pass | MIT | |
| Demo Videojeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~953 | Automated safety check: Pass | MIT |
Cassette-Editor/oh-my-cassette
Show or change the Cassette editing model and thinking level for the current media session.
gooseworks-ai/goose-skills
Assemble a ChatGPT chat-reveal video ad from a thread + timeline JSON — one continuous Playwright recording of a ChatGPT mobile chat (user types with the iOS keyboard up → taps send → keyboard…
nirholas/three.ws
Create polished 60 fps 4:3 4K browser screen-recording style videos from Codex in-app browser captures, with browser-only crop, natural macOS cursor styling, deliberate click choreography…
gooseworks-ai/goose-skills
Assemble an Apple Notes list video ad from a note + end-card JSON — a frame-accurate fake iPhone screen recording of a short list being typed into Apple Notes (character by character, key pops…
jeremylongshore/tons-of-skills-marketplace
Generate polished demo videos from a single prompt. An agent skill from jeremylongshore/tons-of-skills-marketplace.
foryourhealth111-pixel/Vibe-Skills
Turns footage, audio and a storyboard plan into a finished short video with FFmpeg jump-cuts, subtitle burn-in and a final polish pass.
Categories
Record a clean product demo video of a web app on a disposable cloud VM — provision a GCE instance, install Xvfb + Chrome + ffmpeg + real fonts, deploy the app, drive the UI deterministically with…. Cloud Screencast is an agent skill from oratis/LISA. Record a clean product demo video of a web app on a disposable cloud VM — provision a GCE instance, install Xvfb + Chrome + ffmpeg + real fonts, deploy the app, drive the UI deterministically with Playwright over CDP while x11grab records, then cut the raw take into a social-ready clip with speed ramps and burned-in captions.
Cloud Screencast fits situations like: asked to record a demo / screencast / promo video; capture a reproducible app walkthrough — and especially when the local machine is unsuitable (personal bookmarks and profile chrome in frame; wrong window size; the app must start from a pristine state.
Run `npx skills add oratis/LISA --skill cloud-screencast -a claude-code`. Or copy the skill folder (.claude/skills/cloud-screencast in oratis/LISA) into .claude/skills/cloud-screencast in your project. Claude Code loads it when a task matches its description.
Run `npx skills add oratis/LISA --skill cloud-screencast -a codex`. Or copy the skill folder (.claude/skills/cloud-screencast in oratis/LISA) into .agents/skills/cloud-screencast in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add oratis/LISA --skill cloud-screencast -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cloud-screencast, .gemini/skills/cloud-screencast, .github/skills/cloud-screencast and .opencode/skills/cloud-screencast in your project.
Going by SKILL.md and its folder, Cloud Screencast needs a shell and JavaScript for the scripts in its folder, the command-line tools its instructions call (gcloud, ssh and ffmpeg) and credentials named API_KEY. Our summary lists: Node.js; A Bash shell; A credential in API_KEY. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash.
SKILL.md contains no URLs. Its commands use ssh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): mentions a credentials file (ssh keys, cloud or package-manager tokens). Read the flagged lines before installing; the check is not a guarantee either way.
Cloud Screencast is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Cloud Screencast: Cassette Model (Cassette-Editor/oh-my-cassette, 157 stars), Render Chatgpt Chat (gooseworks-ai/goose-skills, 1.2k stars), Browser Video Recording (nirholas/three.ws, 227 stars) and Render Apple Notes Chat (gooseworks-ai/goose-skills, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
oratis (a GitHub user) maintains it in oratis/LISA, which has 175 GitHub stars. The repository was last updated on October 7, 2026.
Source: oratis/LISA on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.