Vibe coding SwiftUI: single-file architecture and terminal wrapping as success factors¶
Insight: Simon Willison identifies specific conditions where vibe coding succeeds for native macOS apps: single-file architecture (both apps fit in 880–1,063 lines of Swift), wrapping existing terminal commands (system_profiler, memory_pressure) rather than reimplementing functionality, and leveraging AI to suggest features by recombining elements from prior projects. Claude Opus 4.6 and Claude Code drove the development, with no Xcode required.
Detail: Two functional menu bar apps resulted — Bandwidther (network bandwidth per process with real-time graphs) and Gpuer (GPU/memory monitoring). Willison explicitly acknowledges low confidence in accuracy: "I have very little experience with macOS internals." Gpuer initially reported incorrect memory values requiring manual fixes. Both repos carry accuracy warnings. This pattern — functional but potentially inaccurate vibe-coded output — reinforces that vibe coding works best where correctness is verifiable or stakes are low.