Open-source Agent Skills by Ishu Agrawal.
Each skill is a folder with a SKILL.md plus the scripts, references, and assets it needs. They work in
Claude Code and in any other agent that supports the open Agent Skills format.
| Skill | What it's for |
|---|---|
video-by-reference |
Turns a video you love into an original animated short in the same style, with its own soundtrack. |
Inside a Claude Code session:
/plugin marketplace add ishuagrawal/skills
/plugin install skills@ishuagrawal
/reload-plugins
Or from your shell:
claude plugin marketplace add ishuagrawal/skillsclaude plugin install skills@ishuagrawal --scope userClaude picks a skill up automatically when your request matches it. You can also call one directly,
for example /skills:video-by-reference.
This uses the third-party skills CLI:
npx skills add ishuagrawal/skillsAdd --skill video-by-reference to install a single skill, -a claude-code (or another agent) to
pick the target, and -g to install for your user instead of the current project.
claude.ai and Claude API
claude.ai: download the skill's zip from the
latest release (for example
video-by-reference.zip), then open Settings, find the Skills section, and upload it. This needs
a Pro, Max, Team, or Enterprise plan with code execution turned on.
Claude API: upload the same zip through the Skills API (/v1/skills) and use it with the
code-execution tool. See the
Agent Skills docs.
To update, download the new zip from the latest release and upload it again.
Copy skills/<name>/ into ~/.claude/skills/ for all your projects, or into .claude/skills/ for a
single project.
- Claude Code: run
/plugin marketplace update ishuagrawal, then/reload-plugins. You can also turn on auto-update: open/plugin, go to Marketplaces, select ishuagrawal, and choose Enable auto-update. Third-party marketplaces have it off by default. npx skills:npx skills update
video-by-reference renders real video files, so it needs a machine where it can run code:
- Node.js 22+
ffmpegandffprobeonPATH- Python 3 with
numpy(used for analysis) - A headless Chromium. Playwright's
chrome-headless-shellis preferred; Google Chrome also works.
It works best in Claude Code or another local agent. The claude.ai and API sandboxes have no network access and may lack Chrome or ffmpeg, so they can read the skill but may not be able to render.
.claude-plugin/
marketplace.json # makes this repo a Claude Code marketplace ("ishuagrawal")
plugin.json # the "skills" plugin and its version
skills/
<skill-name>/ # one folder per skill (SKILL.md + references/, scripts/, assets/)
scripts/
check_skills.py # checks every SKILL.md against the Agent Skills spec
package_skills.sh # builds dist/<skill>.zip for claude.ai or the API
release.sh # bumps the version, tags, and pushes a release
.github/workflows/ # validate on every push; attach zips to each tagged release
Add a skill. Create skills/<name>/SKILL.md. The frontmatter name must match the folder name
(lowercase letters, digits, and hyphens). The description can be at most 1024 characters. Keep the
frontmatter to name, description, license, compatibility, metadata, and allowed-tools, so
the same file also uploads to claude.ai and the API. Then add a row to the table above and run:
python3 scripts/check_skills.pyclaude plugin validate . --strictRelease an update. Commit your changes, then run:
./scripts/release.sh 1.1.0This bumps version in .claude-plugin/plugin.json, validates, commits, tags v1.1.0, and pushes.
Claude Code users get the new version on their next marketplace update, or automatically if
auto-update is on. The tag also triggers a GitHub release that attaches a fresh zip for every skill.
Use semver: patch for fixes, minor for new skills or features, major for breaking changes.
Claude Code only treats a push as a new version when the version string changes, so always release
through the script.