A Windows startup manager that launches your startup programs sequentially instead of all at once, reducing the boot-time resource stampede and preventing Windows from aborting startups due to the user starting programs at the same time. A modern replacement for Startup Delayer.
StartMe suppresses your normal Windows startup entries using the same mechanism as Task Manager (the StartupApproved registry keys), then launches each program one at a time, waiting for each to finish initializing before starting the next.
- Sequential launching — Programs start one at a time with CPU idle detection, so each app finishes loading before the next begins
- Multi-column UI — Automatically arranges entries into columns based on screen size
- Drag-and-drop reordering — Drag entries to control launch order
- Block persistent apps — Some apps re-add themselves to startup every time they run. The block feature re-suppresses them on every boot
- Per-session skip — Right-click to skip an entry for this session only
- Start now — Right-click to launch any individual entry immediately
- Error reporting — Failed launches show the error message inline and on hover
- Settings — Configurable column width, launch delay, auto-close behavior, overlay/desktop mode
- Overlay or desktop mode — Run as a borderless always-on-top overlay, or as a normal desktop window with taskbar entry
- UAC elevation — Installs with admin to suppress HKLM and WOW64 startup entries
HKCU\...\Run— Current user registry entriesHKLM\...\Run— Machine-wide registry entriesHKLM\...\WOW6432Node\...\Run— 32-bit app registry entries on 64-bit Windows- User Startup folder (
shell:startup) - Common Startup folder (
shell:common startup)
Startup folder shortcuts (.lnk) are launched via ShellExecuteW with the shortcut's working directory preserved.
Apps that use these startup mechanisms are not detected by StartMe and need to be managed through their own settings:
- Windows services (e.g., NVIDIA Display Container)
- UWP/Store app startup tasks (e.g., WhatsApp, Phone Link)
Apps that require admin elevation will still launch, but Windows will show a UAC prompt instead of silently auto-elevating like it does during normal startup. If you prefer silent elevation for these apps, use "Remove from StartMe" in the right-click menu to let Windows handle them normally.
- Windows 10/11
- Python 3.12+
pywin32andpsutilpackages
cd python
pip install pywin32 psutil
python -m startme --installThe --install command:
- Triggers a UAC prompt for admin access
- Suppresses all startup entries via
StartupApprovedregistry keys - Registers StartMe in
HKCU\...\Runto launch at logon
| Command | Description |
|---|---|
python -m startme |
Open the UI without launching anything (configure, reorder, block) |
python -m startme --launch |
Open the UI and launch all entries sequentially (used at logon) |
python -m startme --install |
Suppress startups and register for logon (with UAC elevation) |
python -m startme --uninstall |
Re-enable all startups and remove logon registration |
| Option | Effect |
|---|---|
| Start now | Launch this entry immediately |
| Skip this session | Don't launch this entry this time (resets next boot) |
| Remove from StartMe | Re-enable in registry, let Windows handle it normally |
| Remove from startup entirely | Keep suppressed even after --uninstall |
| Block (even if re-added) | Re-suppress on every boot, even if the app re-registers itself |
Click the gear icon to configure:
- Column width — Width of each column in pixels
- Max columns — Set to 0 for auto (fits entries to screen height)
- Delay between launches — Extra wait time between each app
- Auto-close — Automatically close the window after all launches complete
- Auto-close delay — How long to wait before closing
- Overlay mode — Borderless always-on-top (on) or normal desktop window (off)
Settings are stored in python/settings.json.
StartMe uses the StartupApproved registry keys — the same mechanism Windows Task Manager uses to disable startup entries. The original Run key entries are never modified.
| Registry path | Purpose |
|---|---|
...\StartupApproved\Run |
Controls HKCU/HKLM Run entries |
...\StartupApproved\Run32 |
Controls WOW6432Node Run entries |
...\StartupApproved\StartupFolder |
Controls startup folder shortcuts |
Each value is 12 bytes: byte 0 is 0x02 (enabled) or 0x03 (disabled), bytes 4-11 are a FILETIME timestamp.
StartMe detects when each program finishes initializing using:
WaitForInputIdle— Win32 API that waits until a GUI app's message loop is idle- CPU settle detection — Polls process CPU usage until it drops below threshold for 3 consecutive checks
- Quick-exit detection — If a process exits within 2 seconds (launcher/updater pattern), moves on immediately
Logs are written to python/startme.log with timestamps, covering startup, enumeration, suppression, and any errors.
A WPF (.NET 8) implementation is also included under src/StartMe/ but is less feature-complete than the Python version.
Built with the help of Claude Code.
MIT