Sno Station
Sno Station is your agents' workstation: open-source software that turns the AI agents you already run into one squad on your own machine. Two heads are better than one, and they get better with every
Claude Code skills marketplace: PR review automation and AI image generation
Translation pending
PluginsShell · PythonGitHub @devonjonesSelf-installOwner unconfirmed
Paste into Claude or ChatGPT for installation instructions suited to your environment.
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Installable projects can be verified without a deployment domain. Use GitHub sign-in for a personal repository, or the repository verification file above for an organization repository.
Ask about other verification options
Loading the full README. The saved excerpt is shown below.
Personal collection of Claude Code skills for PR automation and creative tasks.
Install the plugins you want to use:
The skills will be automatically available for Claude to use.
Automate PR review feedback loops with Gemini Code Assist, Cursor Bugbot, and Claude fallback.Read the full README ↗Personal collection of Claude Code skills for PR automation and creative tasks.
Add this marketplace to Claude Code:
/plugin marketplace add devonjones/devon-claude-skills
Install the plugins you want to use:
# Install PR review loop
/plugin install pr-review-loop@devon-claude-skills
# Install image generation
/plugin install nano-banana@devon-claude-skills
# Install YouTube transcripts
/plugin install youtube-transcript@devon-claude-skills
# Install YouTube screenshotter
/plugin install youtube-screenshotter@devon-claude-skills
# Install YouTube synthesizer (recommended: install all three YouTube plugins together)
/plugin install youtube-synthesizer@devon-claude-skills
# Install article synthesizer
/plugin install article-synthesizer@devon-claude-skills
# Or install all
/plugin install pr-review-loop@devon-claude-skills nano-banana@devon-claude-skills youtube-transcript@devon-claude-skills youtube-screenshotter@devon-claude-skills youtube-synthesizer@devon-claude-skills article-synthesizer@devon-claude-skills
Check that the plugins are installed:
/plugin list
The skills will be automatically available for Claude to use.
Automate PR review feedback loops with Gemini Code Assist, Cursor Bugbot, and Claude fallback.
Install:
/plugin install pr-review-loop@devon-claude-skills
Features:
Usage:
# Spawn autonomous review agent
Task tool:
subagent_type: general-purpose
model: sonnet
description: PR review loop for #<PR>
prompt: Execute the PR review feedback loop for PR #<PR>...
Generate, edit, and compose images using Google's Gemini 3 Pro Image model.
Install:
/plugin install nano-banana@devon-claude-skills
Features:
Usage:
# Generate an image
scripts/generate_image.py "a serene landscape" output.png --aspect 16:9
# Edit an existing image
scripts/edit_image.py input.png "add a sunset" output.png
# Compose multiple images
scripts/compose_images.py "combine these" output.png img1.png img2.png img3.png
Extract transcripts (auto-generated or uploaded) from YouTube videos.
Install:
/plugin install youtube-transcript@devon-claude-skills
Features:
watch?v=, youtu.be/, youtube.com/shorts/, youtube.com/embed/, and bare 11-character video IDs[MM:SS] / [HH:MM:SS] timestamped output--lang-o PATHuv run --script (no persistent Python install pollution)Usage:
# Plain transcript to stdout
scripts/get_transcript.py "https://www.youtube.com/watch?v=VIDEO_ID"
# With timestamps
scripts/get_transcript.py "VIDEO_ID" --timestamps
# Specific language, write to a file
scripts/get_transcript.py "VIDEO_ID" --lang en -o transcript.txt
Download a YouTube video at 720p and extract frames at specified timestamps with perceptual hashes. Mechanical only — pairs with youtube-synthesizer (which adds the smart bisection + visual-diff judgment) or any other downstream tool that needs frames + pHashes.
Install:
/plugin install youtube-screenshotter@devon-claude-skills
Features:
extract.py CLI batches yt-dlp download + ffmpeg frame extraction + pHash computation{timestamp, frame_path, phash}<video_id>.mp4, frames by t<ms>.png — repeat invocations are cheapvideo.py (download/metadata), frames.py (frame extraction), phash.py (compute / 3-band Hamming classifier)uv run --script (yt-dlp, imagehash, Pillow)Usage:
# Extract frames at given timestamps + emit manifest JSON
scripts/extract.py "https://www.youtube.com/watch?v=VIDEO_ID" -t 1 -t 30 -t 500 -o ./out
# Just metadata, no download
scripts/video.py "VIDEO_ID" --no-download
# Compute pHash of one image; compare two
scripts/phash.py compute frame.png
scripts/phash.py compare frame_a.png frame_b.png
Ingest a YouTube video as a faithful-capture literature note in an Obsidian vault. Combines transcript + canonical visual scenes + structured extraction (TL;DR, takeaways, references, code, tags). The smart layer on top of youtube-transcript and youtube-screenshotter — drives a bisection + visual-diff judgment loop using the agent's native vision capability (no separate API calls).
Install:
/plugin install youtube-synthesizer@devon-claude-skills
Recommended companions: youtube-transcript and youtube-screenshotter (this skill orchestrates them).
Features:
<vault>/sources/videos/<ingested-date>-<sanitized-title>/ so each entry self-contains its assets and is portablechannel_id, playlist_id, chapter_markers, etc.) — designed for a future sqlite3 corpus indexer--rerun to overwriteANTHROPIC_API_KEYUsage:
The skill is invoked via natural language or slash command, not a CLI script. Provide a video URL and a target vault path:
Use the youtube-synthesizer skill to ingest
https://www.youtube.com/watch?v=VIDEO_ID into ~/Obsidian/woodworking
Optional flags interpreted by the skill: --rerun to overwrite an existing entry, --why "<reason>" to seed the why_ingested frontmatter field.
Ingest a web article as a faithful-capture literature note in an Obsidian vault. The article sibling of youtube-synthesizer — same vault conventions and shared frontmatter base schema, no frame pipeline. Fetches via the WebFetch tool (curl fallback), refuses paywalled/login-walled/unfetchable pages rather than fabricating content.
Install:
/plugin install article-synthesizer@devon-claude-skills
Features:
<vault>/sources/articles/<sanitized-domain>/<ingested-date>-<sanitized-title>/, grouping a site's articles the way youtube-synthesizer groups a channel's videossite_name, fetched_via, word_count, canonical_url)--rerun to overwriteDRAIN-DONE: / DRAIN-FAILED: protocol)Usage:
Use the article-synthesizer skill to ingest
https://example.com/some-article into ~/ObsidianVaults/Programming
Optional flags interpreted by the skill: --rerun to overwrite an existing entry, --why "<reason>" to seed the why_ingested frontmatter field.
These skills were previously hosted in separate repositories:
skill-pr-review-loop → Archived, redirects hereskill-nano-banana → Archived, redirects heregh CLI authenticated with GitHubgit installedpre-commit (optional, auto-detected)GEMINI_API_KEY environment variablepip install google-genai Pillow pyyamluv — installs the Python deps in an ephemeral venv per invocation. Install with curl -LsSf https://astral.sh/uv/install.sh | sh or pip install uv.youtube.com.uv — installs Python deps (yt-dlp, imagehash, Pillow) in an ephemeral venv per invocation.ffmpeg — required for frame extraction and yt-dlp's video+audio merge. sudo apt install ffmpeg (Linux), brew install ffmpeg (macOS).youtube.com and googlevideo.com for downloads.youtube-transcript and youtube-screenshotter plugins installed (transitively requires uv and ffmpeg)<vault>/sources/videos/.curl for the fallback fetch path<vault>/sources/articles/.MIT - See LICENSE for details.