<?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: Jo Jo</title>
    <description>The latest articles on DEV Community by Jo Jo (@joeystdio).</description>
    <link>https://dev.to/joeystdio</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%2F4206187%2Fea032258-ef83-4154-aafa-1f435dfb7b2a.png</url>
      <title>DEV Community: Jo Jo</title>
      <link>https://dev.to/joeystdio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/joeystdio"/>
    <language>en</language>
    <item>
      <title>I built two free, open-source native macOS menu bar utilities in Swift: GhostMouse &amp; PortRadar</title>
      <dc:creator>Jo Jo</dc:creator>
      <pubDate>Sun, 25 Oct 2026 08:06:42 +0000</pubDate>
      <link>https://dev.to/joeystdio/i-built-two-free-open-source-native-macos-menu-bar-utilities-in-swift-ghostmouse-portradar-bi9</link>
      <guid>https://dev.to/joeystdio/i-built-two-free-open-source-native-macos-menu-bar-utilities-in-swift-ghostmouse-portradar-bi9</guid>
      <description>&lt;p&gt;Over the weekend I built and open-sourced two native macOS menu bar utilities in pure Swift &amp;amp; SwiftUI (&lt;code&gt;macOS 14+&lt;/code&gt; Universal binaries for Apple Silicon &amp;amp; Intel) to solve two everyday problems on my Mac — 100% free and MIT licensed.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. 👻 GhostMouse — Invisible Stealth Mouse Mover &amp;amp; Awake Utility
&lt;/h2&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%2F35pcos14ftoy2y1l4c8q.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%2F35pcos14ftoy2y1l4c8q.png" alt="GhostMouse Screenshot" width="800" height="565"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I loved how the classic Windows Mouse Mover had an invisible &lt;strong&gt;"Stealth"&lt;/strong&gt; mode where your cursor never visibly moves on screen, and how it automatically stops the instant you touch your physical mouse or keyboard — so I built that natively for macOS.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;True Invisible Stealth Mode:&lt;/strong&gt; Dispatches zero-displacement hardware HID pulses (&lt;code&gt;+1/-1&lt;/code&gt; delta at the exact same pixel) combined with &lt;code&gt;IOPMAssertionDeclareUserActivity&lt;/code&gt;. Your cursor never visibly moves a single pixel, while macOS, Microsoft Teams, and Slack register active hardware input.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Natural Mode:&lt;/strong&gt; Prefer visible movement? Smoothly glides the cursor out and back to its exact starting coordinate (&lt;code&gt;Subtle 5px&lt;/code&gt;, &lt;code&gt;Medium 40px&lt;/code&gt;, or &lt;code&gt;Full 150px&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instant Activity Detection (&lt;code&gt;Stop&lt;/code&gt; vs &lt;code&gt;Smart Pause&lt;/code&gt;):&lt;/strong&gt; Tags its own synthetic &lt;code&gt;CGEvent&lt;/code&gt;s (&lt;code&gt;0x4A494747&lt;/code&gt;) so the moment you move your physical mouse or press any key, it either turns off immediately (&lt;code&gt;Stop&lt;/code&gt;) or pauses and auto-resumes after an idle threshold (&lt;code&gt;Smart Pause&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built-in Schedule &amp;amp; Countdown Timer:&lt;/strong&gt; Restrict activity to work hours/days or set an auto-deactivate timer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Global Hotkey:&lt;/strong&gt; Toggle anywhere with &lt;strong&gt;&lt;code&gt;⌃⌘J&lt;/code&gt;&lt;/strong&gt; or right-click the menu bar icon.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Install GhostMouse:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew tap joeystdio/tap
brew &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--cask&lt;/span&gt; ghostmouse
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repo:&lt;/strong&gt; &lt;a href="https://github.com/joeystdio/GhostMouse" rel="noopener noreferrer"&gt;github.com/joeystdio/GhostMouse&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Website &amp;amp; Direct &lt;code&gt;.dmg&lt;/code&gt; Download:&lt;/strong&gt; &lt;a href="https://joeystdio.github.io/GhostMouse/" rel="noopener noreferrer"&gt;joeystdio.github.io/GhostMouse&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2. 📡 PortRadar — Menu Bar Localhost &amp;amp; Dev Port Manager
&lt;/h2&gt;

&lt;p&gt;Every developer runs into &lt;code&gt;EADDRINUSE: address already in use :::3000&lt;/code&gt; and has to drop into a terminal to run &lt;code&gt;lsof -i :3000&lt;/code&gt; and &lt;code&gt;kill -9&lt;/code&gt;. &lt;strong&gt;PortRadar&lt;/strong&gt; puts a live TCP port radar right in your macOS menu bar.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1-Click Kill (&lt;code&gt;SIGTERM&lt;/code&gt; / &lt;code&gt;SIGKILL -9&lt;/code&gt;):&lt;/strong&gt; Free any stuck localhost port in a single click.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart Stack &amp;amp; Framework Detection:&lt;/strong&gt; Automatically inspects process arguments to badge &lt;strong&gt;Next.js&lt;/strong&gt;, &lt;strong&gt;Vite&lt;/strong&gt;, &lt;strong&gt;Angular&lt;/strong&gt;, &lt;strong&gt;Node.js&lt;/strong&gt;, &lt;strong&gt;Bun&lt;/strong&gt;, &lt;strong&gt;.NET / Kestrel&lt;/strong&gt;, &lt;strong&gt;FastAPI / Python&lt;/strong&gt;, &lt;strong&gt;Go&lt;/strong&gt;, &lt;strong&gt;Rust&lt;/strong&gt;, &lt;strong&gt;Docker / OrbStack&lt;/strong&gt;, &lt;strong&gt;PostgreSQL&lt;/strong&gt;, &lt;strong&gt;Redis&lt;/strong&gt;, &lt;strong&gt;MySQL&lt;/strong&gt;, &lt;strong&gt;MongoDB&lt;/strong&gt;, and &lt;strong&gt;Ollama&lt;/strong&gt; — along with live &lt;strong&gt;RAM (MB)&lt;/strong&gt;, &lt;strong&gt;CPU %&lt;/strong&gt;, and &lt;strong&gt;PID&lt;/strong&gt; badges.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pinned Watchlist Bar:&lt;/strong&gt; Pin your core ports (&lt;code&gt;:3000&lt;/code&gt;, &lt;code&gt;:5173&lt;/code&gt;, &lt;code&gt;:8080&lt;/code&gt;, &lt;code&gt;:5000&lt;/code&gt;, &lt;code&gt;:5432&lt;/code&gt;, &lt;code&gt;:6379&lt;/code&gt;) to the top watchlist bar with live green/grey status indicators and 1-click Open in Browser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Global Hotkey:&lt;/strong&gt; Summon anywhere with &lt;strong&gt;&lt;code&gt;⌃⌘P&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Install PortRadar:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew tap joeystdio/tap
brew &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--cask&lt;/span&gt; portradar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repo:&lt;/strong&gt; &lt;a href="https://github.com/joeystdio/PortRadar" rel="noopener noreferrer"&gt;github.com/joeystdio/PortRadar&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Website &amp;amp; Direct &lt;code&gt;.dmg&lt;/code&gt; Download:&lt;/strong&gt; &lt;a href="https://joeystdio.github.io/PortRadar/" rel="noopener noreferrer"&gt;joeystdio.github.io/PortRadar&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Both projects are 100% open-source under the MIT license and built with zero external dependencies using Swift Package Manager. Feedback, stars, and PRs are very welcome!&lt;/p&gt;

</description>
      <category>macos</category>
      <category>swift</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
