<?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>DEV Community: YairDaniel</title>
    <description>The latest articles on DEV Community by YairDaniel (@yairdaniel11).</description>
    <link>https://dev.to/yairdaniel11</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4180520%2F9b7b87fb-4b4e-483e-8ab0-fffb708dca16.jpg</url>
      <title>DEV Community: YairDaniel</title>
      <link>https://dev.to/yairdaniel11</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yairdaniel11"/>
    <language>en</language>
    <item>
      <title>Claude Notify: Desktop Notifications for Claude Code on Windows</title>
      <dc:creator>YairDaniel</dc:creator>
      <pubDate>Mon, 12 Oct 2026 22:31:16 +0000</pubDate>
      <link>https://dev.to/yairdaniel11/claude-notify-desktop-notifications-for-claude-code-on-windows-50g6</link>
      <guid>https://dev.to/yairdaniel11/claude-notify-desktop-notifications-for-claude-code-on-windows-50g6</guid>
      <description>&lt;p&gt;If you use Claude Code inside VS Code, you know the workflow: send it a long task, switch over to the browser or another window, and then... forget to check back. Or the opposite - you keep alt-tabbing every couple of minutes just to see if it's done yet.&lt;/p&gt;

&lt;p&gt;I built a small Windows tray app to fix that: &lt;strong&gt;Claude Notify&lt;/strong&gt;. When Claude Code finishes responding, a short desktop notification pops up with a summary of what it said. Click it, and you're taken straight back to the right VS Code window and the right conversation - even if you have several windows open at once.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/YairDaniel11/claude-notify" rel="noopener noreferrer"&gt;https://github.com/YairDaniel11/claude-notify&lt;/a&gt;&lt;br&gt;
Direct download: &lt;a href="https://github.com/YairDaniel11/claude-notify/releases/latest/download/ClaudeNotify.exe" rel="noopener noreferrer"&gt;https://github.com/YairDaniel11/claude-notify/releases/latest/download/ClaudeNotify.exe&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Summarized notifications&lt;/strong&gt; - shows a short summary of Claude's response (up to ~30 words), or just the beginning of the message if you'd rather skip summarization.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Click-to-focus&lt;/strong&gt; - clicking a notification brings the correct VS Code window to the foreground and reopens the exact conversation, even across multiple open windows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stays out of your way&lt;/strong&gt; - if the editor window is already visible on screen (fully or partially), no notification shows up, since you're already looking at the answer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Matches your editor's theme&lt;/strong&gt; - the popup reads VS Code/Cursor's own &lt;code&gt;workbench.colorTheme&lt;/code&gt; setting and switches between light and dark to match, instead of just following the Windows system theme.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simple settings UI&lt;/strong&gt; - display time, popup corner, word count, which editor processes to watch, launch on startup, one-click install/remove of the Claude Code hook.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How it works (the fun technical bits)
&lt;/h2&gt;

&lt;p&gt;A few things turned out trickier than expected:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Finding the right window&lt;/strong&gt;: it enumerates top-level windows belonging to your editor's process(es) and matches the project folder name against the window title to figure out which window triggered the notification.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Actually focusing it&lt;/strong&gt;: Windows blocks background processes from calling &lt;code&gt;SetForegroundWindow&lt;/code&gt; on arbitrary windows (the "foreground lock"). Since this app lives in the tray with no window of its own in the foreground, a plain call to it mostly fails. The workaround is the classic &lt;code&gt;AttachThreadInput&lt;/code&gt; trick - temporarily attaching the input queue of the calling thread to the current foreground window's thread, which grants permission to switch focus reliably, even with 3+ windows open.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deep-linking into the right session&lt;/strong&gt;: once the window is genuinely focused, it opens a &lt;code&gt;vscode://&lt;/code&gt; / &lt;code&gt;cursor://&lt;/code&gt; URI with the session id, which VS Code's Claude Code extension resolves to the right conversation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Theme detection&lt;/strong&gt;: it reads &lt;code&gt;workbench.colorTheme&lt;/code&gt; straight out of VS Code's own &lt;code&gt;settings.json&lt;/code&gt; (handling JSONC comments and trailing commas, since VS Code's config isn't strict JSON), checking the workspace-level settings file first and falling back to the user-level one, then falls back to the Windows system theme if nothing can be read.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;No installer, no admin rights needed:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Run &lt;code&gt;ClaudeNotify.exe&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;In the settings window, click &lt;strong&gt;"Install connection to Claude Code"&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;If notifications don't show up, run &lt;code&gt;/hooks&lt;/code&gt; once in Claude Code, or just restart it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's it - the button copies itself to &lt;code&gt;%LOCALAPPDATA%\ClaudeNotify&lt;/code&gt; and adds a &lt;code&gt;Stop&lt;/code&gt; hook to &lt;code&gt;%USERPROFILE%\.claude\settings.json&lt;/code&gt; (a &lt;code&gt;.bak&lt;/code&gt; backup is created automatically, and your other settings are left untouched).&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Windows only&lt;/strong&gt; - it's built with WinForms and .NET Framework (already on every Windows 10/11 machine), so no installer is needed, but also no macOS/Linux support is planned, since the whole focus/theme-detection mechanism is Windows-specific.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;.exe&lt;/code&gt; isn't code-signed, so Windows SmartScreen will warn on first run ("More info" → "Run anyway"). Source is a single ~30KB C# file, fully readable, and you can build it yourself with the included &lt;code&gt;build.cmd&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  License
&lt;/h2&gt;

&lt;p&gt;MIT. Source, issues, and the latest release are all at &lt;a href="https://github.com/YairDaniel11/claude-notify" rel="noopener noreferrer"&gt;https://github.com/YairDaniel11/claude-notify&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Built almost entirely with Claude Code itself - happy to hear feedback, bug reports, or feature ideas.&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>productivity</category>
      <category>opensource</category>
      <category>csharp</category>
    </item>
  </channel>
</rss>
