[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GA587F22Z667YV1M0WPMMF":3,"skill-same:01M6GA587F22Z667YV1M0WPMMF":84},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":26,"publishedAt":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":62,"commitSha":63,"skillDirectory":64,"forksCount":65,"repositoryHtmlUrl":66,"repositoryHomepageUrl":6,"ownerHtmlUrl":67,"ownerBlogUrl":6,"ownerDescription":68,"updatedAt":69,"install":70,"resources":83},"01M6GA587F22Z667YV1M0WPMMF","pixel-art",null,"Pixel art w\u002F era palettes (NES, Game Boy, PICO-8).","zapabob\u002FSkills","zapabob","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F130830376?v=4","01M6DBMYZAGRTFQDSQYW3W764P","峯岸 亮","01M6DBMZ3GKDSJ01NZ9XTZD7JD",2,"MIT","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Farchive\u002Fskill-md-reviewed\u002Fsha256\u002F85\u002F851ade2cb7a3592c15e761d76a5e29394c700e7c0b68224a64036f8dfd158b8e\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[27,28,29,30,31,5,32,33,34,35,36,37,38,39,40,41,42,43,44],"pixel","Art","pixel art","game","studio","loops","hardware","gameboy","creative","image","retro","Animation","Video","https","windows","linux","github","macos","2026-11-10 10:12:30",false,"---\r\nname: pixel-art\r\ndescription: \"Pixel art w\u002F era palettes (NES, Game Boy, PICO-8).\"\r\nversion: 2.0.0\r\nauthor: dodo-reach\r\nlicense: MIT\r\nplatforms: [linux, macos, windows]\r\nmetadata:\r\n  hermes:\r\n    tags: [creative, pixel-art, arcade, snes, nes, gameboy, retro, image, video]\r\n    category: creative\r\n    credits:\r\n      - \"Hardware palettes and animation loops ported from Synero\u002Fpixel-art-studio (MIT) — https:\u002F\u002Fgithub.com\u002FSynero\u002Fpixel-art-studio\"\r\n---\r\n\r\n# Pixel Art\r\n\r\nConvert any image into retro pixel art, then optionally animate it into a short\r\nMP4 or GIF with era-appropriate effects (rain, fireflies, snow, embers).\r\n\r\nTwo scripts ship with this skill:\r\n\r\n- `scripts\u002Fpixel_art.py` — photo → pixel-art PNG (Floyd-Steinberg dithering)\r\n- `scripts\u002Fpixel_art_video.py` — pixel-art PNG → animated MP4 (+ optional GIF)\r\n\r\nEach is importable or runnable directly. Presets snap to hardware palettes\r\nwhen you want era-accurate colors (NES, Game Boy, PICO-8, etc.), or use\r\nadaptive N-color quantization for arcade\u002FSNES-style looks.\r\n\r\n## When to Use\r\n\r\n- User wants retro pixel art from a source image\r\n- User asks for NES \u002F Game Boy \u002F PICO-8 \u002F C64 \u002F arcade \u002F SNES styling\r\n- User wants a short looping animation (rain scene, night sky, snow, etc.)\r\n- Posters, album covers, social posts, sprites, characters, avatars\r\n\r\n## Workflow\r\n\r\nBefore generating, confirm the style with the user. Different presets produce\r\nvery different outputs and regenerating is costly.\r\n\r\n### Step 1 — Offer a style\r\n\r\nCall `clarify` with 4 representative presets. Pick the set based on what the\r\nuser asked for — don't just dump all 14.\r\n\r\nDefault menu when the user's intent is unclear:\r\n\r\n```python\r\nclarify(\r\n    question=\"Which pixel-art style do you want?\",\r\n    choices=[\r\n        \"arcade — bold, chunky 80s cabinet feel (16 colors, 8px)\",\r\n        \"nes — Nintendo 8-bit hardware palette (54 colors, 8px)\",\r\n        \"gameboy — 4-shade green Game Boy DMG\",\r\n        \"snes — cleaner 16-bit look (32 colors, 4px)\",\r\n    ],\r\n)\r\n```\r\n\r\nWhen the user already named an era (e.g. \"80s arcade\", \"Gameboy\"), skip\r\n`clarify` and use the matching preset directly.\r\n\r\n### Step 2 — Offer animation (optional)\r\n\r\nIf the user asked for a video\u002FGIF, or the output might benefit from motion,\r\nask which scene:\r\n\r\n```python\r\nclarify(\r\n    question=\"Want to animate it? Pick a scene or skip.\",\r\n    choices=[\r\n        \"night — stars + fireflies + leaves\",\r\n        \"urban — rain + neon pulse\",\r\n        \"snow — falling snowflakes\",\r\n        \"skip — just the image\",\r\n    ],\r\n)\r\n```\r\n\r\nDo NOT call `clarify` more than twice in a row. One for style, one for scene if\r\nanimation is on the table. If the user explicitly asked for a specific style\r\nand scene in their message, skip `clarify` entirely.\r\n\r\n### Step 3 — Generate\r\n\r\nRun `pixel_art()` first; if animation was requested, chain into\r\n`pixel_art_video()` on the result.\r\n\r\n## Preset Catalog\r\n\r\n| Preset | Era | Palette | Block | Best for |\r\n|--------|-----|---------|-------|----------|\r\n| `arcade` | 80s arcade | adaptive 16 | 8px | Bold posters, hero art |\r\n| `snes` | 16-bit | adaptive 32 | 4px | Characters, detailed scenes |\r\n| `nes` | 8-bit | NES (54) | 8px | True NES look |\r\n| `gameboy` | DMG handheld | 4 green shades | 8px | Monochrome Game Boy |\r\n| `gameboy_pocket` | Pocket handheld | 4 grey shades | 8px | Mono GB Pocket |\r\n| `pico8` | PICO-8 | 16 fixed | 6px | Fantasy-console look |\r\n| `c64` | Commodore 64 | 16 fixed | 8px | 8-bit home computer |\r\n| `apple2` | Apple II hi-res | 6 fixed | 10px | Extreme retro, 6 colors |\r\n| `teletext` | BBC Teletext | 8 pure | 10px | Chunky primary colors |\r\n| `mspaint` | Windows MS Paint | 24 fixed | 8px | Nostalgic desktop |\r\n| `mono_green` | CRT phosphor | 2 green | 6px | Terminal\u002FCRT aesthetic |\r\n| `mono_amber` | CRT amber | 2 amber | 6px | Amber monitor look |\r\n| `neon` | Cyberpunk | 10 neons | 6px | Vaporwave\u002Fcyber |\r\n| `pastel` | Soft pastel | 10 pastels | 6px | Kawaii \u002F gentle |\r\n\r\nNamed palettes live in `scripts\u002Fpalettes.py` (see `references\u002Fpalettes.md` for\r\nthe complete list — 28 named palettes total). Any preset can be overridden:\r\n\r\n```python\r\npixel_art(\"in.png\", \"out.png\", preset=\"snes\", palette=\"PICO_8\", block=6)\r\n```\r\n\r\n## Scene Catalog (for video)\r\n\r\n| Scene | Effects |\r\n|-------|---------|\r\n| `night` | Twinkling stars + fireflies + drifting leaves |\r\n| `dusk` | Fireflies + sparkles |\r\n| `tavern` | Dust motes + warm sparkles |\r\n| `indoor` | Dust motes |\r\n| `urban` | Rain + neon pulse |\r\n| `nature` | Leaves + fireflies |\r\n| `magic` | Sparkles + fireflies |\r\n| `storm` | Rain + lightning |\r\n| `underwater` | Bubbles + light sparkles |\r\n| `fire` | Embers + sparkles |\r\n| `snow` | Snowflakes + sparkles |\r\n| `desert` | Heat shimmer + dust |\r\n\r\n## Invocation Patterns\r\n\r\n### Python (import)\r\n\r\n```python\r\nimport sys\r\nsys.path.insert(0, \"\u002Fhome\u002Fteknium\u002F.hermes\u002Fskills\u002Fcreative\u002Fpixel-art\u002Fscripts\")\r\nfrom pixel_art import pixel_art\r\nfrom pixel_art_video import pixel_art_video\r\n\r\n# 1. Convert to pixel art\r\npixel_art(\"\u002Fpath\u002Fto\u002Fphoto.jpg\", \"\u002Ftmp\u002Fpixel.png\", preset=\"nes\")\r\n\r\n# 2. Animate (optional)\r\npixel_art_video(\r\n    \"\u002Ftmp\u002Fpixel.png\",\r\n    \"\u002Ftmp\u002Fpixel.mp4\",\r\n    scene=\"night\",\r\n    duration=6,\r\n    fps=15,\r\n    seed=42,\r\n    export_gif=True,\r\n)\r\n```\r\n\r\n### CLI\r\n\r\n```bash\r\ncd \u002Fhome\u002Fteknium\u002F.hermes\u002Fskills\u002Fcreative\u002Fpixel-art\u002Fscripts\r\n\r\npython pixel_art.py in.jpg out.png --preset gameboy\r\npython pixel_art.py in.jpg out.png --preset snes --palette PICO_8 --block 6\r\n\r\npython pixel_art_video.py out.png out.mp4 --scene night --duration 6 --gif\r\n```\r\n\r\n## Pipeline Rationale\r\n\r\n**Pixel conversion:**\r\n1. Boost contrast\u002Fcolor\u002Fsharpness (stronger for smaller palettes)\r\n2. Posterize to simplify tonal regions before quantization\r\n3. Downscale by `block` with `Image.NEAREST` (hard pixels, no interpolation)\r\n4. Quantize with Floyd-Steinberg dithering — against either an adaptive\r\n   N-color palette OR a named hardware palette\r\n5. Upscale back with `Image.NEAREST`\r\n\r\nQuantizing AFTER downscale keeps dithering aligned with the final pixel grid.\r\nQuantizing before would waste error-diffusion on detail that disappears.\r\n\r\n**Video overlay:**\r\n- Copies the base frame each tick (static background)\r\n- Overlays stateless-per-frame particle draws (one function per effect)\r\n- Encodes via ffmpeg `libx264 -pix_fmt yuv420p -crf 18`\r\n- Optional GIF via `palettegen` + `paletteuse`\r\n\r\n## Dependencies\r\n\r\n- Python 3.9+\r\n- Pillow (`pip install Pillow`)\r\n- ffmpeg on PATH (only needed for video — Hermes installs package this)\r\n\r\n## Pitfalls\r\n\r\n- Pallet keys are case-sensitive (`\"NES\"`, `\"PICO_8\"`, `\"GAMEBOY_ORIGINAL\"`).\r\n- Very small sources (\u003C100px wide) collapse under 8-10px blocks. Upscale the\r\n  source first if it's tiny.\r\n- Fractional `block` or `palette` will break quantization — keep them positive ints.\r\n- Animation particle counts are tuned for ~640x480 canvases. On very large\r\n  images you may want a second pass with a different seed for density.\r\n- `mono_green` \u002F `mono_amber` force `color=0.0` (desaturate). If you override\r\n  and keep chroma, the 2-color palette can produce stripes on smooth regions.\r\n- `clarify` loop: call it at most twice per turn (style, then scene). Don't\r\n  pepper the user with more picks.\r\n\r\n## Verification\r\n\r\n- PNG is created at the output path\r\n- Clear square pixel blocks visible at the preset's block size\r\n- Color count matches preset (eyeball the image or run `Image.open(p).getcolors()`)\r\n- Video is a valid MP4 (`ffprobe` can open it) with non-zero size\r\n\r\n## Attribution\r\n\r\nNamed hardware palettes and the procedural animation loops in `pixel_art_video.py`\r\nare ported from [pixel-art-studio](https:\u002F\u002Fgithub.com\u002FSynero\u002Fpixel-art-studio)\r\n(MIT). See `ATTRIBUTION.md` in this skill directory for details.\r\n","# Pixel Art\r\n\r\nConvert any image into retro pixel art, then optionally animate it into a short\r\nMP4 or GIF with era-appropriate effects (rain, fireflies, snow, embers).\r\n\r\nTwo scripts ship with this skill:\r\n\r\n- `scripts\u002Fpixel_art.py` — photo → pixel-art PNG (Floyd-Steinberg dithering)\r\n- `scripts\u002Fpixel_art_video.py` — pixel-art PNG → animated MP4 (+ optional GIF)\r\n\r\nEach is importable or runnable directly. Presets snap to hardware palettes\r\nwhen you want era-accurate colors (NES, Game Boy, PICO-8, etc.), or use\r\nadaptive N-color quantization for arcade\u002FSNES-style looks.\r\n\r\n## When to Use\r\n\r\n- User wants retro pixel art from a source image\r\n- User asks for NES \u002F Game Boy \u002F PICO-8 \u002F C64 \u002F arcade \u002F SNES styling\r\n- User wants a short looping animation (rain scene, night sky, snow, etc.)\r\n- Posters, album covers, social posts, sprites, characters, avatars\r\n\r\n## Workflow\r\n\r\nBefore generating, confirm the style with the user. Different presets produce\r\nvery different outputs and regenerating is costly.\r\n\r\n### Step 1 — Offer a style\r\n\r\nCall `clarify` with 4 representative presets. Pick the set based on what the\r\nuser asked for — don't just dump all 14.\r\n\r\nDefault menu when the user's intent is unclear:\r\n\r\n```python\r\nclarify(\r\n    question=\"Which pixel-art style do you want?\",\r\n    choices=[\r\n        \"arcade — bold, chunky 80s cabinet feel (16 colors, 8px)\",\r\n        \"nes — Nintendo 8-bit hardware palette (54 colors, 8px)\",\r\n        \"gameboy — 4-shade green Game Boy DMG\",\r\n        \"snes — cleaner 16-bit look (32 colors, 4px)\",\r\n    ],\r\n)\r\n```\r\n\r\nWhen the user already named an era (e.g. \"80s arcade\", \"Gameboy\"), skip\r\n`clarify` and use the matching preset directly.\r\n\r\n### Step 2 — Offer animation (optional)\r\n\r\nIf the user asked for a video\u002FGIF, or the output might benefit from motion,\r\nask which scene:\r\n\r\n```python\r\nclarify(\r\n    question=\"Want to animate it? Pick a scene or skip.\",\r\n    choices=[\r\n        \"night — stars + fireflies + leaves\",\r\n        \"urban — rain + neon pulse\",\r\n        \"snow — falling snowflakes\",\r\n        \"skip — just the image\",\r\n    ],\r\n)\r\n```\r\n\r\nDo NOT call `clarify` more than twice in a row. One for style, one for scene if\r\nanimation is on the table. If the user explicitly asked for a specific style\r\nand scene in their message, skip `clarify` entirely.\r\n\r\n### Step 3 — Generate\r\n\r\nRun `pixel_art()` first; if animation was requested, chain into\r\n`pixel_art_video()` on the result.\r\n\r\n## Preset Catalog\r\n\r\n| Preset | Era | Palette | Block | Best for |\r\n|--------|-----|---------|-------|----------|\r\n| `arcade` | 80s arcade | adaptive 16 | 8px | Bold posters, hero art |\r\n| `snes` | 16-bit | adaptive 32 | 4px | Characters, detailed scenes |\r\n| `nes` | 8-bit | NES (54) | 8px | True NES look |\r\n| `gameboy` | DMG handheld | 4 green shades | 8px | Monochrome Game Boy |\r\n| `gameboy_pocket` | Pocket handheld | 4 grey shades | 8px | Mono GB Pocket |\r\n| `pico8` | PICO-8 | 16 fixed | 6px | Fantasy-console look |\r\n| `c64` | Commodore 64 | 16 fixed | 8px | 8-bit home computer |\r\n| `apple2` | Apple II hi-res | 6 fixed | 10px | Extreme retro, 6 colors |\r\n| `teletext` | BBC Teletext | 8 pure | 10px | Chunky primary colors |\r\n| `mspaint` | Windows MS Paint | 24 fixed | 8px | Nostalgic desktop |\r\n| `mono_green` | CRT phosphor | 2 green | 6px | Terminal\u002FCRT aesthetic |\r\n| `mono_amber` | CRT amber | 2 amber | 6px | Amber monitor look |\r\n| `neon` | Cyberpunk | 10 neons | 6px | Vaporwave\u002Fcyber |\r\n| `pastel` | Soft pastel | 10 pastels | 6px | Kawaii \u002F gentle |\r\n\r\nNamed palettes live in `scripts\u002Fpalettes.py` (see `references\u002Fpalettes.md` for\r\nthe complete list — 28 named palettes total). Any preset can be overridden:\r\n\r\n```python\r\npixel_art(\"in.png\", \"out.png\", preset=\"snes\", palette=\"PICO_8\", block=6)\r\n```\r\n\r\n## Scene Catalog (for video)\r\n\r\n| Scene | Effects |\r\n|-------|---------|\r\n| `night` | Twinkling stars + fireflies + drifting leaves |\r\n| `dusk` | Fireflies + sparkles |\r\n| `tavern` | Dust motes + warm sparkles |\r\n| `indoor` | Dust motes |\r\n| `urban` | Rain + neon pulse |\r\n| `nature` | Leaves + fireflies |\r\n| `magic` | Sparkles + fireflies |\r\n| `storm` | Rain + lightning |\r\n| `underwater` | Bubbles + light sparkles |\r\n| `fire` | Embers + sparkles |\r\n| `snow` | Snowflakes + sparkles |\r\n| `desert` | Heat shimmer + dust |\r\n\r\n## Invocation Patterns\r\n\r\n### Python (import)\r\n\r\n```python\r\nimport sys\r\nsys.path.insert(0, \"\u002Fhome\u002Fteknium\u002F.hermes\u002Fskills\u002Fcreative\u002Fpixel-art\u002Fscripts\")\r\nfrom pixel_art import pixel_art\r\nfrom pixel_art_video import pixel_art_video\r\n\r\n# 1. Convert to pixel art\r\npixel_art(\"\u002Fpath\u002Fto\u002Fphoto.jpg\", \"\u002Ftmp\u002Fpixel.png\", preset=\"nes\")\r\n\r\n# 2. Animate (optional)\r\npixel_art_video(\r\n    \"\u002Ftmp\u002Fpixel.png\",\r\n    \"\u002Ftmp\u002Fpixel.mp4\",\r\n    scene=\"night\",\r\n    duration=6,\r\n    fps=15,\r\n    seed=42,\r\n    export_gif=True,\r\n)\r\n```\r\n\r\n### CLI\r\n\r\n```bash\r\ncd \u002Fhome\u002Fteknium\u002F.hermes\u002Fskills\u002Fcreative\u002Fpixel-art\u002Fscripts\r\n\r\npython pixel_art.py in.jpg out.png --preset gameboy\r\npython pixel_art.py in.jpg out.png --preset snes --palette PICO_8 --block 6\r\n\r\npython pixel_art_video.py out.png out.mp4 --scene night --duration 6 --gif\r\n```\r\n\r\n## Pipeline Rationale\r\n\r\n**Pixel conversion:**\r\n1. Boost contrast\u002Fcolor\u002Fsharpness (stronger for smaller palettes)\r\n2. Posterize to simplify tonal regions before quantization\r\n3. Downscale by `block` with `Image.NEAREST` (hard pixels, no interpolation)\r\n4. Quantize with Floyd-Steinberg dithering — against either an adaptive\r\n   N-color palette OR a named hardware palette\r\n5. Upscale back with `Image.NEAREST`\r\n\r\nQuantizing AFTER downscale keeps dithering aligned with the final pixel grid.\r\nQuantizing before would waste error-diffusion on detail that disappears.\r\n\r\n**Video overlay:**\r\n- Copies the base frame each tick (static background)\r\n- Overlays stateless-per-frame particle draws (one function per effect)\r\n- Encodes via ffmpeg `libx264 -pix_fmt yuv420p -crf 18`\r\n- Optional GIF via `palettegen` + `paletteuse`\r\n\r\n## Dependencies\r\n\r\n- Python 3.9+\r\n- Pillow (`pip install Pillow`)\r\n- ffmpeg on PATH (only needed for video — Hermes installs package this)\r\n\r\n## Pitfalls\r\n\r\n- Pallet keys are case-sensitive (`\"NES\"`, `\"PICO_8\"`, `\"GAMEBOY_ORIGINAL\"`).\r\n- Very small sources (\u003C100px wide) collapse under 8-10px blocks. Upscale the\r\n  source first if it's tiny.\r\n- Fractional `block` or `palette` will break quantization — keep them positive ints.\r\n- Animation particle counts are tuned for ~640x480 canvases. On very large\r\n  images you may want a second pass with a different seed for density.\r\n- `mono_green` \u002F `mono_amber` force `color=0.0` (desaturate). If you override\r\n  and keep chroma, the 2-color palette can produce stripes on smooth regions.\r\n- `clarify` loop: call it at most twice per turn (style, then scene). Don't\r\n  pepper the user with more picks.\r\n\r\n## Verification\r\n\r\n- PNG is created at the output path\r\n- Clear square pixel blocks visible at the preset's block size\r\n- Color count matches preset (eyeball the image or run `Image.open(p).getcolors()`)\r\n- Video is a valid MP4 (`ffprobe` can open it) with non-zero size\r\n\r\n## Attribution\r\n\r\nNamed hardware palettes and the procedural animation loops in `pixel_art_video.py`\r\nare ported from [pixel-art-studio](https:\u002F\u002Fgithub.com\u002FSynero\u002Fpixel-art-studio)\r\n(MIT). See `ATTRIBUTION.md` in this skill directory for details.\r\n",{"name":5,"author":50,"license":15,"version":51,"metadata":52,"platforms":61,"description":7},"dodo-reach","2.0.0",{"hermes":53},{"tags":54,"credits":59,"category":35},[35,5,55,56,57,34,37,36,58],"arcade","snes","nes","video",[60],"Hardware palettes and animation loops ported from Synero\u002Fpixel-art-studio (MIT) — https:\u002F\u002Fgithub.com\u002FSynero\u002Fpixel-art-studio",[42,44,41],"main","0d1434f89f4bc6b07e9d272accd8c1013768820f","archive\u002Fskill-md-reviewed\u002Fsha256\u002F85\u002F851ade2cb7a3592c15e761d76a5e29394c700e7c0b68224a64036f8dfd158b8e",0,"https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills","https:\u002F\u002Fgithub.com\u002Fzapabob","The Open University of JAPAN　2019-now\r\n\r\nTokyo University of Science　2007-2010","2026-10-26 16:29:01",{"source":8,"skillName":5,"commands":71,"prompt":81,"zipAvailable":82},[72,75,78],{"tool":73,"command":74},"npx","npx skills add zapabob\u002FSkills --skill pixel-art",{"tool":76,"command":77},"bunx","bunx skills add zapabob\u002FSkills --skill pixel-art",{"tool":79,"command":80},"pnpm","pnpm dlx skills add zapabob\u002FSkills --skill pixel-art","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Farchive\u002Fskill-md-reviewed\u002Fsha256\u002F85\u002F851ade2cb7a3592c15e761d76a5e29394c700e7c0b68224a64036f8dfd158b8e\u002FSKILL.md",true,[],[85,116,149,174,201,218],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":102,"publishedAt":45},"01M6GJTE1GESGGF9K028Y7753E","xurl","X\u002FTwitter via xurl CLI: post, search, DM, media, v2 API.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fxurl\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[91,94,97],{"categoryNo":92,"categoryName":93,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":95,"categoryName":96,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":98,"categoryName":99,"taxonomyType":100,"taxonomyTypeDesc":101},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[87,103,44,104,43,42,41,105,106,40,107,108,109,110,111,112,62,113,114,115],"openclaw","cli","official","search","social-media","api","Media","hermes","hermes agent","twitter","social","via","post",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":131,"publishedAt":45},"01M6GJT8S1PXQ8WPXT1HSNBWH2","writing-plans","Write implementation plans: bite-sized tasks, paths, code.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwriting-plans\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[122,123,126,127,128],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":124,"categoryName":125,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":95,"categoryName":96,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":98,"categoryName":99,"taxonomyType":100,"taxonomyTypeDesc":101},{"categoryNo":129,"categoryName":130,"taxonomyType":100,"taxonomyTypeDesc":101},"01JBSEEDCAT000000000000036","内容创作者",[132,133,134,135,44,136,42,137,41,138,139,140,141,142,143,144,145,146,147,148],"writing","writing plans","plans","design","review","workflow","documentation","tasks","development","code","planning","code-review","subagent","write","superpowers","paths","test-driven-development",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":156,"publishedAt":45},"01M6GJST0H5X7WHBJ3BZK0DVKH","whisper","OpenAI's general-purpose speech recognition model. Supports 99 languages, transcription, translation to English, and language identification. Six model sizes from tiny (39M params) to large (1550M params). Use for speech-to-text, podcast transcription, or multilingual audio processing. Best for robust, multilingual ASR.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwhisper\u002Fvariants\u002Fhermes-agent-optional\u002FSKILL.md",[155],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[151,44,42,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173],"openai","speech","multimodal","Transformers","ASR","Audio","text","model","speech recognition","use","general","multilingual","translation","english","identification","processing","Audio Processing",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":183,"publishedAt":45},"01M6GJSMRQ8EETZTYMG72P70EA","weights-and-biases","W&B: log ML experiments, sweeps, model registry, dashboards.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fweights-and-biases\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[180],{"categoryNo":181,"categoryName":182,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化",[184,44,185,186,41,187,188,189,190,191,192,164,193,194,195,196,197,198,199,200],"weights and biases","tensorflow","experiments","pytorch","visualization","registry","real-time","tuning","dashboards","experiment","log","time","Experiment Tracking","Model Registry","Hyperparameter Tuning","WandB","Real-Time Visualization",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":208,"publishedAt":45},"01M6GJS19KDPRY112JTR326S06","watchers","Poll RSS, JSON APIs, and GitHub with watermark dedup.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwatchers\u002Fvariants\u002Fhermes-agent-optional\u002FSKILL.md",[207],{"categoryNo":95,"categoryName":96,"taxonomyType":21,"taxonomyTypeDesc":22},[203,44,209,43,42,210,211,212,213,214,215,110,111,216,217],"terminal","automation","http","monitoring","cron","json","rss","devops","with",{"skillNo":219,"name":220,"nameZh":6,"description":221,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":222,"categories":223,"keywords":226,"publishedAt":45},"01M6GJRHJD2A6Q830SWF9W48BC","serving-llms-vllm","vLLM: high-throughput LLM serving, OpenAI API, quantization.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fvllm\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[224,225],{"categoryNo":92,"categoryName":93,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":98,"categoryName":99,"taxonomyType":100,"taxonomyTypeDesc":101},[227,228,229,42,230,157,231,232,233,160,234,108,235,236,237,238,239,240,241,242],"llms","vLLM","serving llms vllm","research","openai api","tensor","Inference Serving","Production","llm serving","High Throughput","PagedAttention","Continuous Batching","Quantization","Tensor Parallelism","high-throughput","throughput"]