fetch-news

Récupère les dernières actualités de Google News et Hacker News pour chaque sujet et genre correspondant aux intérêts du lecteur, avec déduplication par rapport à tous les éléments affichés lors des exécutions précédentes.

npx skills add https://github.com/google-gemini/gemini-managed-agents-templates --skill fetch-news

Fetch News Skill

Use this skill at the start of every sweep. It queries two public sources — no account, credentials, or API key required for either — and owns the cross-run dedupe state:

  • Google News RSS (news.google.com) — a search feed per topic plus a headline feed per genre (WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SCIENCE, SPORTS, HEALTH)
  • Hacker News via the Algolia search API (hn.algolia.com) — stories and comments per topic, for the community-buzz angle
  • Medium RSS (medium.com) — long-form posts per tag from interests.json's medium_tags, for the practitioner-writing angle

Usage

python3 skills/fetch-news/scripts/fetch_news.py

Topics, genres, and the per-topic cap all come from .agents/workspace/interests.json — change that file, not the script.

The script:

  1. Reads the interests profile.
  2. Fetches every topic (both sources) and every genre (Google News). If a source fails for one topic, the sweep continues and records the error in source_errors.
  3. Drops every item whose id is already in .agents/workspace/seen_items.json, then adds the new ids to that file (bootstrapping it on the first run).
  4. Writes the fresh items to .agents/workspace/new_items.json and prints them to stdout, with a one-line summary on stderr.

Output format (new_items.json)

{
  "topics": ["Gemini API"],
  "genres": ["TECHNOLOGY"],
  "fetched_at": "2026-07-15T09:00:03Z",
  "source_errors": [],
  "new_count": 42,
  "items": [
    {
      "id": "gn:CBMiXyz…",
      "source": "news",
      "outlet": "The Verge",
      "title": "…headline…",
      "context": null,
      "url": "https://news.google.com/rss/articles/…",
      "published": "2026-07-15T08:12:44Z",
      "engagement": null,
      "topic": "Gemini API"
    },
    {
      "id": "hn:44581234",
      "source": "community",
      "outlet": "Hacker News (comment by example_dev)",
      "title": "…comment text…",
      "context": "Title of the story the comment is on",
      "url": "https://news.ycombinator.com/item?id=44581234",
      "published": "2026-07-15T07:03:10Z",
      "engagement": 12,
      "topic": "Gemini API"
    }
  ]
}

source is news (Google News), community (Hacker News), or longform (Medium, with ids prefixed md: and topic: "medium:<tag>"). engagement is only present for community items (points or comment count). Genre items carry topic: "genre:<name>".

Instructions for the Agent

  • Run this exactly once per sweep. Running it twice in one sweep marks items as seen without you having curated them.
  • Treat items as the complete candidate pool for the sweep. new_count: 0 means a quiet interval — still write the briefing.
  • If source_errors is non-empty, name the degraded source in the briefing — the counts only cover the sources that responded.

Plus de skills de google-gemini

agent-tui
google-gemini
Main Agents: Do NOT use this skill directly. If you need to test the TUI, invoke the `tui_tester` subagent. Drive terminal UI (TUI) applications…
gemini-api-cli
google-gemini
Guide pour utiliser l'outil en ligne de commande de l'API Gemini. À utiliser lorsque vous devez interagir avec l'API Gemini via la ligne de commande, gérer des agents ou générer du contenu multimédia (images,…)
behavioral-evals
google-gemini
Conseils pour créer, exécuter, corriger et promouvoir des évaluations comportementales. À utiliser lors de la vérification de la logique de décision d’un agent, du débogage d’échecs, du débogage d’invites…
gemini-live-api-dev
google-gemini
We need to translate the given text from English to French, preserving the name "gemini-live-api-dev" if it appears, but it does not appear in the text. The text is a description of an agent skill. We must not add any extra commentary, labels, or formatting. Just the translation. The text: "Real-time bidirectional streaming with Gemini over WebSockets for audio, video, and text conversations. Supports audio input/output (16 kHz PCM), video frames, text, and automatic transcriptions with voice activity detection for interruption handling Includes native audio features: affective dialog, proactive audio, and thinking mode; function calling for synchronous and asynchronous tool use; and Google Search grounding Offers session management with context compression, resumption, and..." We need to translate this into French. Note: "Gemini" is a product name, keep as is. "WebSockets" is a protocol name, keep as is. "16 kHz PCM" is technical, keep as is. "Google Search" is a product name, keep as is. Also "affective dialog",
gemini-omni-flash-api
google-gemini
Utilisez cette compétence pour le montage vidéo génératif, la conversion texte-vers-vidéo, la génération vidéo avec référence d'image, et les animations de transition de première image vers vidéo en utilisant le…
gemini-api-dev
google-gemini
Développez des applications avec les modèles Gemini de Google, prenant en charge le contenu multimodal, l'appel de fonctions et les sorties structurées en Python, JavaScript, Go et Java. Accédez aux modèles actuels Gemini 3 (Pro, Flash, Pro Image) avec un contexte de 1 million de tokens ; les modèles hérités Gemini 2.x et 1.5 sont obsolètes. Prend en charge la génération de texte, la compréhension d'images/audio/vidéo, l'appel de fonctions, la sortie JSON structurée, l'exécution de code, la mise en cache de contexte et les embeddings. Kits SDK officiels disponibles : google-genai (Python),...
gemini-interactions-api
google-gemini
Interface unifié pour les modèles et agents Gemini avec état côté serveur, streaming et orchestration d'outils. Prend en charge plusieurs modèles actuels (gemini-3-flash-preview, gemini-3-pro-preview, gemini-2.5-flash/pro) et l'agent Deep Research ; remplace automatiquement les ID de modèles obsolètes par des alternatives actuelles. Déchargez l'historique des conversations sur le serveur via previous_interaction_id pour des interactions multi-tours avec état sans gestion manuelle de l'historique. Orchestration d'outils intégrée incluant...
deliver
google-gemini
Publie une version condensée du briefing vers un webhook entrant Google Chat ou Slack, afin que le run quotidien se livre tout seul — passe silencieusement lorsqu'aucun webhook n'est…