<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Glance on probonas.net</title><link>https://yannis.probonas.net/tags/glance/</link><description>Recent content in Glance on probonas.net</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 13 Jun 2026 15:48:00 +0300</lastBuildDate><atom:link href="https://yannis.probonas.net/tags/glance/index.xml" rel="self" type="application/rss+xml"/><item><title>AI News Briefing: a Glance extension that curates your RSS feeds</title><link>https://yannis.probonas.net/blog/ai-news-briefing-glance/</link><pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate><guid>https://yannis.probonas.net/blog/ai-news-briefing-glance/</guid><description>&lt;script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous">&lt;/script>
&lt;script src=https://yannis.probonas.net/js/load-photoswipe.js>&lt;/script>


&lt;link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/photoswipe.min.css" integrity="sha256-sCl5PUOGMLfFYctzDW3MtRib0ctyUvI9Qsmq2wXOeBY=" crossorigin="anonymous" />
&lt;link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/default-skin/default-skin.min.css" integrity="sha256-BFeI1V+Vh1Rk37wswuOYn5lsTcaU96hGaI7OUVCLjPc=" crossorigin="anonymous" />
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/photoswipe.min.js" integrity="sha256-UplRCs9v4KXVJvVY+p+RSo5Q4ilAUXh7kpjyIP5odyc=" crossorigin="anonymous">&lt;/script>
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.1/photoswipe-ui-default.min.js" integrity="sha256-PWHOlUzc96pMc8ThwRIXPn8yH4NOLu42RQ0b9SpnpFk=" crossorigin="anonymous">&lt;/script>


&lt;div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">

&lt;div class="pswp__bg">&lt;/div>

&lt;div class="pswp__scroll-wrap">
 
 &lt;div class="pswp__container">
 &lt;div class="pswp__item">&lt;/div>
 &lt;div class="pswp__item">&lt;/div>
 &lt;div class="pswp__item">&lt;/div>
 &lt;/div>
 
 &lt;div class="pswp__ui pswp__ui--hidden">
 &lt;div class="pswp__top-bar">
 
 &lt;div class="pswp__counter">&lt;/div>
 &lt;button class="pswp__button pswp__button--close" title="Close (Esc)">&lt;/button>
 &lt;button class="pswp__button pswp__button--share" title="Share">&lt;/button>
 &lt;button class="pswp__button pswp__button--fs" title="Toggle fullscreen">&lt;/button>
 &lt;button class="pswp__button pswp__button--zoom" title="Zoom in/out">&lt;/button>
 
 
 &lt;div class="pswp__preloader">
 &lt;div class="pswp__preloader__icn">
 &lt;div class="pswp__preloader__cut">
 &lt;div class="pswp__preloader__donut">&lt;/div>
 &lt;/div>
 &lt;/div>
 &lt;/div>
 &lt;/div>
 &lt;div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
 &lt;div class="pswp__share-tooltip">&lt;/div>
 &lt;/div>
 &lt;button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
 &lt;/button>
 &lt;button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
 &lt;/button>
 &lt;div class="pswp__caption">
 &lt;div class="pswp__caption__center">&lt;/div>
 &lt;/div>
 &lt;/div>
 &lt;/div>
&lt;/div>

&lt;p>I built a small &lt;a href="https://github.com/glanceapp/glance">Glance&lt;/a> extension that uses AI to curate news from your RSS feeds. It&amp;rsquo;s called &lt;a href="https://github.com/probonas/glance-ai-briefing">AI News Briefing&lt;/a>, and it solves a simple problem: my RSS feeds produce too many headlines, and I only want to see the ones that matter.&lt;/p>

&lt;link rel="stylesheet" href=https://yannis.probonas.net/css/hugo-easy-gallery.css />
&lt;div class="box" >
 &lt;figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
 &lt;div class="img">
 &lt;img itemprop="thumbnail" src="https://yannis.probonas.net/blog/ai-news-briefing-glance/screenshot-home-full.png" />
 &lt;/div>
 &lt;a href="https://yannis.probonas.net/blog/ai-news-briefing-glance/screenshot-home-full.png" itemprop="contentUrl">&lt;/a>
 &lt;figcaption>&lt;h4>The briefing widget on my Glance dashboard&lt;/h4>
 &lt;/figcaption>
 &lt;/figure>
&lt;/div>

&lt;h2 id="how-it-works">How it works&lt;/h2>
&lt;p>The extension runs as a tiny HTTP server that Glance calls on its refresh cycle. On each request, it reads the RSS feeds from your Glance configuration, fetches the latest headlines, and sends them to an LLM (DeepSeek is for now the only provider supported) with a prompt asking it to pick the most significant stories. The LLM returns a ranked list with short summaries, and the extension renders them as styled HTML. Results are cached between refresh cycles so repeated dashboard loads don&amp;rsquo;t trigger unnecessary API calls — the LLM is only queried when the cache expires, keeping things fast and cost-effective.&lt;/p></description></item></channel></rss>