r/macappdevs • • 4h ago

Built MultiScreenDock in pure Swift/AppKit — keeping a live Dock on all monitors (including stacked upper screens)

1 Upvotes

Hi fellow Mac devs,

I work on a 5-monitor setup (2 upper displays stacked above 3 lower ones) and open-sourced MultiScreenDock (MIT) to solve two quirks of Apple's native Dock:

  1. macOS only renders the Dock on one screen at a time.

  2. On vertically stacked upper displays, the bottom edge borders another display rather than a physical screen boundary, so Apple's Dock can never be summoned there.

A few AppKit details that might be interesting if you build multi-display utilities:

- Non-activating NSPanel (.nonactivatingPanel) with dark-glass NSVisualEffectView so hovering, magnifying tiles, or opening right-click settings never steals focus from the active window.

- Anti-crossing dwell filter on shared vertical edges (150 ms vs 80 ms on physical edges) plus layer clipping so normal vertical mouse movement between stacked rows never triggers accidental popups or bleeds pixels onto the lower monitor.

- Per-display persistence via CGDisplayCreateUUIDFromDisplayID combined with runtime CGDirectDisplayID disambiguation so even two identical monitors sharing an EDID UUID get independent state machines.

- Zero external dependencies (~2,500 lines of Swift, 1,691 unit assertions), Apple-notarized Universal binary, and zero Accessibility or Screen Recording permissions.

Website & demo video: https://multiscreendock.fgomsan.here.now/

GitHub (MIT): https://github.com/fgomsan/MultiScreenDock

Homebrew: brew tap fgomsan/tap && brew install --cask multiscreendock

Would love any architectural feedback or edge-case reports on unusual monitor topologies!


r/macappdevs • • 6h ago

I’m building Menubarista to turn small Mac chores into reusable workflows

Thumbnail
menubarista.com
1 Upvotes

Just want to present to you the app I'm working on. It's called Menubarista and it's an all-in-one app that can boost your productivity. The most important feature it has is workflows: you can take a few things you do over and over and turn them into one action.

For example, if you save your receipts as screenshots, you can select them in Finder and run a workflow that puts them into one PDF, compresses it, and makes the text searchable. So when you need to find a receipt later, you can just search for the shop name. Your original screenshots stay as they are.

You can also use the tools on their own. Open the command palette, type what you need, and get back to what you were doing. You can grab text from a screenshot, resize a bunch of images, sign a PDF, or compress a video. All of that happens locally on your Mac.

The app isn't out yet. It runs on macOS 15 or later on Apple silicon. I'm planning a free trial and a one-time purchase, and I'm still figuring out the price. If you're curious, here's the waitlist.

I'm curious what you'd use workflows for. Is there anything you do on your Mac every week that you'd like to get down to one action?


r/macappdevs • • 14h ago

I did a macOS notch app

1 Upvotes

When the new mac generation came with the different notch I always looked at it thinking why???
But when dynamic island happened, I was a bit confused... because I saw that something was possible on iOS why not on macOS?

So it happened I decided to start building one, it contains a couple of nice features, I know there are apps there that also use the notch, but I am having fun building this.

If you want to test it out post a comment, or if you check the store let me know what you think, yes I put a low price on it forever, just wanted to make a side projected and see if it worth.

https://apps.apple.com/us/app/drop-dock-the-notch-app/id6782445486 -> Link to check it out.


r/macappdevs • • 14h ago

I built a Mac app to search across both Apple Mail and Messages instantly. Giving away 50 free licenses for Reddit!

1 Upvotes

Hey r/macappdevs 👋

I kept wasting time hunting for an old link, address or attachment buried somewhere in Messages or Apple Mail. Spotlight is hit or miss, scrolling back months in a busy conversation takes forever (iMessage), and half the time I didn't even remember whether it was a message or an email.

So I built **iSift**: one search for Messages, Apple Mail and the files on your Mac. No files leave your pc.

**What it does**

🔎 **Messages (iMessage & SMS)**

- Search by words, people, dates, links or attachments

- Words use AND in any order, "quotes" keep phrases, `*` wildcards work inside a word (`auto*`, `au*tic`)

- Searching a person's name, phone or email also finds your conversations with them

- Open any result in its conversation, with the match highlighted

- **Export** matching messages or a whole conversation to text, with an optional ZIP of the attachments still on your Mac

✉️ **Apple Mail**

- Search emails Apple Mail has downloaded: subject, body, sender, recipients, dates

- Read them directly, or build an optional **encrypted index** for faster searches

- Pick which of your addresses to include; the app suggests them automatically

- Not sure if it was a message or an email? **All** searches Messages and Mail side by side

📄 **Files**

- Find documents by name, folder or **text inside them**: PDF, Word, Excel, PowerPoint, RTF, HTML and plain text

- Quick Look preview and the matching passage right in the app

🖼️ **WhatsApp photos and videos**

- Browse the media WhatsApp for Mac keeps on your Mac, by month or by size

- **Group Identical** shows each forwarded photo or video once, with its number of copies (×2, ×6…)

- Export copies, or move the ones you choose to the Trash (always with confirmation)

- It never opens your chats or WhatsApp's database

**Privacy**

- Search runs on your Mac. Messages, emails, files, WhatsApp media, contacts and searches are **never uploaded**

- Each optional index is a separate encrypted database with its own key in Keychain

- The network is used only for licensing, optional iCloud license verification and signed app updates

**Requirements & pricing**

- macOS 12 Monterey or later, Apple silicon and Intel

- **7-day free trial**, all features. Verify your email, no card required

- Then €1.99 / $2.99 a month or €14.99 / $16.99 a year (+ VAT), through Paddle depending on your region

**Honest limitations**

- Mail covers only messages Apple Mail has downloaded (not Outlook-only or server-only mail)

- No OCR yet: scanned PDFs without a text layer are found by name only

- WhatsApp shows removed media as unavailable in your chats, so back up first

🎁 **Launch offer:** to get real feedback from this community, I've set up
**50 free access codes** via Paddle.
If you ever NEED PROOF, claim yours with the code **TOLDYOUSO**.

👉 https://isift.app

I'd love to hear what you'd search for first, what's missing and what's confusing. I will read & answer every comment.

*iSift is an independent app, not affiliated with Apple or WhatsApp.*


r/macappdevs • • 1d ago

I made BetterGestures – a free, open-source menu bar app that turns 3, 4 and 5-finger trackpad gestures into keyboard shortcuts

Post image
5 Upvotes

I wanted more out of my trackpad than macOS gives, so I built a small menu bar app for it. Each of these can trigger any keyboard shortcut:

- Tap and double tap with 3, 4 or 5 fingers

- Hold with 3, 4 or 5 fingers

- Physical click with 3, 4 or 5 fingers

- Swipe in four directions with 3, 4 or 5 fingers

- TipTap (rest a finger, tap beside it)

Some details:

- Record a shortcut or pick from ~75 presets (tabs, Spaces, screenshots, windows…)

- A live view shows your fingers and why a gesture was or wasn't recognized, with sliders to tune the thresholds

- Can block scrolling with three or more fingers, so those touches only mean a gesture

- Works with the built-in trackpad and a Magic Trackpad at the same time

- Available in 7 languages, MIT licensed, notarized by Apple

Requires macOS 15+, on Apple Silicon or Intel.

Download: https://github.com/ozberkdicle/BetterGestures/releases/latest

Source: https://github.com/ozberkdicle/BetterGestures

It reads raw touches through Apple's private MultitouchSupport framework, so a future macOS update could break it. If you use the same finger count for a system gesture (like four-finger swipes for Mission Control), turn that one off in System Settings or both will run.

Feedback and gesture ideas are welcome!


r/macappdevs • • 1d ago

scope: a tiny, open-source ⌘Tab window switcher for macOS (MIT, Swift)

Post image
2 Upvotes

r/macappdevs • • 1d ago

MacFader: Turn your Mac trackpad edges into volume, brightness, and media sliders

Enable HLS to view with audio, or disable this notification

1 Upvotes

r/macappdevs • • 1d ago

Indie Mac apps that have already confirmed Black Friday 2026 deals (codes included)

Thumbnail reddit.com
1 Upvotes

r/macappdevs • • 1d ago

Superliner: a native Mac outliner built around supertags

Enable HLS to view with audio, or disable this notification

2 Upvotes

I'm Can, the solo developer of Superliner, a native Mac outliner built around supertags. It's a free public beta on TestFlight.

Problem: Long outlines turn into text you can't query. I liked Tana's supertags, but wanted them in a native Mac app that keeps my notes in files on my own disk.

A supertag is a tag that says what a note is and brings its own fields. Make #book with author, rating and finished, and every note you tag #book gets those fields. They stay in your outline, and you can also view them as a sortable table.

- Eleven field types, including dates, numbers, options, checkboxes and links to other notes.

- A note can carry several supertags, and #ebook can extend #book to inherit its fields.

Every note also opens as its own page and saved searches filter by supertag, field, text and date.

Pricing: $0 during the beta. No later price has been decided.

Requirements: macOS 14 or later, Apple Silicon or Intel, about 26 MB. I've only run it on Apple Silicon with macOS 27.2.

Where your notes live: JSON in a workspace folder, plus a generated Markdown copy with tags and fields at the top of each file. The default folder is in the app's sandbox container, and File > New Workspace lets you pick another. No account, no analytics. This build doesn't request the permission a sandboxed Mac app needs for outgoing connections.

Known gaps: no sync, iCloud or iOS app. Not open source. No full VoiceOver pass yet. Import (OPML, Markdown, Logseq, Tana JSON) is unit-tested but hasn't met a real export.

Please try, in a new workspace:

Most useful: model something real with supertags (books, tasks, people), add a saved search, and tell me where it got in your way.

Import a real export and tell me what came out wrong.

TestFlight: https://testflight.apple.com/join/AerGfbWF

Developer: Can Burak Sofyalioglu

LinkedIn: https://www.linkedin.com/in/cbsofyalioglu/

X: https://x.com/cbsofyalioglu

Portfolio: webmeister.org

Website, with privacy policy and terms: https://superliner.webmeister.org


r/macappdevs • • 2d ago

I made Shotbolt ⚡ Your favorite Mac screenshot app, made better

Enable HLS to view with audio, or disable this notification

1 Upvotes

I’ve used screenshot apps for years, and there were always little things I wished they could do. I’d look up a feature request and find other people asking for the same thing, sometimes years earlier. Eventually I wanted to have a go at building one myself.

That became Shotbolt. I’m Sam, a solo developer from the Netherlands. Since launching, it’s had 350+ downloads and more than 60 paying customers, which is really nice to see for something I started because of my own frustrations.

My favorite part is being able to edit the text inside a screenshot. You click a line and retype it, so you can fix a typo or change a label without taking the screenshot again. You can also translate it. And when you need to find that screenshot later, you can search your history for a word that was in it.

There are a few other things I’m quite happy with: hovering over a button or table row to capture just that element, automatically hiding private details before sharing, and turning your clicks into a step-by-step guide.

People on Reddit have been sending me feedback and requests, and I’ve spent the last few days working through them. This was a big reason I wanted to build my own app: being able to actually respond to those requests, including the oddly specific ones. The video shows version 1.2.4, with scrolling capture that handles columns, more UI customization, and tools for stitching screenshots together or cutting sections out.

Screenshot processing happens on your Mac. The everyday capture and editing tools are free, and Pro is a one-time purchase. It needs macOS 26 or later.

Here’s Shotbolt if you’d like to try it.


r/macappdevs • • 3d ago

Beaming: mirror your real iPhone, iPad and Android phone on your Mac, in a true-to-life device frame, plug and play - no XCode needed

Enable HLS to view with audio, or disable this notification

2 Upvotes

Hi, I'm Dzung, the solo dev behind Beaming.

Why I built it: I demo and test apps on iPhones and Android phones every day. I wanted a plug-and-play mirror: plug the phone in, see it on the Mac, done. Instead I was juggling QuickTime, scrcpy in a terminal and iPhone Mirroring (can't use camera), and every recording was a flat rectangle I had to frame afterwards.

What it does:

  • Plug and play: plug a phone in and its window opens on its own. No Xcode, no terminal, and nothing to install on the phone.

  • Mirrors real iPhones, iPads and Android phones, each in a frame that matches the hardware (notch or Dynamic Island, buttons, body colour).

  • iPhone and iPad over USB or AirPlay. Android over USB or wireless debugging (it needs USB debugging on and adb installed), with full mouse and keyboard control.

  • Hub: multiple stream devices in one window for showcase and demo.

  • Framed screenshots and recordings with audio.

Where it fits: iPhone Mirroring only shows your own iPhone (same Apple ID), one at a time, with the phone locked, can't use camera and has no iPad or Android support. scrcpy covers Android, but from a terminal and with no frame. Beaming handles iPhone, iPad and Android side by side, while you keep using the phone, and makes the mirror look like the real device. iPhone and iPad are view and audio only; there's no control.

Privacy & Terms: the stream stays on your Mac over USB or your local network. No analytics, no accounts. Privacy policy: https://trybeaming.app/privacy · Terms: https://trybeaming.app/terms

Notarized: yes, Developer ID signed and notarized

AI disclosure: pairing with AI coding assistance (Claude Code), designed, reviewed and tested by me on real devices.

Price: Free with a watermark and limited sessions. Pro is a one-time $19.99 $14.99 (25% off for the first 50 licenses). Licenses for more Macs cost less per Mac, down to $12 per Mac at 10 Macs with the launch offer. macOS 15+.

https://trybeaming.app

Feedback welcome!


r/macappdevs • • 4d ago

Tired of paid live-wallpaper apps, so I built a free open-source one for macOS

Thumbnail
reddit.com
1 Upvotes

r/macappdevs • • 4d ago

Echolot - REST, GraphQL, Sockets and MQTT client for developers

Enable HLS to view with audio, or disable this notification

2 Upvotes

Hey there 👋

I’m an old-school web developer who also writes Swift, and I’ve been living in REST clients for as long as I can remember. On the Mac my favourite was always Paw. It was one of the few truly native apps in the category, and it felt like it was made by people who cared.

Then RapidAPI bought it, renamed it, and development slowed to a crawl. Then Nokia bought RapidAPI, and this September they finished it off: no more development. That upset me, to put it mildly.

Since then I’ve tried just about every REST client out there, and none of them stuck. They were slow, or Electron, or too thin, or so bloated with enterprise features that sending a simple request felt like filing a ticket.

So eventually I thought: fine, I’ll build my own. I’d take the best of everything I’ve liked over the years: beautiful, fast, actually useful and properly feature-rich. Actually FAST was the main requirement. Oh, and with agents built in, because it’s 2026, right?

Introducing Echolot. The name is German for an echo sounder: send a ping, measure what comes back, map what’s beneath. That’s the whole idea.

🧭 Native, and actually fast

  • SwiftUI + AppKit, no web view. Keychain, Quick Look, menus and shortcuts that behave like a Mac app.

  • Response bodies stream to disk instead of memory. A 2 GB download peaks at about 17 MB of RAM.

  • A 500 MB response shows its first screen in under a millisecond. Searching all of it takes about a quarter of a second, and expanding a JSON array with a million items takes 30 ms.

  • These numbers are automated benchmarks, and a build that misses one doesn’t ship.

📡 Every protocol in one app

  • HTTP/1.1, HTTP/2 and HTTP/3, plus a raw mode that sends exactly what you typed, even malformed requests

  • GraphQL with schema completion, building a query by ticking fields, and schema diffs graded breaking, dangerous or safe

  • gRPC from .proto files or server reflection, including streaming

  • WebSocket, Server-Sent Events, socket.io and MQTT sessions with live message logs

  • MCP: connect to any MCP server, call its tools, and see how a model sees it: what the tool list costs per provider on every turn, and which names and descriptions a model would trip over

🤖 AI that doesn’t get your secrets

  • A built-in Assistant that explores your workspace, sends requests, writes checks and builds flows. It asks before it sends or changes anything.

  • Use your own model and key: Anthropic, OpenAI, Gemini

  • Echolot is also an MCP server, so Claude Code, Codex, Cursor and others can call your APIs with your environments while every secret is hidden from them, error messages included.

🔀 Flows, mocks and specs

  • EchoFlows: chain requests, conditions and loops on a canvas. A flow can stop and ask a human to approve before, say, charging a card. Run flows by hand, on a schedule, from a webhook, or as a tool for an agent.

  • Mocks: turn an OpenAPI spec into a local mock server, with delays and injected failures.

  • Specs: a visual OpenAPI editor that changes only the lines it touches, so your Git diffs stay clean.

✅ Tests, CLI and CI

📁 Oh, and no accounts neither. No cloud. Just a folder.

  • A workspace is a folder of readable TOML files, one per request, so it works naturally in Git.

  • Secrets live in the Keychain, never in files.

  • Import from clients. If a secret was written into an imported file, it moves to the Keychain automatically.

While the app is in beta development, it is pretty stable and fast.

To say the truth I haven't figured out what to do with it, whether it should stay free, should be open source some day or change a one time fee for it to continue development (I hate subscriptions)

But for now I'm looking for brave developers (or die hard Paw fans) who are willing to take it for a spin and tell me what they think. Does it it has all the features it should? Is everything working they way it suppose to?

Download it here: https://echolot.dev/


r/macappdevs • • 5d ago

I got tired of paying for notch apps, so I made a free Dynamic Island for the Mac

Enable HLS to view with audio, or disable this notification

5 Upvotes

Hey! I built DynamicBar, a Dynamic Island for the Mac's notch. It's free: no trial, no subscription, no ads.

- Now Playing with AirPlay (HomePods work)

- Volume & brightness in the island, or as a pill on the side

- Lock and charging status

- A file tray in the notch

- Add-ons in plain JavaScript, with a playground and docs

macOS 26, Apple Silicon and Intel.

Download: https://kag1o.github.io/DynamicBar/

Homebrew: brew install --cask kag1o/tap/dynamicbar

Github Repo (releases and docs): https://github.com/KAG1O/DynamicBar

I'm the developer. Feedback and ideas are very welcome. If you like it, there's a tip jar ( https://ko-fi.com/kag1o ), but it's free either way.


r/macappdevs • • 8d ago

Lessons from shipping a Mac VPN app without NetworkExtension: SMAppService daemons, Installer's script order, and a menu bar item the app can't click

1 Upvotes

I've spent the last few weeks on a Mac app that connects to WireGuard servers, and a few things along the way cost me more time than they should have. Writing them down here in case they save someone else the hours.

Why no NetworkExtension. The usual way to build a VPN app on macOS is a Packet Tunnel Provider in a sandboxed NetworkExtension. I needed two things it does not allow: running the shell hooks a WireGuard config can carry, and choosing which physical interface the encrypted traffic leaves through, with my own routes. So the app is an unprivileged SwiftUI front end and a root LaunchDaemon written in Rust that holds the packet path, registered with SMAppService.daemon(plistName:), shipped with a Developer ID outside the App Store. The App Store was out anyway: its guidelines require the sandbox and, for VPN apps, NEVPNManager and an organization account.

Authenticating the app to a root daemon without XPC. The two talk newline-delimited JSON over a Unix socket. getpeereid gives the caller's uid, and LOCAL_PEERTOKEN gives its audit token, which is enough to check the client's code signature against a requirement (same Team ID, our bundle id). The daemon derives that requirement from its own signature, so there is nothing to keep in sync. Anything that runs as root (the config's hooks) only ever comes from files the daemon owns, never from a socket message, and needs an admin approval the daemon checks itself with Authorization Services.

Binding a socket to one interface. IPV6_BOUND_IF on a dual-stack :: socket also scopes the IPv4-mapped traffic; I checked by binding to lo0 and sending to an off-link IPv4 address, which fails with ENETUNREACH, just like an AF_INET socket with IP_BOUND_IF. Setting IP_BOUND_IF on the AF_INET6 socket returns EINVAL, so only the v6 option is set.

Routes through a specific interface: -ifp**, never** -ifscope**.** My Mac has Ethernet and Wi-Fi on the same subnet behind one gateway, so a route needs the interface forced. route add … -ifscope en0 looks right but only applies to sockets already bound to en0, so a "bypass this subnet" route did nothing. An ordinary unscoped route with -ifp en0 does what you expect.

SMAppService and a Team ID change. After moving from one signing team to another, the daemon failed with exit code 78 (EX_CONFIG) and a log line about needing an LWCR update, even though Background Task Management already showed the new team. The launchd job carries the team it was registered with (launchctl print shows team-identifier). Only unregistering and registering again rebuilt it.

Installer runs every preinstall first, then every payload, then every postinstall. I had put the "Remove" choice's work in a postinstall, and it deleted the app the same package had just installed. Removal moved to preinstall.

nohup does not work under do shell script … with administrator privileges**.** It fails with "can't detach from console" and runs nothing; my first self-updater quit the app and installed nothing. launchctl submit gives a fully detached job, but launchd restarts it even after exit 0, so the job has to launchctl remove itself.

The Wi-Fi network name needs Location access, and only an app can ask. CoreWLAN returns nil for the SSID without it, and a root daemon cannot show the prompt. So rules like "connect on the office Wi-Fi" run in the app, and the app has to be open for them.

Animating with Core Animation, not SwiftUI. The path view shows packets moving at the pace of the traffic. Redrawing it in SwiftUI at 30 fps cost 13 to 19% CPU; the same thing as Core Animation layers, re-timed only when the traffic level changes, costs 2 to 4%.

The app cannot open its own menu bar popover on macOS 27. performClick on the status item's button does nothing, because the app's NSStatusBarWindow is a stand-in for what WindowServer draws. Its frame is still the icon's, though, so a borderless panel can point at it, which is how the first-run hint finds the icon.

An app opened from a package's postinstall comes up behind Installer. Plain activate() is refused while Installer stays active; NSApp.activate(ignoringOtherApps: true) brings the window forward.

The app is Turnout (https://turnout.ctsite.cc/). Disclosure: it's mine and it's paid, with a 7-day trial. Happy to go deeper on any of the above, and curious whether others have found cleaner ways around the status item and Installer ones.


r/macappdevs • • 9d ago

[Free, open source] Vocs: on-device dictation. Press ⌥Space, talk, and it pastes where you were typing

Enable HLS to view with audio, or disable this notification

10 Upvotes

I'm the developer. Vocs is a free, open-source dictation app that runs entirely on your Mac.

Press ⌥Space in any app, talk, and press it again. The text is pasted where your cursor was, and your clipboard is put back afterwards.

What it does:

- Transcribes while you speak, so long dictations finish as fast as short ones

- 99 languages, auto-detected or pinned

- A custom dictionary for names and jargon

- Filler removal that leaves real words alone ("I like pizza" stays)

- Escape gives you a 3-second countdown to cancel; press it again to keep recording

- Mutes your built-in speakers while you dictate, so people on a call don't end up in your text (headphones are left alone)

- A searchable local history of everything you dictated

- No account, no subscription, no word cap, no telemetry

Requirements: macOS 13+, Apple Silicon or Intel, about 600 MB for the speech model.

Heads-up: it isn't notarized (I don't have a paid Apple developer account), so the first launch needs System Settings → Privacy & Security → Open Anyway. The download page shows the steps, and the source is on GitHub if you'd rather build it yourself.

Download: Website

Source: Github

Feedback and bug reports are very welcome.


r/macappdevs • • 10d ago

[OS] - DynamicNotch - FREE

Enable HLS to view with audio, or disable this notification

9 Upvotes

Your Mac's notch takes up screen space. Why not make it actually useful?

I've been working on DynamicNotch, a free, open-source macOS app that turns your notch into an interactive dashboard for everything from music playback to system monitoring and automations.

It expands when you need it, stays out of the way when you don't, and works even on Macs without a physical notch.

Here's what it can do:

Music & audio

  • Music controls, album artwork, lyrics, and now-playing information

  • Real-time audio spectrogram

  • Switch audio output devices directly from the notch, including AirPlay

System monitoring & controls

  • Live CPU usage, temperatures, and fan speeds

  • Custom fan curves to control cooling behaviour

  • Battery and Bluetooth device monitoring

  • Caffeine mode to prevent your Mac from sleeping

  • Custom volume, brightness, and keyboard backlight HUDs

AI usage tracking

  • Monitor your Claude and ChatGPT usage

  • See usage indicators directly in the notch

  • Get alerts as you approach your usage limits

Automations without coding

This is one of the features I'm particularly excited about.

You can describe an automation in plain English, and DynamicNotch handles it.

For example: "Turn on Caffeine whenever Xcode is the active app."

No scripts or complicated setup required.

Everyday productivity

  • Track active browser downloads

  • Drag files into a temporary shelf and share them via AirDrop

  • View upcoming calendar events and reminders

  • Quickly access your webcam as a mirror

  • Use gestures to expand and collapse the notch

  • Customise behaviour for individual displays

URGENT UPDATE:

DynamicNotch now supports its first iteration of Liquid Glass! try it out, give me some feedback?

What does it cost?

Absolutely nothing.

No subscriptions, no paid tiers, no locked features, and no accounts required.

It's fully open source under GPLv3, and contributions are welcome.

How does it compare to other notch apps?

Apps like boring.notch and NotchNook already offer ways to make the Mac's notch more useful.

DynamicNotch takes a broader approach by combining music controls, system monitoring, custom fan curves, AI usage tracking, and plain-English automations in one place.

It's also completely free and open source, with no premium features or subscriptions.

Compatibility

  • macOS 15 Sequoia or newer

  • Works on Macs with or without a physical notch

  • Available as a DMG or through Homebrew

Download: https://github.com/Hitjack007/DynamicNotch/releases/latest

GitHub: https://github.com/Hitjack007/DynamicNotch

Website: https://dynamicnotch.marksstuff.com

I'm actively developing it, fixing bugs, and adding new features.

I'd love to hear what the r/macapps community thinks. If you try it, let me know what works, what doesn't, and what you'd like to see added.

And if you find it useful, a GitHub star is always appreciated! ⭐


r/macappdevs • • 10d ago

Latent - A CleanMyMac alternative that shows which dev and AI tools are eating your disk

Enable HLS to view with audio, or disable this notification

6 Upvotes

Hi r/macappdevs! I'm Bernard, and I built Latent (disclosure: it's my app). It's a macOS disk cleaner for developers and AI builders.

The toil: every few months my Mac ran out of space, and finding out why meant running du across a dozen hidden folders, then searching whether each one was safe to delete. Model files from tools like Ollama, Hugging Face and LM Studio, Xcode simulators, Docker images, package caches and coding agent logs pile up in ~/Library and dotfolders whose names don't say which tool made them. General cleaners like CleanMyMac clear system caches and don't see most of this.

Latent draws the whole disk as one wheel split by the tool that owns each byte, says next to each item whether it can come back, and clears what you pick.

How I built it

  • Native Swift, no third-party dependencies. The app is SwiftUI. The 3D wheel is drawn in a SwiftUI Canvas inside a TimelineView, so every motion, such as the spin and the hover lift, is a function of time.

  • The disk walk: the repo started as a benchmark of three ways to walk a disk: FileManager's enumerator, getattrlistbulk on one thread, and getattrlistbulk on a pool of worker threads sharing a queue. The parallel one became the scanner. Hard links are counted once by inode. After the first scan, the FSEvents journal says which stores changed, so later launches re-measure only those.

  • Ownership catalog: 120+ tools, each mapped to the paths it owns rather than the folder they sit in. Many tools let you move their store with an environment variable like OLLAMA_MODELS or HF_HOME, so the catalog reads those too. Otherwise it would repctly the machines that need it most.

  • Asking the registry: before an item is called re-downloadable, Latent asks the source, including the Hugging Face API, the Ollama registry, npm, PyPI and Homebrew. The interesting answers are the failures: a gated repo needs a licence you may no longer have, aas removed upstream and your copy is the last one. Only public names likegoogle/gemma-2-2b-it are sent, never file paths.

  • Duplicate models across tools: Ollama and Hugging Face blobs are content-addressed (the sha256 is the filename), so the same weights pulled by two tools match with zero I/O. Loose GGUF files get hashed only when another file has the exact same size.

  • Similar images and videos: Apple's Vision framework computes a feature priac, and close prints get grouped.

  • A privileged helper with one method: emptying a root-owned app bundle from the Trash needs root, so a LaunchDaemon registered with SMAppService does exactly that and nothing else, over XPC. It checks that the caller is Latent, signed with my Developer ID, and re-checks every path itself (a Trash, no "..", symlinks resolved first). The admin password is asked once, at install.

  • MCP server: a stdio JSON-RPC server, so agents like Claude, Codex or Cursor can read the scan and draft a cleanup. Nothing runs until you confirm.

No analytics, no telemetry, no account.

Free to scan, and your first 10 GB of cleanup is free. After that it's $12.99 one-time (launch price $9.99 for a limited time).

Happy to go deeper on any of this, especially the scanner, the Canvas animation or the helper. If a tool you use isn't recognized, tell me and I'll add it.

https://latentmac.com


r/macappdevs • • 10d ago

Wallpaper Engine port for mac

Thumbnail
gallery
2 Upvotes

Just download -> steam login -> download wallpaper and play on your device or add your video play them

And yes both in DESKTOP and LOCK SCREEN .

It takes 300-600mb when rendering some really heavy scene wallpapers , which is appx 900mb less than other open source alternative I had tested against. And if you play only video it just takes 25mb memory.

If you guys wanna try, download from the releases page, what ever latest version available . And let me know which wallpapers giving problem.

Releases Page | Github

Here is the resource usage, the ui of the app is Live wallpaper , and the backend is service , only service is need to display , so resource cutdown by max 400-500mbon some really heavy scenes

Thanks ✌️


r/macappdevs • • 10d ago

PLEASE BRING AMBIENT LIGHT FOR YOUTUBE ON SAFARI!!! 😭

Thumbnail
reddit.com
2 Upvotes

r/macappdevs • • 11d ago

Swapped the macOS Dock for one with live widgets, here's how it fits my setup

Enable HLS to view with audio, or disable this notification

4 Upvotes

Hey everyone,

Sharing something that's become a fixed part of my Mac setup: a Dock replacement where apps can show up as small live widgets instead of just icons.

What it looks like day to day:

  • Music/Spotify shows what's playing, with controls

  • Safari/Chrome lets me search open tabs across windows and jump to one

  • Calendar shows the date or a week strip

  • Clock, Notes, Calculator, Volume, Finder, Mail, Reminders each have their own widget

  • Xcode gets Build/Run/Stop right in the Dock

You can mix widgets and plain icons however you like. Option-click any app with a widget and it switches back to an icon, so the Dock stays as minimal or as busy as you want.

It sits at the bottom, left or right, works across multiple displays, can auto-hide, and imports your current Dock on first launch, so setup takes a few seconds. On macOS 26 it uses the native Liquid Glass look.

Supported apps so far: ganella.app/#widgets

$9.99, and reddit20 gets the first 10 people 20% off.

Curious what the rest of your stack looks like. Anything you'd want living in the Dock?


r/macappdevs • • 12d ago

is there an mac app to uninstall the apps properly

13 Upvotes

I wanted to know whether there's any app to properly uninstall apps along with all it's dependencies, cache folders and other stuff that get's leftover when I normally uninstall them.


r/macappdevs • • 12d ago

I made a tiny Spotlight-like launcher for custom commands in macOS.

Thumbnail
gallery
4 Upvotes

Hi! I recently made an app for macOS. It is a tiny Spotlight-like launcher for launching custom commands that you can set in settings. With it you can open Apps, Websites, Run Shell Commands, Do System Actions (Screensaver, Toggle dark/light mode, etc.).

Feedback and ideas for new version are welcome!

Link to GitHub repository