haven

@june

A lightweight macOS menu bar app for finding, setting, and managing desktop wallpapers from Wallhaven.

Swift

0.6.1 · 28 saves · 5,082 lines · updated 6 weeks ago · trusted

28 saves
39 files ⇓ bundle
28 saves
300c20aa6f13record wallpaper-set fix and install upgrade in continuity logdev6 weeks ago
704ac0fcc8adpolish UI: error banner, nested manager observation, ultrawide fit, resolution badge, neutral pills, sources list (v0.6.0)dev6 weeks ago
1ac917959d28add multi-source local folders with idempotent migration (v0.6.0)dev6 weeks ago
c3734780b18aland in-flight hardening: status-item removal, temp-file cleanup, defensive pictures directory (v0.6.0)dev6 weeks ago
details

Haven

A lightweight macOS menu bar app for finding, setting, and managing desktop wallpapers. Browse Wallhaven without leaving the menu bar, set any image as your wallpaper with a click, and keep a local library of the ones you download.

Features

  • Explore — search Wallhaven with live filtering by category

(General / Anime / People), purity (SFW / Sketchy), resolution, and aspect ratio. Infinite scroll loads more as you go.

  • Set instantly — click a wallpaper to set it on your active display.
  • Local library — wallpapers you download are saved to a folder of your

choice and browsable offline. Unreadable or broken image files are skipped automatically so they never clutter the view.

  • Favorites & History — keep the ones you love and revisit anything you've

set recently.

  • Launch at login — optionally start Haven automatically.

Requirements

  • macOS 13 (Ventura) or later
  • Swift 5.9+ toolchain (Xcode or the Swift command-line tools)

No Wallhaven API key is required — Haven uses the public search API and browses SFW and Sketchy content only.

Build & Run

Build a signed .app bundle and launch it:

./bundle_app.sh
open Haven.app

Or run directly during development:

swift build
swift run

Haven lives in the menu bar (it has no Dock icon). Click the menu bar icon to open the popover.

Usage

| Tab | What it does | | --- | --- | | Explore | Search and browse Wallhaven. Use the slider icon to filter. | | Local | Browse wallpapers saved to your local folder. | | Favorites | Wallpapers you've hearted. | | History | Recently set wallpapers. | | Settings | Launch at login, local-save toggle, and save-folder location. |

By default, downloaded wallpapers are saved to ~/Pictures/Haven. Change this in Settings → Storage → Location.

Project Layout

Sources/Haven/
  API/          Wallhaven client and response models
  Managers/     Wallpaper, local library, favorites, history, autostart, cache
  UI/           AppState, menu bar controller, and SwiftUI views
  main.swift    Entry point

License

GPLv3