- Install Plash from the Mac App Store.
- Plash menu bar → Add Website → paste
http://127.0.0.1:3000. - Browsing Mode: off (so clicks pass through to your desktop).
- Opacity: 100%. Invert colors: off.
- Reload interval: leave blank — the renderer updates itself live over a
server-sent-events stream as your vault changes, with
refreshMsinconfig.jsononly as a periodic fallback. No page reload needed.
Save this as ~/Library/LaunchAgents/com.user.vaultwallpaper.plist, edit the two paths, then run launchctl load ~/Library/LaunchAgents/com.user.vaultwallpaper.plist.
Find your node path first: run which node in Terminal and paste the result below.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict>
<key>Label</key><string>com.user.vaultwallpaper</string>
<key>ProgramArguments</key>
<array>
<string>PASTE_OUTPUT_OF_WHICH_NODE</string>
<string>/Users/YOU/path/to/obsidian-live-wallpaper/parser.js</string>
</array>
<key>WorkingDirectory</key><string>/Users/YOU/path/to/obsidian-live-wallpaper</string>
<key>RunAtLoad</key><true/>
<key>KeepAlive</key><true/>
</dict></plist>Common node paths:
- Apple Silicon (M1/M2/M3/M4):
/opt/homebrew/bin/node - Intel Mac (Homebrew):
/usr/local/bin/node - nvm:
/Users/YOU/.nvm/versions/node/vXX.X.X/bin/node(launchctl does not expand~— use the full absolute path)
- Blank wallpaper: check that
graph.jsonexists in the project folder. If not, the parser isn't running orvaultPathis wrong. - Plash shows "file not found": make sure the parser is running and the URL is
http://127.0.0.1:3000, not afile:///path. - Nodes not updating: confirm chokidar is watching by editing a note and checking the parser's terminal output.
- Performance: if your vault is 2000+ notes, increase
refreshMsto 10000 inconfig.json.