Hi all,
I build swift-institute, about 400 Swift packages, and these days agents write all of the code. With several of them building and testing at once, I couldn't see what was running where, or which run had quietly got stuck. Yesterday a swift test sat silent for 12 minutes before I noticed.
So I built Birdwatch, a menu bar app that shows just that:
- Swift and Xcode work only, grouped by project
- What's stuck, and why
- What has been running a long time
- Which agent started what (optional)
Rules in code do most of the work, and Apple's on-device model helps where rules fall short. One click quits what's stuck.
The hard part was naming the test that hangs. Birdwatch samples the stuck process and reads its stacks, which sounds easier than it is: Swift Testing names hide no-break spaces, and XCTest stacks go very deep. Apple's model summed one up as "a deep stack of core XCTest framework calls". True, and no help. Now it gives you the test and the line.
€19 once, 14 days free, no account. macOS 27.2+, Apple silicon.
Full disclosure: I made it, and it's paid. I'd like to hear what it misses, what it should leave out, and whether the price feels right.
