fix(runpodctl): correct the windows install command - #805
Open
justinwlin wants to merge 1 commit into
Open
Conversation
wget in PowerShell is an alias for Invoke-WebRequest, which has no -O parameter, and -O is an ambiguous prefix of -OutFile, -OutVariable, -OutBuffer and -OperationTimeoutSeconds. The documented command failed instead of downloading. Also installs to %LOCALAPPDATA%\runpodctl and adds it to PATH, so Windows users get a working runpodctl like the macOS and Linux tabs already do, and adds the arm64 variant. Matches the runpodctl README and skill install guide. Upstream: runpod/runpodctl#311
Contributor
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
justinwlin
marked this pull request as draft
August 19, 2026 18:26
justinwlin
marked this pull request as ready for review
August 19, 2026 18:55
lukepiette
reviewed
Aug 19, 2026
| Invoke-WebRequest -UseBasicParsing -Uri https://github.com/runpod/runpodctl/releases/latest/download/runpodctl-windows-amd64.zip -OutFile "$env:TEMP\runpodctl.zip" | ||
| Expand-Archive -Force -Path "$env:TEMP\runpodctl.zip" -DestinationPath $dest | ||
| $userPath = [Environment]::GetEnvironmentVariable('Path', 'User') | ||
| if ($userPath -notlike "*$dest*") { |
Contributor
There was a problem hiding this comment.
Could we compare complete PATH entries rather than using a wildcard substring in both architecture snippets? $userPath -notlike "*$dest*" treats a path such as ...\runpodctl-old as though $dest is already installed, and wildcard characters in the expanded path are interpreted as pattern syntax. A missing User PATH also produces a leading empty entry.
Splitting on ;, dropping empty entries, and using -notcontains $dest avoids these cases:
$userPath = [Environment]::GetEnvironmentVariable('Path', 'User')
$pathEntries = @($userPath -split ';' | Where-Object { $_ })
if ($pathEntries -notcontains $dest) {
[Environment]::SetEnvironmentVariable(
'Path',
(($pathEntries + $dest) -join ';'),
'User'
)
}
lukepiette
approved these changes
Aug 19, 2026
lukepiette
left a comment
Contributor
There was a problem hiding this comment.
Approving. The PATH-entry comment is a non-blocking robustness improvement.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Windows install command on runpodctl/overview fails.
wgetin PowerShell is an alias forInvoke-WebRequest, which has no-Oparameter.-Ois an ambiguous prefix of-OutFile,-OutVariable,-OutBufferand-OperationTimeoutSeconds, so PowerShell errors out instead of downloading:The snippet was also fenced as
bashwhile containing a PowerShell command.What changed
Invoke-WebRequestwith the full-OutFilename, which works on both Windows PowerShell 5.1 and PowerShell 7+ (7 removed thewgetalias entirely).%LOCALAPPDATA%\runpodctland adds it toPATH, so Windows users get a workingrunpodctlcommand like the macOS and Linux tabs already provide. The old snippet dropped a bare exe in the current directory, so you had tocdthere and type.\runpodctl.exe.Verified both release zips contain
runpodctl.exeat the root, so the-DestinationPathandPATHentry are correct.Reads the User
PATHrather than$env:Path: the latter is the processPATHand includes the machine entries, so writing it back into the user variable would copy the systemPATHinto it permanently. The-notlikeguard keeps a re-run from appending a duplicate, and-UseBasicParsingavoids the "internet explorer engine is not available" failure on fresh Windows PowerShell 5.1 installs.Not verified on Windows — I have no Windows machine or CI runner. The syntax matches the install guide already shipped in the runpodctl skill.
Related PRs
Two independent groups. Nothing in one blocks anything in the other.
Group A — the Windows install command (runpod/runpodctl#311)
One broken command that had been copy-pasted into three repos. Each PR fixes its own copy; any order, no dependencies.
README.md— fix the command, and install toPATHrunpodctl/overview.mdx— same fix on docs.runpod.ioreference/install.md, the third copyGroup B — secure registry passwords (runpod/runpodctl#327)
Order matters. #51 documents a flag that does not exist on
mainuntil #329 merges, so it stays draft until then.--password-stdin, no-echo prompt, mutually exclusive flagsThe only thing the two groups share is that both touched the runpodctl skill, which is what prompted Group A's deletion: the skill had been keeping its own copy of install instructions the runpodctl README already owned.