Your files deserve a nicer place to live.
Little objects for your Mac desktop that hold your files, with doors and drawers that move like real ones. Free and open source.
For macOS 14 or later, and Windows in beta.
Drag a file into the fridge.
The library
Free objects for your Mac desktop. All open source, all made by people who like small things.
- Desktop Drawer: A wooden drawer under your desktop for everything you are not using right now.
- Desktop Fridge: Drag files in, shut the door, forget about them.
- Desktop Mailbox: Every now and then, a letter arrives.
- Desktop Vending Machine Keypad: Your files on little shelves. Type a code and one drops.
- Desktop Vending Machine: Your files on little shelves. Press a button and one drops.
Nothing matches that yet. Maybe it is yours to make.
House rules
Gentle with your files, every time.
Every object in the library follows the same five rules. They are part of the guide, and each object is checked against them before it is added.
Read the rules-
Moved, never lost
Files go into one plain folder you can open in Finder. Nothing is copied or deleted behind your back.
-
Put Back works
Every file can go back to where it came from, even after a restart.
-
Quiet at rest
No timers or animation while nobody is touching it. Easy on your battery.
-
No network, no tracking
The apps never go online. No analytics, ads, accounts or paywalls inside them. Ever.
-
Free and open source
MIT licence. Read it, change it, share it.
For makers
Make your own object.
Start from a template that already opens, closes, holds files and puts them back. Bring two pictures and the template does the rest. About 15 minutes, no Swift needed.
-
Copy the template
Fork whimsydesk on GitHub to get your own copy. Then in Phoenix Code, get your fork, add the extension, and make your object.
No Phoenix Code yet? Get it free at phcode.dev.
- Start Project›Get from Git›paste your fork
- Extension Manager›Desktop Objects Studio›Install
- File›New Desktop Object
Fork the repo on GitHub, then make your object from the template. Replace the name and username with yours.
Terminal# Fork github.com/Electrofist/whimsydesk, then: git clone https://github.com/your-username/whimsydesk.git cd whimsydesk scripts/new-object.sh"Toaster"your-usernameFork whimsydesk on GitHub. Then open your AI assistant in an empty folder and paste this prompt. Change the name and username first.
Works with any assistant that can run commands on your Mac, like Claude Code, Codex or Cursor.
PromptI want to make a new object for WhimsyDesk, an open source library of Mac desktop objects that hold files: https://github.com/Electrofist/whimsydesk My object is calledToasterand my GitHub username isyour-username. Please: 1. Clone my fork, https://github.com/your-username/whimsydesk, into this folder. 2. Read docs/make-your-own.md and CONTRIBUTING.md, and follow them. 3. Run scripts/new-object.sh "Toaster"your-username4. Build and run it with: cd objects/toaster&& bash build.sh run 5. Wait while I put closed.png and open.png in objects/toaster/Art. Then rebuild it and help me set look.itemsArea in object.json so files sit inside the open picture. 6. Help me write the tagline, description and README in plain words. 7. Run scripts/check-objects.sh and fix everything it lists. Keep the house rules: files are moved, never lost. Put Back works. Nothing runs while nobody touches the object. No network or tracking. Ask me before anything you are unsure about. -
Draw two pictures
One closed.png and one open.png. Same size, transparent background, exported at 2x.
Try them here first. Drop both on the crate and yours takes its place.
In Phoenix Code, the Studio panel shows your art as you work. Drag the files area over your open picture to set where files sit.
Put them in your object's Art folder, keeping the names.
Put them in your object's Art folder and tell your assistant they are there.
Stays in your browser. Never uploaded.
-
Put it on your desktop
Open the terminal panel in Phoenix Code and run these two lines.
The first build takes a minute or two. Your object appears at the lower left of your screen, behind your windows. Click it, drop a file on it, and right-click a file inside for Put Back.
Terminalcd objects/toasterbash build.sh runBuild it and run it.
The first build takes a minute or two. Your object appears at the lower left of your screen, behind your windows. Click it, drop a file on it, and right-click a file inside for Put Back.
Terminalcd objects/toasterbash build.sh runYour assistant builds and runs it for you. When your pictures are in, ask it to rebuild.
Your object appears at the lower left of your screen, behind your windows. Click it, drop a file on it, and right-click a file inside for Put Back.
PromptMy pictures are in objects/toaster/Art. Rebuild it, run it, and help me set where files sit in the open picture. -
Send it in
Mistakes in object.json are marked as you type. When it looks right, use the Git panel to commit objects/toaster and .github/CODEOWNERS on a new branch, and push.
Then open your fork on GitHub and choose Compare & pull request. GitHub checks and builds your object for you.
- Git panel›New branch›add-toaster
- Commit›objects/toaster, .github/CODEOWNERS
- Push
Check your card, then send a pull request.
Then open your fork on GitHub and choose Compare & pull request. GitHub checks and builds your object for you.
Terminalscripts/check-objects.sh git checkout -badd-toastergit add objects/toaster.github/CODEOWNERS git commit -m"Add Toaster"git push -u originadd-toasterAsk your assistant to check it and send it in.
GitHub checks and builds your object for you, and the pull request shows anything to fix.
PromptRun scripts/check-objects.sh and fix what it lists. Then commit objects/toasterand .github/CODEOWNERS on a new branch called add-toaster, push it, and open a pull request to Electrofist/whimsydesk.