{
  "markdown": "# katareayush — agent skills\n\nTwo skills — **video-captions** and **seedgen** — that run in **every major AI coding agent**,\nnot just one.\n\nThey're built on [Agent Skills](https://agentskills.dev), the open standard Anthropic\npublished in December 2025 and that Claude Code, Codex CLI, Gemini CLI, GitHub Copilot,\nCursor, Windsurf and OpenCode have all adopted. One `SKILL.md`, every host. For agents that\nonly speak MCP, there's a server too.\n\n## Install\n\n**Everywhere at once** — detects the agents you have and installs into each:\n\n```\ngit clone https://github.com/katareayush/video-captions\ncd video-captions\npython3 install.py\n```\n\nOr without cloning:\n\n```\ncurl -fsSL https://raw.githubusercontent.com/katareayush/video-captions/main/install.py | python3\n```\n\nThen, in any agent, in any project:\n\n```\nadd captions to demo.mp4\n```\n\n<details>\n<summary><b>Per-agent instructions</b></summary>\n\nThe one-liner above already covers most of these — it installs into every agent it finds.\nThese are the cases that differ. Each is self-contained; none assumes you cloned the repo.\n\n| Agent | Install |\n|-------|---------|\n| **Claude Code** | `/plugin marketplace add katareayush/video-captions` then `/plugin install video-captions@katareayush` |\n| **Gemini CLI** | `gemini extensions install https://github.com/katareayush/video-captions` |\n| **Codex · Copilot · Cursor · OpenCode** | `curl -fsSL $INSTALL \\| python3 - --only agents` → `~/.agents/skills`, which all four read |\n| **Windsurf** | `curl -fsSL $INSTALL \\| python3 - --only windsurf` |\n| **Zed · ChatGPT desktop · n8n · LM Studio** | `curl -fsSL $INSTALL \\| python3 - --mcp` prints an MCP config to paste |\n| **This repo only** | `curl -fsSL $INSTALL \\| python3 - --project` → `./.agents/skills` |\n| **No agent at all** | after setup, `video-captions demo.mp4` works as a plain CLI |\n\nwhere `$INSTALL` is `https://raw.githubusercontent.com/katareayush/video-captions/main/install.py`.\nNote the `-` after `python3` — it tells Python to read the script from the pipe and pass the\nrest through as arguments.\n\nOther useful flags: `--list` (show what's detected), `--all` (install everywhere regardless),\n`--uninstall` (remove everything it installed), `--no-deps` (skip ffmpeg/faster-whisper).\nFrom a clone, drop the `curl` and just run `python3 install.py --only agents`.\n\n</details>\n\n## video-captions\n\nGive any agent a video and say *\"add captions\"* — it transcribes the speech **locally** and\nburns accurately-timed captions in. The look defaults to a clean, minimal style, and you can\n**describe any design in plain words** and the agent applies it. Fully offline after a\none-time model download, cross-platform, no API key.\n\nThe first run installs `faster-whisper` + a subtitle-capable `ffmpeg` and downloads the\nWhisper model once (~150 MB). Everything after is offline.\n\n**Requirements:** Python 3.9+, and ffmpeg — setup installs a subtitle-capable build\nautomatically on macOS (`ffmpeg-full`); Windows/Linux ffmpeg already includes it.\n\n### Describe the look\n\n| You say | The agent runs |\n|---------|----------------|\n| (nothing) | clean white subtitles, bottom-centre |\n| \"big bold yellow captions at the top\" | `--pos top --size large --weight bold --color yellow` |\n| \"white text, thick black outline\" | `--color white --outline-color black --outline 4` |\n| \"minimal, no shadow\" | `--shadow 0` |\n| \"make it TikTok style\" | `--word-by-word` |\n| \"3 lowercase words on a rounded pill\" | `--preset` |\n| \"2 words at a time on a black plate\" | `--words 2 --plate --plate-color black` |\n| \"it's in Hindi, give me English subs\" | `--translate` |\n\n`--preset` is the one built-in look: editorial lowercase captions, three words at a time on a\ndark rounded pill, made for light footage. It's just a bundle of individual flags, all of\nwhich stay available on their own.\n\nFull flag reference: [`plugins/video-captions/README.md`](plugins/video-captions/README.md).\n\n## seedgen\n\nPoint an agent at any repo and ask it to seed the database — it reads your real schema\n(SQL migrations, Prisma, Django, Mongoose, Solidity, etc.) and generates a **runnable,\nschema-aware test-data seed script** that respects enums, NOT NULL, unique, and foreign-key\nconstraints. Stack-agnostic: web2, web3, Python, or anything with a data model.\n\nOn Claude Code and Gemini CLI it's also a slash command:\n\n```\n/seed\n/seed indian 50 users\n/seed web3 only\n```\n\nA **locale/filter** changes generated values (names, phones, addresses, currency) to match a\nregion without touching the schema. Details in [`plugins/seedgen/README.md`](plugins/seedgen/README.md).\n\n## Repo layout\n\n```\n.\n├── skills/                       # ← source of truth: portable Agent Skills\n│   ├── video-captions/\n│   │   ├── SKILL.md\n│   │   ├── scripts/              # setup, caption, transcribe, build_captions,\n│   │   └── requirements.txt      #   ffmpeg_tools, mcp_server\n│   └── seedgen/\n│       ├── SKILL.md\n│       └── references/locales.md\n├── install.py                    # installs into every agent on the machine\n├── tools/sync.py                 # regenerates plugins/ from skills/\n├── gemini-extension.json         # `gemini extensions install <repo>`\n├── commands/                     # Gemini slash commands (/captions, /seed)\n├── docs/                         # the docs site\n├── .claude-plugin/               # Claude Code marketplace catalog\n└── plugins/                      # GENERATED — the Claude Code plugin build\n```\n\n`skills/` is what you edit. `plugins/` is derived from it by `tools/sync.py` and exists only\nso existing `/plugin install` users keep working — `python3 tools/sync.py --check` fails if\nthe two drift.\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n",
  "bytes": 5686,
  "sha": "911a91430cb6eff5495477865bb741dda0169054cc13f7c0d607933b323bfe99",
  "repo_slug": "katareayush/video-captions",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_katareayush_video_captions_c3fe01d8/readme"
}