<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: ZadokJoshua</title>
    <description>The latest articles on Forem by ZadokJoshua (@tsadhoq).</description>
    <link>https://forem.com/tsadhoq</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F750865%2Fdd8f0993-9734-4be3-9275-307f4dc76c45.jpeg</url>
      <title>Forem: ZadokJoshua</title>
      <link>https://forem.com/tsadhoq</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/tsadhoq"/>
    <language>en</language>
    <item>
      <title>From Terminal to Desktop: How a Desktop App Uses Copilot CLI as Its Entire AI Layer</title>
      <dc:creator>ZadokJoshua</dc:creator>
      <pubDate>Sun, 15 Feb 2026 23:14:01 +0000</pubDate>
      <link>https://forem.com/tsadhoq/from-terminal-to-desktop-how-a-desktop-app-uses-copilot-cli-as-its-entire-ai-layer-bl9</link>
      <guid>https://forem.com/tsadhoq/from-terminal-to-desktop-how-a-desktop-app-uses-copilot-cli-as-its-entire-ai-layer-bl9</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I read Hacker News a lot. Tabs pile up, threads go deep, and it can be a bit of work to scroll through the stream of posts to find the ones that really match my interests. So I built something to fix this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HN Reader&lt;/strong&gt; is a WinUI 3 desktop app that uses &lt;strong&gt;GitHub Copilot CLI as its AI backbone&lt;/strong&gt; to deliver two features I genuinely wanted:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;News Digest&lt;/strong&gt; — The app fetches 50 popular HN stories from the last 24 hours and saves this data in the knowledge vault. A Copilot CLI agent then reads this data, calls tools to enrich stories with additional context, and generates a personalized digest grouped by your configured interests (e.g., "AI/ML", "Startups", "Systems Programming"). Each group includes ranked stories with concise summaries so you can scan a full day of HN in just a few minutes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Story Insights&lt;/strong&gt; — Select any story and get a structured breakdown: TL;DR, core argument, discussion map, points of agreement/disagreement, and practical takeaways. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By building on the GitHub Copilot SDK, the app does not require any LLM API keys. Anyone with Copilot CLI installed gets the AI features out of the box: no BYOK, no env vars.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FZadokJoshua%2Fhn-reader%2Frefs%2Fheads%2Fmain%2Fassets%2Fnews-digest-overview.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FZadokJoshua%2Fhn-reader%2Frefs%2Fheads%2Fmain%2Fassets%2Fnews-digest-overview.png" alt="News Digest Overview"&gt;&lt;/a&gt;&lt;br&gt;The News Digest view — stories grouped by user interests with AI-generated summaries
  &lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FZadokJoshua%2Fhn-reader%2Frefs%2Fheads%2Fmain%2Fassets%2Fnews-digest-interest-group.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FZadokJoshua%2Fhn-reader%2Frefs%2Fheads%2Fmain%2Fassets%2Fnews-digest-interest-group.png" alt="News Digest Interest Group"&gt;&lt;/a&gt;&lt;br&gt;An expanded interest group showing ranked stories and their summaries
  &lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FZadokJoshua%2Fhn-reader%2Frefs%2Fheads%2Fmain%2Fassets%2Fstory-insight.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FZadokJoshua%2Fhn-reader%2Frefs%2Fheads%2Fmain%2Fassets%2Fstory-insight.png" alt="Story Insight"&gt;&lt;/a&gt;&lt;br&gt;Story Insight panel
  &lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FZadokJoshua%2Fhn-reader%2Frefs%2Fheads%2Fmain%2Fassets%2Fsettings-knowledge-vault.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FZadokJoshua%2Fhn-reader%2Frefs%2Fheads%2Fmain%2Fassets%2Fsettings-knowledge-vault.png" alt="Settings - Knowledge Vault"&gt;&lt;/a&gt;&lt;/p&gt;
Knowledge Vault configuration — local folder where the app stores data for the agent to work with






&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FZadokJoshua%2Fhn-reader%2Frefs%2Fheads%2Fmain%2Fassets%2Fsettings-news-digest-interests.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FZadokJoshua%2Fhn-reader%2Frefs%2Fheads%2Fmain%2Fassets%2Fsettings-news-digest-interests.png" alt="Settings - News Digest Interests"&gt;&lt;/a&gt;&lt;br&gt;User interests configuration
  &lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbp8e9vmxcce8kaz8wt5a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbp8e9vmxcce8kaz8wt5a.png" alt="Architecture"&gt;&lt;/a&gt;&lt;br&gt;App Architecture
  &lt;/p&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/RlcQ42zVqHE"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;GitHub Repo: &lt;a href="https://github.com/ZadokJoshua/hn-reader" rel="noopener noreferrer"&gt;HN Reader&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience with GitHub Copilot CLI
&lt;/h2&gt;

&lt;p&gt;This project is built around one central idea: &lt;strong&gt;a terminal-native AI assistant can transform a desktop experience&lt;/strong&gt;. Copilot CLI isn't just a developer tool; it can also serve as the AI layer for an app. Here, Copilot SDK acts as the perfect interface layer, providing a clean bridge between the app and Copilot CLI capabilities.&lt;/p&gt;

&lt;p&gt;Using GitHub Copilot CLI made me faster, but more importantly, it made the app &lt;strong&gt;better&lt;/strong&gt;: more helpful, more personalized, and more valuable for real users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79nozkqi67a58ltwjmmw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79nozkqi67a58ltwjmmw.png" alt="Copilot and Win UI"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
  </channel>
</rss>
