Stop hunting through grouped windows. Click once, get exactly what you need.
A macOS menu bar application that creates individual dock icons for your application windows — because macOS groups all your windows together, but your brain doesn't work that way.
You have 5 VSCode projects open. Or 3 Xcode workspaces. Or multiple terminal sessions. macOS groups them all under one dock icon.
Now you need that specific project window. So you:
- Click the dock icon
- Scan through the "Show All Windows" popup
- Find your window (maybe)
- Click again
Every. Single. Time.
WindowsOnDock gives each window its own dock icon. One click. Done.
No more hunting. No more window juggling. Just click the dock icon for the project you want, and it's instantly in front of you.
- 📍 Direct Access - Click once to bring up exactly the window you need
- 🎨 Visual Clarity - Each helper shows the correct app icon, so you know what you're clicking
- ⚡ Fast Switching - No more navigating through window groups or Mission Control
- 🎛️ Customizable - Choose which apps to monitor in Preferences
- 🧹 Clean & Simple - Add or remove helpers with a few clicks
- Download
WindowsOnDock.zipfrom the Releases page - Unzip and move
WindowsOnDock.appto your Applications folder - Launch WindowsOnDock
- Grant Accessibility permissions when prompted
git clone https://github.com/yourusername/WindowsOnDock.git
cd WindowsOnDock
open WindowsOnDock.xcodeproj
# Press ⌘R to build and run- Launch WindowsOnDock - Look for the grid icon in your menu bar
- Open "Manage Window Helpers" (⌘M)
- Select windows you want dock icons for
- Click "Add to Dock"
That's it! Your dock will restart and the helper icons appear.
Simply click any helper icon in the dock and that specific window instantly comes to the front.
- Open "Manage Window Helpers"
- Select helpers to remove
- Click "Remove from Dock"
Or use "Clear All Helpers" from the menu bar to remove everything at once.
⌘M- Manage Window Helpers⌘,- Preferences⌘A- Select all windows (in management view)⌘Q- Quit (auto-removes all helpers)
WindowsOnDock works with:
- Code Editors: VSCode, Xcode, Sublime Text, JetBrains IDEs
- Terminals: iTerm, Terminal
- Office Apps: Word, PowerPoint, Excel
- Others: TextEdit, and more
Enable or disable any app in Preferences (⌘,).
This project was mostly generated by AI (Claude Code) with human guidance. It demonstrates what's possible when you combine:
- Human product vision
- AI implementation capability
- Iterative refinement
The icon, code architecture, UI, and even this README were created through AI-human collaboration.
Since macOS has no public API for adding arbitrary dock items, WindowsOnDock creates minimal .app bundles that appear as real applications:
- Monitor - Scans for application windows using the Accessibility API (only when the management window is open)
- Create - Generates helper apps in
~/Library/Application Support/WindowsOnDock/Helpers/ - Register - Adds helpers to dock using
defaults write com.apple.dock - Activate - When clicked, helpers use AppleScript to raise their target window
Each helper contains:
- Bash script with embedded AppleScript
- Parent application's icon
- Window title metadata
- macOS 13.0 (Ventura) or later
- Accessibility permissions (required to read window titles and activate windows)
WindowsOnDock runs 100% locally on your Mac:
- ✅ No data collection
- ✅ No network access
- ✅ No analytics or tracking
- ✅ Only uses Accessibility API for window management
- Helpers match windows by title. If you rename a project significantly, recreate the helper
- Rebuilding during development may require re-granting Accessibility permissions
- Window titles must remain relatively stable for helpers to work
Contributions welcome! Please feel free to:
- Report bugs via Issues
- Suggest features
- Submit pull requests
MIT License - see LICENSE for details
- Built with Claude Code
- Icon and UI design by AI
- Inspired by the frustration of macOS window grouping
Note: This is a menu bar app (LSUIElement) — it won't appear in your Applications folder or regular Dock. Look for the grid icon in your menu bar after launching!