<?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: Daniel</title>
    <description>The latest articles on DEV Community by Daniel (@mrsdsxp).</description>
    <link>https://dev.to/mrsdsxp</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%2F4210336%2F225046c5-c7dc-477a-a788-a3b838b2569c.jpg</url>
      <title>DEV Community: Daniel</title>
      <link>https://dev.to/mrsdsxp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mrsdsxp"/>
    <language>en</language>
    <item>
      <title>I built a Windows notch overlay for my OpenCode sessions</title>
      <dc:creator>Daniel</dc:creator>
      <pubDate>Tue, 27 Oct 2026 08:36:15 +0000</pubDate>
      <link>https://dev.to/mrsdsxp/i-built-a-windows-notch-overlay-for-my-opencode-sessions-3enl</link>
      <guid>https://dev.to/mrsdsxp/i-built-a-windows-notch-overlay-for-my-opencode-sessions-3enl</guid>
      <description>&lt;p&gt;Every time I ran more than one OpenCode session I lost the thread. Is the agent still working? Is it stuck? Is it waiting for me to approve a command? The only reliable way to know was alt-tabbing to the terminal, which also broke whatever I was doing in the editor.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;OpenCode Notch&lt;/strong&gt;: a macOS-style notch overlay for Windows that watches OpenCode and only gets loud when it needs you.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fytrsanwpqpblb9hfuvdq.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fytrsanwpqpblb9hfuvdq.png" alt="OpenCode Notch panel" width="496" height="565"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;A collapsed pill at the top of the screen with one status dot per session: working, waiting for approval, finished, error.&lt;/li&gt;
&lt;li&gt;Hover to expand: titles, project folders, elapsed time, the exact tool call in flight, and context usage.&lt;/li&gt;
&lt;li&gt;Permission requests can be approved (once or always) or rejected straight from the notch.&lt;/li&gt;
&lt;li&gt;Agent forms render as real inputs, so you can answer without leaving the app you are in.&lt;/li&gt;
&lt;li&gt;Quick reply and interrupt for the session you are looking at.&lt;/li&gt;
&lt;li&gt;A session center: project tabs, grouping, search, rename, archive/restore, and "open in TUI".&lt;/li&gt;
&lt;li&gt;Ctrl/Cmd+K command palette for keyboard-first navigation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is a standalone Electron app. No plugin, no hooks, no API keys: it talks to the local OpenCode server the same way the TUI does, so it works with whatever you already have running. Settings live in &lt;code&gt;%APPDATA%\OpenCode Notch\notch.json&lt;/code&gt;, and the app installs per-user without an admin prompt.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bug that taught me something
&lt;/h2&gt;

&lt;p&gt;Version 0.3.0 shipped a "responsive" panel. I sized it with viewport units:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;width&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;min&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;440&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;calc&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;100&lt;/span&gt;&lt;span class="nt"&gt;vw&lt;/span&gt; &lt;span class="nt"&gt;-&lt;/span&gt; &lt;span class="err"&gt;18&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;
&lt;span class="nt"&gt;max-height&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;min&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;640&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;calc&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;100&lt;/span&gt;&lt;span class="nt"&gt;vh&lt;/span&gt; &lt;span class="nt"&gt;-&lt;/span&gt; &lt;span class="err"&gt;18&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It looked reasonable. It was not.&lt;/p&gt;

&lt;p&gt;OpenCode Notch measures its panel and resizes the native window to fit. Collapsed, that window is about 226x38 pixels. So &lt;code&gt;100vw&lt;/code&gt; was not the screen: it was the collapsed pill. On hover the panel was clamped to roughly 208x20 and rendered as a thin, clipped strip. The layout was a feedback loop between content size and window size.&lt;/p&gt;

&lt;p&gt;The fix was to stop being clever:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;width&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;440&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;max-height&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;640&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If a window's size is derived from its own content, viewport units inside it are almost always wrong. That is 0.3.1.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Installer and portable zip: &lt;a href="https://github.com/fraches05/opencode-notch/releases/latest" rel="noopener noreferrer"&gt;latest release&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Source: &lt;a href="https://github.com/fraches05/opencode-notch" rel="noopener noreferrer"&gt;fraches05/opencode-notch&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Site: &lt;a href="https://fraches05.github.io/opencode-notch/" rel="noopener noreferrer"&gt;fraches05.github.io/opencode-notch&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MIT licensed, Windows 10 and 11. I would especially like feedback on switching between projects when you have ten or more sessions open.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
