[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DGFSCNWR6KH1B8FAQJFEC6":3,"skill-same:01M6DGFSCNWR6KH1B8FAQJFEC6":83},{"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":23,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":58,"repositoryHtmlUrl":59,"repositoryHomepageUrl":6,"ownerHtmlUrl":60,"ownerBlogUrl":6,"ownerDescription":61,"updatedAt":62,"install":63,"resources":76},"01M6DGFSCNWR6KH1B8FAQJFEC6","gif-search",null,"Search\u002Fdownload GIFs from Tenor via curl + jq.","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\u002F60\u002F60780ed24c53e2e01f14f6e728e1f6c220b3cf8e8dd0df6d1c5fb72091cf3c5a\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35],"search","gif search","macos","linux","windows","api","Media","download","hermes","hermes agent","curl","jq","2026-11-10 10:12:30",false,"---\r\nname: gif-search\r\ndescription: \"Search\u002Fdownload GIFs from Tenor via curl + jq.\"\r\nversion: 1.1.0\r\nauthor: Hermes Agent\r\nlicense: MIT\r\nplatforms: [linux, macos, windows]\r\nprerequisites:\r\n  env_vars: [TENOR_API_KEY]\r\n  commands: [curl, jq]\r\nmetadata:\r\n  hermes:\r\n    tags: [GIF, Media, Search, Tenor, API]\r\n---\r\n\r\n# GIF Search (Tenor API)\r\n\r\nSearch and download GIFs directly via the Tenor API using curl. No extra tools needed.\r\n\r\n## When to use\r\n\r\nUseful for finding reaction GIFs, creating visual content, and sending GIFs in chat.\r\n\r\n## Setup\r\n\r\nSet your Tenor API key in your environment (add to `${HERMES_HOME:-~\u002F.hermes}\u002F.env`):\r\n\r\n```bash\r\nTENOR_API_KEY=your_key_here\r\n```\r\n\r\nGet a free API key at https:\u002F\u002Fdevelopers.google.com\u002Ftenor\u002Fguides\u002Fquickstart — the Google Cloud Console Tenor API key is free and has generous rate limits.\r\n\r\n## Prerequisites\r\n\r\n- `curl` and `jq` (both standard on macOS\u002FLinux)\r\n- `TENOR_API_KEY` environment variable\r\n\r\n## Search for GIFs\r\n\r\n```bash\r\n# Search and get GIF URLs\r\ncurl -s \"https:\u002F\u002Ftenor.googleapis.com\u002Fv2\u002Fsearch?q=thumbs+up&limit=5&key=${TENOR_API_KEY}\" | jq -r '.results[].media_formats.gif.url'\r\n\r\n# Get smaller\u002Fpreview versions\r\ncurl -s \"https:\u002F\u002Ftenor.googleapis.com\u002Fv2\u002Fsearch?q=nice+work&limit=3&key=${TENOR_API_KEY}\" | jq -r '.results[].media_formats.tinygif.url'\r\n```\r\n\r\n## Download a GIF\r\n\r\n```bash\r\n# Search and download the top result\r\nURL=$(curl -s \"https:\u002F\u002Ftenor.googleapis.com\u002Fv2\u002Fsearch?q=celebration&limit=1&key=${TENOR_API_KEY}\" | jq -r '.results[0].media_formats.gif.url')\r\ncurl -sL \"$URL\" -o celebration.gif\r\n```\r\n\r\n## Get Full Metadata\r\n\r\n```bash\r\ncurl -s \"https:\u002F\u002Ftenor.googleapis.com\u002Fv2\u002Fsearch?q=cat&limit=3&key=${TENOR_API_KEY}\" | jq '.results[] | {title: .title, url: .media_formats.gif.url, preview: .media_formats.tinygif.url, dimensions: .media_formats.gif.dims}'\r\n```\r\n\r\n## API Parameters\r\n\r\n| Parameter | Description |\r\n|-----------|-------------|\r\n| `q` | Search query (URL-encode spaces as `+`) |\r\n| `limit` | Max results (1-50, default 20) |\r\n| `key` | API key (from `$TENOR_API_KEY` env var) |\r\n| `media_filter` | Filter formats: `gif`, `tinygif`, `mp4`, `tinymp4`, `webm` |\r\n| `contentfilter` | Safety: `off`, `low`, `medium`, `high` |\r\n| `locale` | Language: `en_US`, `es`, `fr`, etc. |\r\n\r\n## Available Media Formats\r\n\r\nEach result has multiple formats under `.media_formats`:\r\n\r\n| Format | Use case |\r\n|--------|----------|\r\n| `gif` | Full quality GIF |\r\n| `tinygif` | Small preview GIF |\r\n| `mp4` | Video version (smaller file size) |\r\n| `tinymp4` | Small preview video |\r\n| `webm` | WebM video |\r\n| `nanogif` | Tiny thumbnail |\r\n\r\n## Notes\r\n\r\n- URL-encode the query: spaces as `+`, special chars as `%XX`\r\n- For sending in chat, `tinygif` URLs are lighter weight\r\n- GIF URLs can be used directly in markdown: `![alt](url)`\r\n","# GIF Search (Tenor API)\r\n\r\nSearch and download GIFs directly via the Tenor API using curl. No extra tools needed.\r\n\r\n## When to use\r\n\r\nUseful for finding reaction GIFs, creating visual content, and sending GIFs in chat.\r\n\r\n## Setup\r\n\r\nSet your Tenor API key in your environment (add to `${HERMES_HOME:-~\u002F.hermes}\u002F.env`):\r\n\r\n```bash\r\nTENOR_API_KEY=your_key_here\r\n```\r\n\r\nGet a free API key at https:\u002F\u002Fdevelopers.google.com\u002Ftenor\u002Fguides\u002Fquickstart — the Google Cloud Console Tenor API key is free and has generous rate limits.\r\n\r\n## Prerequisites\r\n\r\n- `curl` and `jq` (both standard on macOS\u002FLinux)\r\n- `TENOR_API_KEY` environment variable\r\n\r\n## Search for GIFs\r\n\r\n```bash\r\n# Search and get GIF URLs\r\ncurl -s \"https:\u002F\u002Ftenor.googleapis.com\u002Fv2\u002Fsearch?q=thumbs+up&limit=5&key=${TENOR_API_KEY}\" | jq -r '.results[].media_formats.gif.url'\r\n\r\n# Get smaller\u002Fpreview versions\r\ncurl -s \"https:\u002F\u002Ftenor.googleapis.com\u002Fv2\u002Fsearch?q=nice+work&limit=3&key=${TENOR_API_KEY}\" | jq -r '.results[].media_formats.tinygif.url'\r\n```\r\n\r\n## Download a GIF\r\n\r\n```bash\r\n# Search and download the top result\r\nURL=$(curl -s \"https:\u002F\u002Ftenor.googleapis.com\u002Fv2\u002Fsearch?q=celebration&limit=1&key=${TENOR_API_KEY}\" | jq -r '.results[0].media_formats.gif.url')\r\ncurl -sL \"$URL\" -o celebration.gif\r\n```\r\n\r\n## Get Full Metadata\r\n\r\n```bash\r\ncurl -s \"https:\u002F\u002Ftenor.googleapis.com\u002Fv2\u002Fsearch?q=cat&limit=3&key=${TENOR_API_KEY}\" | jq '.results[] | {title: .title, url: .media_formats.gif.url, preview: .media_formats.tinygif.url, dimensions: .media_formats.gif.dims}'\r\n```\r\n\r\n## API Parameters\r\n\r\n| Parameter | Description |\r\n|-----------|-------------|\r\n| `q` | Search query (URL-encode spaces as `+`) |\r\n| `limit` | Max results (1-50, default 20) |\r\n| `key` | API key (from `$TENOR_API_KEY` env var) |\r\n| `media_filter` | Filter formats: `gif`, `tinygif`, `mp4`, `tinymp4`, `webm` |\r\n| `contentfilter` | Safety: `off`, `low`, `medium`, `high` |\r\n| `locale` | Language: `en_US`, `es`, `fr`, etc. |\r\n\r\n## Available Media Formats\r\n\r\nEach result has multiple formats under `.media_formats`:\r\n\r\n| Format | Use case |\r\n|--------|----------|\r\n| `gif` | Full quality GIF |\r\n| `tinygif` | Small preview GIF |\r\n| `mp4` | Video version (smaller file size) |\r\n| `tinymp4` | Small preview video |\r\n| `webm` | WebM video |\r\n| `nanogif` | Tiny thumbnail |\r\n\r\n## Notes\r\n\r\n- URL-encode the query: spaces as `+`, special chars as `%XX`\r\n- For sending in chat, `tinygif` URLs are lighter weight\r\n- GIF URLs can be used directly in markdown: `![alt](url)`\r\n",{"name":5,"author":41,"license":15,"version":42,"metadata":43,"platforms":50,"description":7,"prerequisites":51},"Hermes Agent","1.1.0",{"hermes":44},{"tags":45},[46,30,47,48,49],"GIF","Search","Tenor","API",[27,26,28],{"commands":52,"env_vars":53},[34,35],[54],"TENOR_API_KEY","main","0d1434f89f4bc6b07e9d272accd8c1013768820f","archive\u002Fskill-md-reviewed\u002Fsha256\u002F60\u002F60780ed24c53e2e01f14f6e728e1f6c220b3cf8e8dd0df6d1c5fb72091cf3c5a",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":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add zapabob\u002FSkills --skill gif-search",{"tool":69,"command":70},"bunx","bunx skills add zapabob\u002FSkills --skill gif-search",{"tool":72,"command":73},"pnpm","pnpm dlx skills add zapabob\u002FSkills --skill gif-search","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Farchive\u002Fskill-md-reviewed\u002Fsha256\u002F60\u002F60780ed24c53e2e01f14f6e728e1f6c220b3cf8e8dd0df6d1c5fb72091cf3c5a\u002FSKILL.md",true,[77],{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"index.json","REFERENCE","参考文档",544,"https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fcloud-containers-scanning-distroless\u002Findex.json",[84,112,147,172,199,216],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":101,"publishedAt":36},"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",[90,93,96],{"categoryNo":91,"categoryName":92,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":94,"categoryName":95,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[86,102,26,103,104,27,28,105,24,106,107,29,30,32,33,108,55,109,110,111],"openclaw","cli","github","official","https","social-media","twitter","social","via","post",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":129,"publishedAt":36},"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",[118,121,124,125,126],{"categoryNo":119,"categoryName":120,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":122,"categoryName":123,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":94,"categoryName":95,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},{"categoryNo":127,"categoryName":128,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000036","内容创作者",[130,131,132,133,26,134,27,135,28,136,137,138,139,140,141,142,143,144,145,146],"writing","writing plans","plans","design","review","workflow","documentation","tasks","development","code","planning","code-review","subagent","write","superpowers","paths","test-driven-development",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":154,"publishedAt":36},"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",[153],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[149,26,27,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171],"openai","speech","multimodal","Transformers","ASR","Audio","text","model","speech recognition","use","general","multilingual","translation","english","identification","processing","Audio Processing",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":181,"publishedAt":36},"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",[178],{"categoryNo":179,"categoryName":180,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化",[182,26,183,184,28,185,186,187,188,189,190,162,191,192,193,194,195,196,197,198],"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":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":206,"publishedAt":36},"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",[205],{"categoryNo":94,"categoryName":95,"taxonomyType":21,"taxonomyTypeDesc":22},[201,26,207,104,27,208,209,210,211,212,213,32,33,214,215],"terminal","automation","http","monitoring","cron","json","rss","devops","with",{"skillNo":217,"name":218,"nameZh":6,"description":219,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":220,"categories":221,"keywords":224,"publishedAt":36},"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",[222,223],{"categoryNo":91,"categoryName":92,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},[225,226,227,27,228,155,229,230,231,158,232,29,233,234,235,236,237,238,239,240],"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"]