Install NightMe on Windows
PowerShell 5.1 (built-in) and PowerShell 7+ both work. No admin rights required for a per-user install.
PowerShell 5.1 (built-in) and PowerShell 7+ both work. No admin rights required for a per-user install.
On Windows the installer is shipped as install.ps1 — a single-file script that mirrors the macOS/Linux installer's behaviour (download release, verify SHA256, drop the binary, patch PATH).
TL;DR
From a regular PowerShell prompt:
irm https://nightme.dev/install.ps1 | iex
nightme login feishu
nightme start
irm is the alias for Invoke-RestMethod; iex is Invoke-Expression. The pipe streams the script body straight into the shell, so no temp file is written and nothing is left on disk after install.
If your PowerShell execution policy blocks the pipe (... cannot be loaded because running scripts is disabled on this system), run this once for your user and try again:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
-Scope CurrentUser writes to HKCU:\...\Shell\ScriptExecutor, so no admin elevation is needed and the change doesn't affect other users on the box.
What the installer does
- Calls
Invoke-RestMethod https://api.github.com/repos/cnlangzi/nightme/releases/latestto find the latest tag. - Downloads
nightme_<version>_windows_<goarch>.zipfrom the release'sassetslist and checks the SHA256 againstSHA256SUMS.txt. - Extracts
nightme.exeinto%USERPROFILE%\.nightme\bin\. - Persists that directory on the user
PATHvia[Environment]::SetEnvironmentVariable('Path', …, 'User'). The session-levelPATHis updated in the same step so the current shell sees it too — no need to open a new terminal.
nightme.exe is the only binary you need; no DLLs, no Visual C++ runtime to install.
Pinning a version
$env:NIGHTME_VERSION = 'v0.3.0'
irm https://nightme.dev/install.ps1 | iex
Same env-var name as the bash installer, so scripts that flip the version for a fleet stay portable across platforms.
Custom install directory & PATH control
$env:NIGHTME_INSTALL_DIR = 'C:\Tools\nightme'
irm https://nightme.dev/install.ps1 | iex
If you manage PATH via Chocolatey, Scoop, or a corporate image, skip the rc edit by setting $env:NIGHTME_NO_PATH_UPDATE = '1' before the pipe. The binary still lands in the install dir; you decide how it gets onto PATH.
Other flags
| Flag | What it does |
|---|---|
-Check |
Print installed vs latest version; non-zero exit if an update is available. Useful in scheduled tasks. |
-Force |
Reinstall even when the on-disk version matches latest. |
-Uninstall |
Remove the binary and the user-level PATH entry. |
-Help |
Show all flags and env vars. |
WSL note
If you develop inside WSL, install on the Linux side, not the Windows side — the daemon listens on localhost inside the WSL distro and the Feishu login flow expects to talk to a Unix socket. See Install NightMe on macOS & Linux and use the bash installer inside your distro.
Verify it worked
nightme --version
nightme doctor
doctor walks PATH, the daemon port, your IM token, and the agent CLI presence. If any check fails, its output points to the exact fix.
What's next
Connect Feishu walks through the QR-code login, then Run your first agent session puts the daemon through a real task.