This web page was created programmatically, to learn the article in its authentic location you may go to the hyperlink bellow:
https://simonwillison.net/2026/Mar/27/vibe-coding-swiftui/
and if you wish to take away this text from our web site please contact us
Vibe coding SwiftUI apps is quite a lot of enjoyable
twenty seventh March 2026
I’ve a brand new laptop computer—a 128GB M5 MacBook Pro, which early impressions present to be very succesful for working good native LLMs. I received pissed off with Activity Monitor and determined to vibe code up some different instruments for monitoring efficiency and I’m very proud of the outcomes.
This is my second experiment with vibe coding macOS apps—the primary was this presentation app just a few weeks in the past.
It seems Claude Opus 4.6 and GPT-5.4 are each very competent at SwiftUI—and a full SwiftUI app can slot in a single textual content file, which suggests I can use them to spin one thing up with out even opening Xcode.
I’ve constructed two apps up to now: Bandwidther reveals me what apps are utilizing community bandwidth and Gpuer to indicate me what’s occurring with the GPU. At Claude’s suggestion each of those are actually menu bar icons that open a panel full of data.
Bandwidther
I constructed this app first, as a result of I wished to see what Dropbox was doing. It seems to be like this:
I’ve shared the full transcript I used to construct the primary model of the app. My prompts had been fairly minimal:
Show me how a lot community bandwidth is in use from this machine to the web versus native LAN
(My preliminary curiosity was to see if Dropbox was transferring recordsdata by way of the LAN from my previous laptop or was downloading from the web.)
mkdir /tmp/bandwidther and write a local Swift UI app in there that reveals me these particulars on a stay ongoing foundation
This received me the primary model, which proved to me this was price pursuing additional.
git init and git commit what you may have up to now
Since I used to be about to begin including new options.
Now recommend options we might add to that app, the purpose is to offer as a lot element as attainable regarding community utilization together with by totally different apps
The good factor about having Claude recommend options is that it has a a lot better thought for what’s attainable than I do.
We had a little bit of backwards and forwards fixing some bugs, then I despatched just a few extra prompts to get to the 2 column format proven above:
add Per-Process Bandwidth, relaunch the app as soon as that’s carried out
now add the reverse DNS characteristic however be certain that authentic IP addresses are nonetheless seen too, albeit in smaller typeface
redesign the app in order that it’s wider, I would like two columns—the per-process one on the left and the remaining on the fitting
OK make it a activity bar icon factor, once I click on the icon I would like the app to seem, the icon itself ought to be a neat minimal little factor
The supply code and construct directions can be found in simonw/bandwidther.
Gpuer
While I used to be constructing Bandwidther in a single session I had one other session working to construct an analogous device for seeing what the GPU was doing. Here’s what I ended up with:
Here’s the transcript. This one took even much less prompting as a result of I might use the in-progress Bandwidther for instance:
I wish to understand how a lot RAM and GPU this laptop is utilizing, which is difficult as a result of stuff on the GPU and RAM doesn’t appear to indicate up in Activity Monitor
This collected info utilizing system_profiler and memory_pressure and gave me an answer—extra importantly it confirmed me this was attainable, so I stated:
Look at /tmp/bandwidther after which create an analogous app in /tmp/gpuer which reveals the knowledge from above on an ongoing foundation, or perhaps does it higher
After just a few extra modifications to the Bandwidther app I advised it to catch up:
Now check out latest modifications in /tmp/bandwidther—that app now makes use of a sys tray icon, imitate that
This stays considered one of my favourite methods for utilizing coding brokers: having them recombine parts from different tasks.
The code for Gpuer might be present in simonw/gpuer on GitHub.
You shouldn’t belief these apps
These two apps are basic vibe coding: I don’t know Swift and I hardly glanced on the code they had been writing.
More importantly although, I’ve little or no expertise with macOS internals such because the values these instruments are measuring. I’m utterly unqualified to judge if the numbers and charts being spat out by these instruments are credible or correct!
I’ve added warnings to each GitHub repositories to that impact.
This morning I caught Gpuer reporting that I had simply 5GB of reminiscence left when that clearly wasn’t the case (in accordance with Activity Monitor). I pasted a screenshot into Claude Code and it adjusted the calculations and the brand new numbers look proper, however I’m nonetheless not assured that it’s reporting issues appropriately.
I solely shared them on GitHub as a result of I feel they’re attention-grabbing for instance of what Claude can do with SwiftUI.
Despite my insecurity within the apps themselves, I did be taught some helpful issues from these tasks:
- A SwiftUI app can get a complete lot carried out with a single file of code—right here’s GpuerApp.swift (880 strains) and BandwidtherApp.swift (1063 strains).
- Wrapping varied terminal instructions in a neat UI with Swift is definitely achieved.
- Claude has surprisingly good design style in relation to SwiftUI functions.
- Turning an app right into a menu bar app is just some strains of additional code as properly.
- You don’t must open Xcode to construct this type of software!
These two apps took little or no time to construct and have satisfied me that constructing macOS apps in SwiftUI is a brand new functionality I ought to think about for future tasks.
This web page was created programmatically, to learn the article in its authentic location you may go to the hyperlink bellow:
https://simonwillison.net/2026/Mar/27/vibe-coding-swiftui/
and if you wish to take away this text from our web site please contact us



