Windows and WSL Setup
Meridian runs from a Unix-like terminal. On Windows, use Windows Subsystem for Linux (WSL) and run Meridian inside the Linux environment.
Native PowerShell, Command Prompt, Git Bash, and Cygwin are not the recommended path for Meridian. WSL gives you the same shell, SSH, and filesystem behavior as Linux, which matches the rest of the documentation.
Install WSL
Section titled “Install WSL”Open PowerShell as Administrator and install WSL:
wsl --installRestart if prompted, then open the installed Linux distribution from the Start menu.
Ubuntu is the safest default because Meridian targets Debian and Ubuntu servers, and most examples use apt package names. If you already have Debian installed in WSL, that works too.
Check that WSL is using version 2:
wsl --list --verboseIf your distribution shows version 1, convert it:
wsl --set-version Ubuntu 2Prepare the WSL shell
Section titled “Prepare the WSL shell”Inside the WSL terminal, update packages and install basic tools:
sudo apt updatesudo apt install -y curl openssh-client ca-certificatesInstall Meridian:
curl -sSf https://getmeridian.org/install.sh | bashRestart the WSL terminal or reload your shell profile if meridian is not found immediately:
exec "$SHELL" -lVerify the install:
meridian --versionSet up SSH keys
Section titled “Set up SSH keys”Meridian connects from WSL to your VPS over SSH. Generate the key inside WSL:
ssh-keygen -t ed25519 -C "meridian-wsl"Copy the public key:
cat ~/.ssh/id_ed25519.pubAdd that public key to your VPS provider or to the server user’s ~/.ssh/authorized_keys.
Test SSH before running Meridian:
ssh root@198.51.100.10If your VPS uses a non-root user, test that user instead and pass it to deploy:
meridian deploy 198.51.100.10 --user ubuntuUse an SSH agent
Section titled “Use an SSH agent”If your key has a passphrase, start an agent inside WSL:
eval "$(ssh-agent -s)"ssh-add ~/.ssh/id_ed25519Add those commands to ~/.profile or ~/.bashrc only if you understand the security tradeoff. Starting the agent manually is fine for most first deployments.
Avoid mixing Windows and WSL SSH agents while getting started. Keep the key and agent inside WSL until deployment works.
Run Meridian from WSL
Section titled “Run Meridian from WSL”Run the normal deployment flow from the WSL terminal:
meridian deployOr provide the server IP directly:
meridian deploy 198.51.100.10Meridian stores credentials under ~/.config/meridian/ inside WSL. Run follow-up commands from the same WSL distribution so it can find the cached server credentials:
meridian client add alicemeridian client listmeridian test 198.51.100.10VS Code Remote WSL
Section titled “VS Code Remote WSL”If you use VS Code, install the “WSL” extension and open the Meridian workspace from WSL:
code .Files edited through Remote WSL live in the Linux filesystem, which avoids path and permission issues. Prefer a path under your WSL home directory, such as ~/projects, instead of editing Meridian state or SSH keys through /mnt/c/.
Common gotchas
Section titled “Common gotchas”The wizard appears to skip a prompt
Section titled “The wizard appears to skip a prompt”Some interactive terminal prompts can behave differently under WSL. If the deploy wizard does not accept input as expected, provide values explicitly:
meridian deploy 198.51.100.10 --sni www.cloudflare.comYou can also check the server first:
meridian check 198.51.100.10Permission denied over SSH
Section titled “Permission denied over SSH”Confirm the key exists in WSL, not only in Windows:
ls -la ~/.sshssh -v root@198.51.100.10The private key should be readable only by your WSL user:
chmod 700 ~/.sshchmod 600 ~/.ssh/id_ed25519Meridian was installed but the command is missing
Section titled “Meridian was installed but the command is missing”Reload your shell:
exec "$SHELL" -lIf it still is not found, check common uv and local binary paths:
ls ~/.local/binAdd ~/.local/bin to your shell profile if needed:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrcexec "$SHELL" -lWindows paths cause permission problems
Section titled “Windows paths cause permission problems”Keep SSH keys, Meridian credentials, and project files in the WSL filesystem:
cd ~mkdir -p projectsAvoid storing ~/.ssh or ~/.config/meridian under /mnt/c/. Windows-mounted paths can have different permissions, which SSH rejects.
Next steps
Section titled “Next steps”- Getting Started — deploy your first server
- Installation — CLI install options
- Troubleshooting — common deployment and connection issues
