A macOS menu bar app that makes it rain on your screen. Vibe-coded with Claude Code.
Swift
0
3 commits
updated Sep 29, 2026
A macOS menu bar app that makes it rain on your screen. Water pools on the top edges of your windows, runs down their sides, and drips from the corners.
Rainpane is based on the idea of Weatherling by Matt Senter. I liked it and wanted to see how far I could rebuild the app my own way with Claude Code.
git clone https://github.com/tansan7271/rainpane.git
cd rainpane
./setup-signing.sh # Optional, once. Creates a local self-signed certificate so permissions survive rebuilds.
./build.sh run
The app lives in the menu bar. Left-click opens the settings. Right-click turns the rain on or off.
With the default settings, Rainpane asks for no permissions.
CGWindowListCopyWindowInfo). It does not read window titles and does not need Screen Recording permission.These can stop working after a macOS update.
SLSCopyManagedDisplaySpaces: reads the desktops of each display (desktop switching).com.apple.symbolichotkeys and activateSettings -u: used only when you press the button that turns on the desktop shortcuts.This project was fully vibe-coded. I described what I wanted, mostly with screenshots and notes on how it felt. Claude Code wrote all of the code. The code comments and the design notes in ARCHITECTURE.md are in Korean because that is the language we worked in. The design notes have an English translation in ARCHITECTURE.en.md. The Korean version is the original.
Limitations:
MIT. See LICENSE.
The files in Resources/ are third-party and keep their own licenses:
Resources/FontAwesome-LICENSE.txt.Resources/FluentEmoji-LICENSE.txt.Swift
98.2%
Shell
1.8%
A macOS menu bar app that makes it rain on your screen. Vibe-coded with Claude Code.
Swift
0
3 commits
updated Sep 29, 2026
A macOS menu bar app that makes it rain on your screen. Water pools on the top edges of your windows, runs down their sides, and drips from the corners.
Rainpane is based on the idea of Weatherling by Matt Senter. I liked it and wanted to see how far I could rebuild the app my own way with Claude Code.
git clone https://github.com/tansan7271/rainpane.git
cd rainpane
./setup-signing.sh # Optional, once. Creates a local self-signed certificate so permissions survive rebuilds.
./build.sh run
The app lives in the menu bar. Left-click opens the settings. Right-click turns the rain on or off.
With the default settings, Rainpane asks for no permissions.
CGWindowListCopyWindowInfo). It does not read window titles and does not need Screen Recording permission.These can stop working after a macOS update.
SLSCopyManagedDisplaySpaces: reads the desktops of each display (desktop switching).com.apple.symbolichotkeys and activateSettings -u: used only when you press the button that turns on the desktop shortcuts.This project was fully vibe-coded. I described what I wanted, mostly with screenshots and notes on how it felt. Claude Code wrote all of the code. The code comments and the design notes in ARCHITECTURE.md are in Korean because that is the language we worked in. The design notes have an English translation in ARCHITECTURE.en.md. The Korean version is the original.
Limitations:
MIT. See LICENSE.
The files in Resources/ are third-party and keep their own licenses:
Resources/FontAwesome-LICENSE.txt.Resources/FluentEmoji-LICENSE.txt.Swift
98.2%
Shell
1.8%