OpenGallery brings the National Gallery of Art to your Mac. It sets your wallpaper from 60,000 of its public-domain works, at full resolution on every screen.
Wivenhoe Park, Essex, John Constable, 1816 ·
Farmhouse in Provence, Vincent van Gogh, 1888 ·
The Bridge at Argenteuil, Claude Monet, 1874
Rotation: Changes the artwork every hour, or every 15 minutes, 3 hours or day. Show the same artwork on every display or different art on each.
Filters: Choose artwork by type, orientation, art movement and palette. Nudity is hidden by default, using the National Gallery of Art's own tags and image analysis.
Desktop gestures: Swipe sideways with two fingers to see the next or previous artwork. Force Click to see the artwork's title, artist, date and medium.
Favorites: Save up to 20 favorites, and show only those if you like.
On/off: Switch it off from the menu to revert to your system wallpaper.
Offline: Keeps rotating through artwork it has already downloaded.
Small cache: Keeps only the 15 most recent images and deletes older ones as it goes, so it never grows past about 25–50 MB, depending on your screens.
Runs on Apple Silicon and Intel Macs with macOS 13 or later.
OpenGallery collects no data about you and has no accounts, analytics or tracking. It only connects to the National Gallery of Art's image server to download artwork.
Force Click needs the Input Monitoring permission because macOS only shares trackpad pressure with apps that have it. OpenGallery listens for trackpad pressure and gestures on the desktop, never reads your keystrokes, and keeps nothing. Force Click is off by default, so OpenGallery doesn't ask for the permission unless you turn it on.
Paste this into any coding agent that can run commands on your Mac, such as Claude Code, Codex, Cursor or Gemini CLI, and it installs OpenGallery for you:
Install OpenGallery from https://github.com/isaaczaak/opengallery.
What it is: an open-source (MIT) macOS menu bar app, written in Swift, that
sets the desktop wallpaper to public-domain paintings from the National
Gallery of Art. It downloads images only from the National Gallery of Art's
image server (api.nga.gov), collects no data, and needs no account or API
key. You'll build it from source with Apple's command line tools. The only
thing it installs is /Applications/OpenGallery.app, which starts at login.
1. Check this Mac runs macOS 13 or later (sw_vers). If `swift --version`
fails, run `xcode-select --install`, wait for me to finish the installer,
then continue.
2. Clone the repo into ~/Code/opengallery (or update it with git pull if it's
already there) and run `scripts/bundle.sh --install` from inside it.
3. Confirm OpenGallery is running (pgrep -x OpenGallery) and tell me to look
for its icon in the menu bar.
4. Tell me that Force Click artwork details is optional and off by default:
to use it, I turn it on in OpenGallery's Settings and allow OpenGallery
under System Settings → Privacy & Security → Input Monitoring. After a
future update I may need to allow it again.
Don't use sudo, and don't change any other system or privacy settings.
- Download the latest OpenGallery zip from Releases.
- Unzip it and move OpenGallery to your Applications folder.
- Open it. Apple hasn't notarized OpenGallery yet, so macOS blocks it the first time. Go to System Settings → Privacy & Security, scroll down and click Open Anyway.
To update, quit OpenGallery from its menu and replace the app with the new version.
You need macOS 13 or later and Apple's command line tools. To install the
tools, run xcode-select --install.
git clone https://github.com/isaaczaak/opengallery.git
cd opengallery
scripts/bundle.sh --installThe script builds OpenGallery, copies it to /Applications and opens it.
You built it yourself, so macOS opens it without a security warning. To
update, run git pull and scripts/bundle.sh --install again.
OpenGallery lives in your menu bar, with a small frame icon. Click it to see what's on each screen, change the artwork, or open Settings. It starts at login; you can turn that off in Settings.
Force Click is off by default. Turn it on in OpenGallery's Settings, then allow OpenGallery when macOS asks for Input Monitoring. macOS ties this permission to each version, so allow it again if Force Click stops working after an update.
Quit OpenGallery from its menu, then drag it from Applications to the Trash.
Downloads: Each image downloads only when it's about to show, sized for your screen.
Storage: The 15 most recent images, about 25–50 MB depending on your
screens, in ~/Library/Caches, which macOS can clear when it needs space.
Memory: About 50 MB.
scripts/build_manifest.py builds Resources/manifest.json from the
National Gallery of Art's open data. It keeps open-access images at least
2000px on the long side. Landscape works fill the screen; the app shows
portrait and square works whole, on a gallery wall. Two more scripts tag the
artwork and then rebuild the list:
scripts/build_manifest.py
scripts/analyze_colors.py # palette tags, cached in .data/colors.json
# Nudity scores with CLIP, cached in .data/nudity.json
python3 -m venv .data/venv && .data/venv/bin/pip install torch open_clip_torch pillow
.data/venv/bin/python scripts/detect_nudity.pybundle.sh compresses the list into the app, and the app unpacks it at
launch.
Sources/OpenGallery/: the SwiftUI menu bar app and Settings windowscripts/: artwork list, icon, signing and build scriptsResources/: the artwork list and icon bundled into the app
Each build gets a new signature, so macOS forgets OpenGallery's Input
Monitoring permission every time you rebuild. If you rebuild often, run
scripts/make_signing_cert.sh once. It adds a self-signed certificate to
your login keychain, trusted only for code signing, and bundle.sh signs
with it from then on, so the permission sticks. Any program running as you
can also sign with this certificate and take over that permission. To undo
it, delete the certificate in Keychain Access.
The code is MIT licensed (see LICENSE). The artwork images and collection
data come from the National Gallery of Art's
open access program.
The Gallery releases images of works it believes to be in the public domain
under CC0, along with the
collection data. Artwork courtesy National Gallery of Art, Washington.
OpenGallery isn't affiliated with or endorsed by the National Gallery of Art.
Made by Isaac Ng