[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71G2HD5TYS36KGXDHEWX2YN":3,"skill-same:01M71G2HD5TYS36KGXDHEWX2YN":76},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":13,"repositoryHtmlUrl":59,"repositoryHomepageUrl":6,"ownerHtmlUrl":60,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":61,"install":62,"resources":75},"01M71G2HD5TYS36KGXDHEWX2YN","gif-search",null,"Search and download GIFs from Tenor using curl. No dependencies beyond curl and jq. Useful for finding reaction GIFs, creating visual content, and sending GIFs in chat.","gjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6","gjbvsjjvgm-sketch","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F278511911?v=4","01M71F3JXKZQ70H2KCHHTXKZDA","01M71F3JY8A79Z3NZBW08TF4JD",0,"MIT","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fmedia\u002Fgif-search\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"gif","search","gif search","chat","visual content","Media","curl","useful","for","dependencies","jq","visual","content","download","api","2026-11-10 10:12:30",false,"---\nname: gif-search\ndescription: Search and download GIFs from Tenor using curl. No dependencies beyond curl and jq. Useful for finding reaction GIFs, creating visual content, and sending GIFs in chat.\nversion: 1.1.0\nauthor: YOUSEF SHTIWE\nlicense: MIT\nprerequisites:\n  env_vars: [TENOR_API_KEY]\n  commands: [curl, jq]\nmetadata:\n  hermes:\n    tags: [GIF, Media, Search, Tenor, API]\n---\n\n# GIF Search (Tenor API)\n\nSearch and download GIFs directly via the Tenor API using curl. No extra tools needed.\n\n## Setup\n\nSet your Tenor API key in your environment (add to `~\u002F.hermes\u002F.env`):\n\n```bash\nTENOR_API_KEY=your_key_here\n```\n\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.\n\n## Prerequisites\n\n- `curl` and `jq` (both standard on macOS\u002FLinux)\n- `TENOR_API_KEY` environment variable\n\n## Search for GIFs\n\n```bash\n# Search and get GIF URLs\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'\n\n# Get smaller\u002Fpreview versions\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'\n```\n\n## Download a GIF\n\n```bash\n# Search and download the top result\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')\ncurl -sL \"$URL\" -o celebration.gif\n```\n\n## Get Full Metadata\n\n```bash\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}'\n```\n\n## API Parameters\n\n| Parameter | Description |\n|-----------|-------------|\n| `q` | Search query (URL-encode spaces as `+`) |\n| `limit` | Max results (1-50, default 20) |\n| `key` | API key (from `$TENOR_API_KEY` env var) |\n| `media_filter` | Filter formats: `gif`, `tinygif`, `mp4`, `tinymp4`, `webm` |\n| `contentfilter` | Safety: `off`, `low`, `medium`, `high` |\n| `locale` | Language: `en_US`, `es`, `fr`, etc. |\n\n## Available Media Formats\n\nEach result has multiple formats under `.media_formats`:\n\n| Format | Use case |\n|--------|----------|\n| `gif` | Full quality GIF |\n| `tinygif` | Small preview GIF |\n| `mp4` | Video version (smaller file size) |\n| `tinymp4` | Small preview video |\n| `webm` | WebM video |\n| `nanogif` | Tiny thumbnail |\n\n## Notes\n\n- URL-encode the query: spaces as `+`, special chars as `%XX`\n- For sending in chat, `tinygif` URLs are lighter weight\n- GIF URLs can be used directly in markdown: `![alt](url)`\n","# GIF Search (Tenor API)\n\nSearch and download GIFs directly via the Tenor API using curl. No extra tools needed.\n\n## Setup\n\nSet your Tenor API key in your environment (add to `~\u002F.hermes\u002F.env`):\n\n```bash\nTENOR_API_KEY=your_key_here\n```\n\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.\n\n## Prerequisites\n\n- `curl` and `jq` (both standard on macOS\u002FLinux)\n- `TENOR_API_KEY` environment variable\n\n## Search for GIFs\n\n```bash\n# Search and get GIF URLs\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'\n\n# Get smaller\u002Fpreview versions\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'\n```\n\n## Download a GIF\n\n```bash\n# Search and download the top result\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')\ncurl -sL \"$URL\" -o celebration.gif\n```\n\n## Get Full Metadata\n\n```bash\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}'\n```\n\n## API Parameters\n\n| Parameter | Description |\n|-----------|-------------|\n| `q` | Search query (URL-encode spaces as `+`) |\n| `limit` | Max results (1-50, default 20) |\n| `key` | API key (from `$TENOR_API_KEY` env var) |\n| `media_filter` | Filter formats: `gif`, `tinygif`, `mp4`, `tinymp4`, `webm` |\n| `contentfilter` | Safety: `off`, `low`, `medium`, `high` |\n| `locale` | Language: `en_US`, `es`, `fr`, etc. |\n\n## Available Media Formats\n\nEach result has multiple formats under `.media_formats`:\n\n| Format | Use case |\n|--------|----------|\n| `gif` | Full quality GIF |\n| `tinygif` | Small preview GIF |\n| `mp4` | Video version (smaller file size) |\n| `tinymp4` | Small preview video |\n| `webm` | WebM video |\n| `nanogif` | Tiny thumbnail |\n\n## Notes\n\n- URL-encode the query: spaces as `+`, special chars as `%XX`\n- For sending in chat, `tinygif` URLs are lighter weight\n- GIF URLs can be used directly in markdown: `![alt](url)`\n",{"name":5,"author":43,"license":14,"version":44,"metadata":45,"description":7,"prerequisites":52},"YOUSEF SHTIWE","1.1.0",{"hermes":46},{"tags":47},[48,28,49,50,51],"GIF","Search","Tenor","API",{"commands":53,"env_vars":54},[29,33],[55],"TENOR_API_KEY","main","93bbc269671fbb340afa15b36a8766f15dc30df2","hermes_sovereign_data\u002Fskills\u002Fmedia\u002Fgif-search","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch","2026-04-27 02:51:28",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add gjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6 --skill gif-search",{"tool":68,"command":69},"bunx","bunx skills add gjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6 --skill gif-search",{"tool":71,"command":72},"pnpm","pnpm dlx skills add gjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6 --skill gif-search","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fmedia\u002Fgif-search\u002FSKILL.md",true,[],[77,117,145,161,180,201],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":97,"publishedAt":38},"01M71G6TJ2RAQ1J0PV3K6D9GQA","writing-plans","Use when you have a spec or requirements for a multi-step task. Creates comprehensive implementation plans with bite-sized tasks, exact file paths, and complete code examples.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Fwriting-plans\u002FSKILL.md",[83,86,89,94],{"categoryNo":84,"categoryName":85,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":87,"categoryName":88,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":90,"categoryName":91,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":95,"categoryName":96,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000036","内容创作者",[98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,31,115,116],"writing","writing plans","plans","design","review","workflow","documentation","tasks","development","code","planning","code-review","subagent","superpowers","paths","test-driven-development","you","test-driven","when",{"skillNo":118,"name":113,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":130,"publishedAt":38},"01M71G6R81013R3T7W5VP56GCB","Use when implementing any feature or bugfix, before writing implementation code. Enforces RED-GREEN-REFACTOR cycle with test-first approach.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Ftest-driven-development\u002FSKILL.md",[122,125,128,129],{"categoryNo":123,"categoryName":124,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":126,"categoryName":127,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":87,"categoryName":88,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":95,"categoryName":96,"taxonomyType":92,"taxonomyTypeDesc":93},[131,132,106,133,134,98,135,107,136,110,111,137,138,139,140,141,142,143,144,116],"test","test driven development","driven","testing","debugging","refactor","red-green-refactor","cycle","green","systematic","bugfix","implementing","systematic-debugging","test-first",{"skillNo":146,"name":143,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":151,"publishedAt":38},"01M71G6N0Y546JZEDF25E2PMCE","Use when encountering any bug, test failure, or unexpected behavior. 4-phase root cause investigation — NO fixes without understanding the problem first.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Fsystematic-debugging\u002FSKILL.md",[150],{"categoryNo":126,"categoryName":127,"taxonomyType":20,"taxonomyTypeDesc":21},[152,135,140,98,131,106,110,153,111,154,155,156,100,157,113,158,115,159,160,116],"systematic debugging","use","bug","root-cause","problem-solving","problem","fixes","phase","root cause",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":173,"publishedAt":38},"01M71G6J0DXEGY48GH4KVW2SJH","subagent-driven-development","Use when executing implementation plans with independent tasks. Dispatches fresh delegate_task per task with two-stage review (spec compliance then code quality).","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Fsubagent-driven-development\u002FSKILL.md",[167,168,169,170],{"categoryNo":87,"categoryName":88,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":90,"categoryName":91,"taxonomyType":92,"taxonomyTypeDesc":93},{"categoryNo":95,"categoryName":96,"taxonomyType":92,"taxonomyTypeDesc":93},{"categoryNo":171,"categoryName":172,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000037","律师与法务",[106,174,110,133,98,102,103,175,105,107,176,109,177,178,111,100,179,113,115,116],"subagent driven development","code quality","delegation","parallel","delegate","fresh",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":184,"categories":185,"keywords":188,"publishedAt":38},"01M71G6EFFBQX6634E6XHB09Y1","requesting-code-review","Pre-commit verification pipeline — static security scan, baseline-aware quality gates, independent reviewer subagent, and auto-fix loop. Use after code changes and before committing, pushing, or opening a PR.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Frequesting-code-review\u002FSKILL.md",[186,187],{"categoryNo":123,"categoryName":124,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":90,"categoryName":91,"taxonomyType":92,"taxonomyTypeDesc":93},[189,102,107,190,98,191,109,192,193,194,195,110,196,197,198,111,113,199,200,115],"code review","requesting code review","commit","verification","security scan","pipeline","loop","reviewer","fix","auto","static","auto-fix",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":207,"publishedAt":38},"01M71G6CM8ANSWVFXCN9AAD58Y","plan","Plan mode for Hermes — inspect context, write a markdown plan into the active workspace's `.hermes\u002Fplans\u002F` directory, and do not execute the work.","https:\u002F\u002Fgithub.com\u002Fgjbvsjjvgm-sketch\u002Fhermes-sovereign-unified-v13.6\u002Fblob\u002Fmain\u002Fhermes_sovereign_data\u002Fskills\u002Fsoftware-development\u002Fplan\u002FSKILL.md",[],[203,98,208,103,106,108,209,110,210,211,212,213,214,215,100,216,217,218,31,219],"directory","markdown","workspace","work","write","implementation","do","active","plan mode","inspect","mode","plan-mode"]