[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-google-gemini-deliver":3,"mdc--b0k2z1-key":36,"related-org-google-gemini-deliver":232,"related-repo-google-gemini-deliver":363},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":31,"sourceUrl":34,"mdContent":35},"deliver","post daily briefings to chat platforms","Posts a condensed version of the briefing to a Google Chat or Slack incoming webhook, so the daily run delivers itself — skips silently when no webhook is configured.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"google-gemini","Google Gemini","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fgoogle-gemini.jpg",[12,16,19,22],{"name":13,"slug":14,"type":15},"Automation","automation","tag",{"name":17,"slug":18,"type":15},"Messaging","messaging",{"name":20,"slug":21,"type":15},"Slack","slack",{"name":23,"slug":24,"type":15},"Communications","communications",56,"https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-managed-agents-templates","2026-07-24T06:09:04.439512",null,16,[],{"repoUrl":26,"stars":25,"forks":29,"topics":32,"description":33},[],"This repository contains a collection of templates for building and deploying Gemini Managed Agents using the Gemini API. ","https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-managed-agents-templates\u002Ftree\u002FHEAD\u002Fnews-curator\u002Fskills\u002Fdeliver","---\nname: deliver\ndescription: Posts a condensed version of the briefing to a Google Chat or Slack incoming webhook, so the daily run delivers itself — skips silently when no webhook is configured.\n---\n\n# Deliver Skill\n\nUse this skill as the final step of a sweep, after the briefing file is\nwritten. It closes the last mile: instead of the briefing waiting in the\nworkspace until someone polls for it, the run pushes a condensed version to\na chat space.\n\n## Usage\n\n```bash\npython3 skills\u002Fdeliver\u002Fscripts\u002Fdeliver.py .agents\u002Fworkspace\u002Fbriefings\u002F\u003Cfile>.md\n```\n\nThe script:\n1. Looks for a webhook URL in `\u002Fcredentials\u002Fwebhook.env` (written into the\n   environment by `client\u002Ftriggers.py create` when `CHAT_WEBHOOK_URL` or\n   `SLACK_WEBHOOK_URL` is set at creation time).\n2. **If none is configured, prints a skip notice and exits 0** — delivery is\n   optional and its absence is never an error.\n3. Condenses the briefing markdown for chat (headings bolded, links kept,\n   capped below the ~4,096-character Chat message limit, with a note that the\n   full briefing lives in the workspace).\n4. POSTs `{\"text\": ...}` to the webhook — the same wire format works for both\n   Google Chat and Slack incoming webhooks.\n\n## Instructions for the Agent\n\n- Run this exactly once per sweep, after the briefing file exists, passing the\n  briefing's path.\n- A \"skipping delivery\" message is normal operation — do not mention it as a\n  problem in your output.\n- If the POST fails (non-2xx), report the status and response body verbatim in\n  your final output — the briefing itself is already safely written, so a\n  delivery failure never warrants rewriting it or retrying more than once.\n",{"data":37,"body":38},{"name":4,"description":6},{"type":39,"children":40},"root",[41,50,56,63,125,130,201,207,226],{"type":42,"tag":43,"props":44,"children":46},"element","h1",{"id":45},"deliver-skill",[47],{"type":48,"value":49},"text","Deliver Skill",{"type":42,"tag":51,"props":52,"children":53},"p",{},[54],{"type":48,"value":55},"Use this skill as the final step of a sweep, after the briefing file is\nwritten. It closes the last mile: instead of the briefing waiting in the\nworkspace until someone polls for it, the run pushes a condensed version to\na chat space.",{"type":42,"tag":57,"props":58,"children":60},"h2",{"id":59},"usage",[61],{"type":48,"value":62},"Usage",{"type":42,"tag":64,"props":65,"children":70},"pre",{"className":66,"code":67,"language":68,"meta":69,"style":69},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","python3 skills\u002Fdeliver\u002Fscripts\u002Fdeliver.py .agents\u002Fworkspace\u002Fbriefings\u002F\u003Cfile>.md\n","bash","",[71],{"type":42,"tag":72,"props":73,"children":74},"code",{"__ignoreMap":69},[75],{"type":42,"tag":76,"props":77,"children":80},"span",{"class":78,"line":79},"line",1,[81,87,93,98,104,109,115,120],{"type":42,"tag":76,"props":82,"children":84},{"style":83},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[85],{"type":48,"value":86},"python3",{"type":42,"tag":76,"props":88,"children":90},{"style":89},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[91],{"type":48,"value":92}," skills\u002Fdeliver\u002Fscripts\u002Fdeliver.py",{"type":42,"tag":76,"props":94,"children":95},{"style":89},[96],{"type":48,"value":97}," .agents\u002Fworkspace\u002Fbriefings\u002F",{"type":42,"tag":76,"props":99,"children":101},{"style":100},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[102],{"type":48,"value":103},"\u003C",{"type":42,"tag":76,"props":105,"children":106},{"style":89},[107],{"type":48,"value":108},"fil",{"type":42,"tag":76,"props":110,"children":112},{"style":111},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[113],{"type":48,"value":114},"e",{"type":42,"tag":76,"props":116,"children":117},{"style":100},[118],{"type":48,"value":119},">",{"type":42,"tag":76,"props":121,"children":122},{"style":89},[123],{"type":48,"value":124},".md\n",{"type":42,"tag":51,"props":126,"children":127},{},[128],{"type":48,"value":129},"The script:",{"type":42,"tag":131,"props":132,"children":133},"ol",{},[134,172,183,188],{"type":42,"tag":135,"props":136,"children":137},"li",{},[138,140,146,148,154,156,162,164,170],{"type":48,"value":139},"Looks for a webhook URL in ",{"type":42,"tag":72,"props":141,"children":143},{"className":142},[],[144],{"type":48,"value":145},"\u002Fcredentials\u002Fwebhook.env",{"type":48,"value":147}," (written into the\nenvironment by ",{"type":42,"tag":72,"props":149,"children":151},{"className":150},[],[152],{"type":48,"value":153},"client\u002Ftriggers.py create",{"type":48,"value":155}," when ",{"type":42,"tag":72,"props":157,"children":159},{"className":158},[],[160],{"type":48,"value":161},"CHAT_WEBHOOK_URL",{"type":48,"value":163}," or\n",{"type":42,"tag":72,"props":165,"children":167},{"className":166},[],[168],{"type":48,"value":169},"SLACK_WEBHOOK_URL",{"type":48,"value":171}," is set at creation time).",{"type":42,"tag":135,"props":173,"children":174},{},[175,181],{"type":42,"tag":176,"props":177,"children":178},"strong",{},[179],{"type":48,"value":180},"If none is configured, prints a skip notice and exits 0",{"type":48,"value":182}," — delivery is\noptional and its absence is never an error.",{"type":42,"tag":135,"props":184,"children":185},{},[186],{"type":48,"value":187},"Condenses the briefing markdown for chat (headings bolded, links kept,\ncapped below the ~4,096-character Chat message limit, with a note that the\nfull briefing lives in the workspace).",{"type":42,"tag":135,"props":189,"children":190},{},[191,193,199],{"type":48,"value":192},"POSTs ",{"type":42,"tag":72,"props":194,"children":196},{"className":195},[],[197],{"type":48,"value":198},"{\"text\": ...}",{"type":48,"value":200}," to the webhook — the same wire format works for both\nGoogle Chat and Slack incoming webhooks.",{"type":42,"tag":57,"props":202,"children":204},{"id":203},"instructions-for-the-agent",[205],{"type":48,"value":206},"Instructions for the Agent",{"type":42,"tag":208,"props":209,"children":210},"ul",{},[211,216,221],{"type":42,"tag":135,"props":212,"children":213},{},[214],{"type":48,"value":215},"Run this exactly once per sweep, after the briefing file exists, passing the\nbriefing's path.",{"type":42,"tag":135,"props":217,"children":218},{},[219],{"type":48,"value":220},"A \"skipping delivery\" message is normal operation — do not mention it as a\nproblem in your output.",{"type":42,"tag":135,"props":222,"children":223},{},[224],{"type":48,"value":225},"If the POST fails (non-2xx), report the status and response body verbatim in\nyour final output — the briefing itself is already safely written, so a\ndelivery failure never warrants rewriting it or retrying more than once.",{"type":42,"tag":227,"props":228,"children":229},"style",{},[230],{"type":48,"value":231},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":233,"total":362},[234,255,266,284,299,316,326,333,345],{"slug":235,"name":235,"fn":236,"description":237,"org":238,"tags":239,"stars":252,"repoUrl":253,"updatedAt":254},"gemini-api-dev","build applications with the Gemini API","Use this skill when building applications with Gemini API hosted models, including Gemini and Gemma 4, working with multimodal content (text, images, audio, video), implementing function calling, using structured outputs, or needing current model specifications. Covers SDK usage (google-genai for Python, @google\u002Fgenai for JavaScript\u002FTypeScript, com.google.genai:google-genai for Java, google.golang.org\u002Fgenai for Go), model selection, and API capabilities.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[240,243,246,249],{"name":241,"slug":242,"type":15},"API Development","api-development",{"name":244,"slug":245,"type":15},"Gemini","gemini",{"name":247,"slug":248,"type":15},"LLM","llm",{"name":250,"slug":251,"type":15},"Multimodal","multimodal",3850,"https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-skills","2026-07-24T05:42:40.130864",{"slug":256,"name":256,"fn":257,"description":258,"org":259,"tags":260,"stars":252,"repoUrl":253,"updatedAt":265},"gemini-interactions-api","implement Gemini API calls for text and multimodal generation","Use this skill when writing code that calls the Gemini API for text generation, multi-turn chat, multimodal understanding, image generation, video generation, streaming responses, background research tasks, function calling, structured output, or migrating from the old generateContent API. This skill covers the Interactions API, the recommended way to use Gemini models and agents in Python and TypeScript.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[261,262,263,264],{"name":241,"slug":242,"type":15},{"name":244,"slug":245,"type":15},{"name":247,"slug":248,"type":15},{"name":250,"slug":251,"type":15},"2026-07-24T05:42:41.109676",{"slug":267,"name":267,"fn":268,"description":269,"org":270,"tags":271,"stars":252,"repoUrl":253,"updatedAt":283},"gemini-live-api-dev","build real-time streaming apps with Gemini Live API","Use this skill when building real-time, bidirectional streaming applications with the Gemini Live API. Covers WebSocket-based audio\u002Fvideo\u002Ftext streaming, voice activity detection (VAD), native audio features, function calling, session management, ephemeral tokens for client-side auth, live translation, and all Live API configuration options. SDKs covered - google-genai (Python), @google\u002Fgenai (JavaScript\u002FTypeScript).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[272,275,276,277,280],{"name":273,"slug":274,"type":15},"Audio","audio",{"name":244,"slug":245,"type":15},{"name":247,"slug":248,"type":15},{"name":278,"slug":279,"type":15},"Video","video",{"name":281,"slug":282,"type":15},"WebSockets","websockets","2026-04-06T18:24:48.861661",{"slug":285,"name":285,"fn":286,"description":287,"org":288,"tags":289,"stars":252,"repoUrl":253,"updatedAt":298},"gemini-omni-flash-api","generate and edit video with Gemini","Use this skill for generative video editing, text-to-video, image-referenced video generation, and first-frame-to-video transition animations using the official google-genai SDK. Includes workflows for pre-processing\u002Foptimizing high-resolution or long source videos with ffmpeg, stripping audio for full sound regeneration, and handling turn-by-turn video editing and parallel execution.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[290,293,294,297],{"name":291,"slug":292,"type":15},"Animation","animation",{"name":244,"slug":245,"type":15},{"name":295,"slug":296,"type":15},"Generative Art","generative-art",{"name":278,"slug":279,"type":15},"2026-07-01T07:47:06.8657",{"slug":300,"name":300,"fn":301,"description":302,"org":303,"tags":304,"stars":25,"repoUrl":26,"updatedAt":315},"briefing","format daily news and trend briefings","Formats the standalone daily briefing — curated picks with why-it-matters lines, community buzz, the trend read across runs, and the taste note that keeps the learning visible.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[305,306,309,312],{"name":23,"slug":24,"type":15},{"name":307,"slug":308,"type":15},"Research","research",{"name":310,"slug":311,"type":15},"Summarization","summarization",{"name":313,"slug":314,"type":15},"Writing","writing","2026-07-24T06:08:46.318988",{"slug":317,"name":317,"fn":318,"description":319,"org":320,"tags":321,"stars":25,"repoUrl":26,"updatedAt":325},"curation","curate and rank news items","Selection and ranking rules — how to turn the raw fetched pool into the handful of items the reader actually wants, guided by the taste profile in interests.json.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[322,323,324],{"name":13,"slug":14,"type":15},{"name":307,"slug":308,"type":15},{"name":310,"slug":311,"type":15},"2026-07-24T06:08:49.164617",{"slug":4,"name":4,"fn":5,"description":6,"org":327,"tags":328,"stars":25,"repoUrl":26,"updatedAt":27},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[329,330,331,332],{"name":13,"slug":14,"type":15},{"name":23,"slug":24,"type":15},{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"slug":334,"name":334,"fn":335,"description":336,"org":337,"tags":338,"stars":25,"repoUrl":26,"updatedAt":344},"fetch-news","fetch and deduplicate news articles","Pulls the latest Google News and Hacker News items for every topic and genre in the reader's interests, deduped against every item shown in previous runs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[339,340,341],{"name":13,"slug":14,"type":15},{"name":307,"slug":308,"type":15},{"name":342,"slug":343,"type":15},"Search","search","2026-07-24T06:08:47.09259",{"slug":346,"name":346,"fn":347,"description":348,"org":349,"tags":350,"stars":359,"repoUrl":360,"updatedAt":361},"gemini-api-cli","interact with Gemini API via CLI","Guide for using the Gemini API CLI tool. Use when you need to interact with the Gemini API via the command line, manage agents, or generate media (images, audio).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[351,354,355,358],{"name":352,"slug":353,"type":15},"Agents","agents",{"name":241,"slug":242,"type":15},{"name":356,"slug":357,"type":15},"CLI","cli",{"name":244,"slug":245,"type":15},37,"https:\u002F\u002Fgithub.com\u002Fgoogle-gemini\u002Fgemini-api-cli","2026-06-30T07:10:10.809",9,{"items":364,"total":391},[365,372,378,385],{"slug":300,"name":300,"fn":301,"description":302,"org":366,"tags":367,"stars":25,"repoUrl":26,"updatedAt":315},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[368,369,370,371],{"name":23,"slug":24,"type":15},{"name":307,"slug":308,"type":15},{"name":310,"slug":311,"type":15},{"name":313,"slug":314,"type":15},{"slug":317,"name":317,"fn":318,"description":319,"org":373,"tags":374,"stars":25,"repoUrl":26,"updatedAt":325},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[375,376,377],{"name":13,"slug":14,"type":15},{"name":307,"slug":308,"type":15},{"name":310,"slug":311,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":379,"tags":380,"stars":25,"repoUrl":26,"updatedAt":27},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[381,382,383,384],{"name":13,"slug":14,"type":15},{"name":23,"slug":24,"type":15},{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"slug":334,"name":334,"fn":335,"description":336,"org":386,"tags":387,"stars":25,"repoUrl":26,"updatedAt":344},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[388,389,390],{"name":13,"slug":14,"type":15},{"name":307,"slug":308,"type":15},{"name":342,"slug":343,"type":15},4]