v0.1.0 — Core Working Tool

Move all your windows
to one display

A fast, lightweight Windows CLI utility for multi-monitor setups. Gather scattered windows instantly. Undo anytime.

$ cargo install herd
PowerShell

One tool, one job,
done right

Herd solves the one annoying problem every multi-monitor user knows — windows scattered across displays you've unplugged.

🐑

Instant Herd

Run herd and every visible window moves to your primary display. One command, zero fuss.

🖥️

Target Any Display

Pick any monitor with --display N. Herd to your ultrawide, your portrait display, or whichever screen you need.

Undo Anytime

Every herd saves a snapshot. Run herd undo to restore all windows to their original positions and sizes.

👀

Dry Run

Preview before you commit. --dry-run shows exactly what would happen without touching a single window.

📐

DPI Aware

Per-Monitor DPI v2 awareness means windows look right on mixed-DPI setups. No blurry text, no wrong sizes.

🪟

Smart Filtering

Only moves real app windows. Ignores system trays, desktop, UWP shells, and other background noise.

Simple by design

No config files, no setup. Just run the command you need.

1

Herd all windows

$ herd

 Found 3 displays
 Moving 12 windows → Display 1 (primary)
 Snapshot saved
Done! All windows herded 🐑
The default command moves all visible application windows to your primary display using a cascade layout.
2

List displays & windows

$ herd list

Display 1 (primary) — 2560×1440
  5 windows
Display 2 — 1920×1080
  3 windows
Display 3 — 1920×1080
  4 windows
See which displays are connected and how many windows live on each one.
3

Preview with dry run

# See what would happen, no changes made
$ herd --dry-run

[DRY RUN] Would move 8 windows
  "VS Code" → Display 1
  "Firefox" → Display 1
  "Slack" → Display 1
  ...
Check what herd would do before making any changes. Pair with --display N to preview targeting a specific monitor.
4

Undo — go back

# Restore windows to where they were
$ herd undo

 Restoring 12 windows from snapshot
 "VS Code" → Display 2
 "Firefox" → Display 1
Done! Windows restored to previous positions
Every herd automatically saves a snapshot. Undo restores both position and size — even across mixed-DPI monitors.

Where we're going

Herd does one thing well today. Here's what's coming next.

v0.1.0

Released
Core Working Tool
Monitor enumeration Window filtering Herd to primary Target display Snapshot & undo Dry run DPI awareness herd list

v0.2.0

Up Next
Polish & Distribution
GitHub Actions CI Automated releases winget manifest Scoop bucket PowerShell tab completion --quiet flag --json output Landing page

v0.3.0

Planned
Advanced Features
Cascade / Tile / Stack layouts herd from <N> Named profiles System tray mode Global hotkeys Config file

v0.4.0

Planned
Automation
Auto-herd on disconnect Auto-herd on connect Task Scheduler integration PowerShell module Plugin system

Help shape Herd

Found a bug? Have an idea? Want to contribute? We'd love to hear from you.

View All Issues on GitHub

Support the project

If Herd saves you time, consider supporting its development.