A little floating toolbar for Windows that tiles your windows, remembers exactly where they go, and launches the scripts you actually use. Built for VR streamers and artists working on a small screen.
Streaming from a headset means juggling a pile of windows you can't see while you're in there: the headset mirror, OBS, chat, Voicemeeter, the game itself. Every session started with the same five minutes of dragging things into place — and Windows' own taskbar was no help, because you can't pin a script to it, can't group anything, and can't fit what you need.
So the dock does the two jobs the taskbar won't: put my windows back where they belong, and give me one click for the things I run constantly.
Oculus Mirror is what puts your headset view on stream, and it's buried
in Program Files\Oculus\Support\oculus-diagnostics\. Same for
the Debug Tool when you're fixing bitrate or encode lag mid-session.
HopperDock finds both when you install it and puts them one click away.
Some Meta store titles — Population One is the repeat offender — leave
their process running after you quit inside the headset. It keeps holding
the headset, your mic and the GPU. A two-line taskkill script
on the dock fixes it instantly, and that script ships as an example.
Tiling keeps OBS, chat, the mirror and your audio mixer where you expect them — which matters when you're headset-blind and reaching for a window you can't see. Save it once as a layout, restore it at the start of every stream.
Drawing on a Wacom away from the desk means one small screen and no room to waste. Tiling gets the reference, the canvas and the brush palette arranged properly instead of stacked, and the dock pins to the edge so a maximized canvas stops beside it rather than under it.
Honestly, the launcher outgrew the window management. The Windows
taskbar can't hold a .bat file, can't group things, and runs out
of room fast. Colour-coded categories that slide out of the dock turned out
to be the part I use most — it's the taskbar I wanted.
None of this is VR-specific — it's just as useful for editing, coding or anything else with a routine.
One click gathers every open window onto the monitor you point at. Good for when you unplug a screen and Windows scatters things.
Two columns, three columns, 2×2 or 3×2 — on whichever monitor you choose.
Snapshot every window's position, size, maximized and minimized state. Restore the whole arrangement later in one click.
Group shortcuts into colour-coded categories that slide out of the dock. Scripts, apps, folders, even Windows settings pages.
Click to show or hide an app; if it isn't running, it launches. Like a taskbar you built yourself.
Pin it and Windows reserves the space, so maximized windows stop beside the dock instead of hiding behind it.
If the Oculus runtime is installed, Oculus Mirror and the Debug Tool are added to your VR category automatically on first run.
This is the dock as it appears on your screen. Hover any button — or any row — to match them up.
Pick the first one if you just want to use it. Pick the second if you want to poke at the code.
No Python, no setup, nothing to install.
HopperDock.exe from the releases page.Needs Python 3.10 or newer.
run_dock.bat.git clone https://github.com/scarylasers/HopperDock cd HopperDock pip install -r requirements.txt run_dock.bat
Something wrong? Run run_dock_visible.bat instead — same
program, but it keeps a console open so you can read the error.
The first time you run HopperDock.exe, Windows will
stop you with a blue box. Nothing is wrong. Here's what it looks like
and how to get past it.
Microsoft Defender SmartScreen prevented an unrecognised app from starting. Running this app might put your PC at risk.
More info
SmartScreen warns about any program it hasn't seen many people run before. Publishers avoid it by buying a code-signing certificate — a few hundred dollars a year, renewed forever. HopperDock is free and made by one person, so it doesn't have one. That's the whole story: the warning is about a missing receipt, not about anything found in the app.
Fair enough — you're downloading an .exe from the internet. Any of these are reasonable:
| If you want to… | Do this |
|---|---|
| Check the file is the real one | Compare its SHA-256 against the one below. Run
Get-FileHash HopperDock.exe in PowerShell. |
| Have it scanned by ~70 antivirus engines | Upload it to VirusTotal — free, no account. |
| Skip the .exe entirely | Run it from source instead. It's one readable Python file you can look through first — see the other install option above. |
| Read what it actually does | All the code is right here. It's MIT licensed. |
SHA-256 — HopperDock.exe v1.5.3
00EA314CDBB5FB8914F279862A10B29A8D0CBEE17BD1DE5977048F68C5C05EED
Don't want it any more? Delete the .exe, then delete
%USERPROFILE%\WindowDock\. If you turned on Start on Login,
turn it off from the bunny menu first — that's the one thing it writes
outside its own folder.
Arrange your windows how you like them. Right-click layout
slot 1 → Save Layout Here. That's it — clicking 1
later puts everything back, including anything that was minimized.
Right-click again to Rename it to something like “Streaming”, or give it
an icon.
Layouts find your windows by their title. So an app has to be open for its window to be moved back — and apps that rename their own title bar (a music player showing the current track) can drift. Re-save the slot if that happens.
The fastest way to fill it up. What you drop decides what you get:
| Drop this | You get |
|---|---|
| A file or shortcut | A pinned app icon at the bottom of the dock — an .exe, a
.lnk from your Start Menu, a script, anything.
It arrives wearing the app's own icon, pulled straight
out of the program (Microsoft Store apps included). |
| A folder | A whole new category, with every file inside it added as a shortcut. The quickest way to build a group in one go. |
To put something in a specific category:
Shortcuts can point at almost anything:
| You point it at | What happens |
|---|---|
.exe / .lnk | Launches the program. |
.bat / .cmd | Runs the script. |
.py | Runs it with pythonw, no console window. |
.ps1 | Runs it through PowerShell. |
| A folder | Opens it in Explorer. |
A link like steam://run/250820 | Hands it to Windows — which is how the built-in SteamVR and sound-settings shortcuts work. |
Microsoft Store apps (Spotify, WhatsApp…) have no normal
Program Files path. Point at
C:\Users\<you>\AppData\Local\Microsoft\WindowsApps\Spotify.exe instead.
Already set up for VR. If you have the Oculus runtime installed, your VR category arrives with Oculus Mirror and the Debug Tool already in it, plus a Kill Stuck Game script for titles that don't close properly. If you don't have the runtime, those are quietly skipped rather than left as dead shortcuts.
Right-click the bunny → 📌 Pin to Edge. Windows now reserves that strip of screen, exactly like it does for the taskbar, so maximized windows stop at the dock instead of vanishing behind it. Vertical docks pin right; horizontal docks pin to the top.
Expected, and harmless — click More info then Run anyway. There's a full explanation with a checksum further up the page if you'd like to verify the download first.
Occasionally an engine flags PyInstaller-built apps generically, because malware authors also use PyInstaller — it's the packaging method being recognised, not the program. Verify with the SHA-256, scan it on VirusTotal, or just run it from source instead.
Run run_dock_visible.bat to see the error, and check the log at
%USERPROFILE%\WindowDock\logs\window_dock.log.
Windows are matched by title, so the app has to be open and showing roughly the same title. If a program was closed, it can't be restored — reopen it and re-save the layout.
The dock is floating rather than pinned. Right-click the bunny → 📌 Pin to Edge.
Its Window Title doesn't match the real window. Right-click the icon → Edit and either correct it or clear the field. Clearing it is the right move for apps that rewrite their own title bar, like media players.
They're probably running as administrator. Windows won't let a normal program move an elevated one — run HopperDock as administrator too, and it can.
The optional drag-and-drop package isn't installed. Run
pip install tkinterdnd2 and restart. Everything else works without it.