Skip to content

feat(coding-agent): add Windows PowerShell installer - #716

Closed
Villoh wants to merge 3 commits into
PrimeIntellect-ai:mainfrom
Villoh:feat/windows-powershell-installer
Closed

feat(coding-agent): add Windows PowerShell installer#716
Villoh wants to merge 3 commits into
PrimeIntellect-ai:mainfrom
Villoh:feat/windows-powershell-installer

Conversation

@Villoh

@Villoh Villoh commented Aug 6, 2026

Copy link
Copy Markdown

Summary

Adds an official PowerShell installer for Windows with the same verified stable/beta release flow and terminal experience as install.sh.

Windows users can install Prime Agent with:

irm https://app.primeintellect.ai/prime-agent/install.ps1 | iex

Change

  • Add install.ps1 with Node.js/npm and bash preflight checks.
  • Offer Node.js LTS and Git for Windows installation through winget when required.
  • Resolve stable, beta, or explicit versions and verify downloaded release tarballs with SHA-256.
  • Port the responsive Prime Agent splash, progress animation, prompts, compact layout, and terminal restoration from install.sh.
  • Publish stable and beta PowerShell installers through the existing R2 release workflow.
  • Document Windows installation and add an unreleased changelog entry.

The existing shell installer and macOS/Linux release flow are unchanged.

Regression coverage

The installer check runs the real PowerShell functions with controlled HTTP responses and fake Node/npm executables. It verifies:

  • PowerShell 5.1 and PowerShell 7 compatibility.
  • Stable and beta installer rendering.
  • Exact visual frame parity with install.sh.
  • Responsive and compact terminal layouts.
  • SHA-256 verification and npm installation arguments.
  • Bash discovery through existing Prime Agent settings.
  • Plain output when terminal control sequences are unavailable.

Validation

  • npm run check
  • npm run check:installer
  • Invoke-ScriptAnalyzer -Path ./install.ps1 -Severity Warning,Error

Note

Medium Risk
Touches the production release publish path and runs privileged global installs (npm/winget) on user machines, though behavior is isolated to Windows and covered by installer regression tests.

Overview
Adds a Windows PowerShell installer (install.ps1) that mirrors the verified stable/beta release flow from install.sh: channel resolution, tarball download, SHA-256 checks, and global npm install, with optional Node.js LTS, Git for Windows, and IPython runtime setup via winget.

The release workflow now renders and uploads install.ps1 / install-beta.ps1 to R2 next to the shell installers. CI gains scripts/check-windows-installer.mjs (wired into check:installer) for render parity with install.sh, layout checks, and a mocked end-to-end install path. README and coding-agent docs document the PowerShell one-liners and Windows bash requirements.

Reviewed by Cursor Bugbot for commit 9443031. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add Windows PowerShell installer for Prime Agent

  • Adds install.ps1, a PowerShell installer that downloads and verifies SHA-256 checksums before running npm install -g on the versioned tarball.
  • The installer detects or installs prerequisites (Node.js LTS and Git for Windows) via winget, and renders a TUI when the terminal supports ANSI sequences.
  • The CI release workflow in build-binaries.yml now publishes install.ps1 and install-beta.ps1 to the R2 bucket alongside the existing shell installers.
  • Adds scripts/check-windows-installer.mjs for automated validation of rendering and end-to-end execution, integrated into npm run check:installer.
  • Updates README and docs with Windows installation instructions.

Macroscope summarized 9443031.

Comment thread install.ps1 Outdated
Comment thread install.ps1
Comment thread scripts/check-windows-installer.mjs Outdated
@Villoh

Villoh commented Aug 6, 2026

Copy link
Copy Markdown
Author

Addressed all three Bugbot findings in 724d4a7c:

  • Native npm/winget execution now uses ProcessStartInfo in plain mode, so successful stderr output cannot become a terminating PowerShell error.
  • Documentation now invokes the downloaded installer through an isolated scriptblock instead of iex; regression coverage verifies preferences, strict mode, and functions do not leak into the caller scope.
  • Kernel bootstrap coverage now requires the exact KERNEL=0 state and fails for KERNEL=1.

Added successful-stderr regression coverage and reran npm run check, npm run check:installer, and Invoke-ScriptAnalyzer.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 724d4a7. Configure here.

Comment thread install.ps1 Outdated
Comment thread scripts/check-windows-installer.mjs
@Villoh

Villoh commented Aug 6, 2026

Copy link
Copy Markdown
Author

Addressed both Cursor Bugbot findings in 9443031:

  • Removed UTF-8 BOM from install.ps1, which broke the documented ScriptBlock::Create((irm ...)) path.
  • Updated Windows installer regression coverage to inspect raw UTF-8 bytes, assert BOM-free installer output, and avoid Get-Content -Raw masking parse failures.

Reran npm run check and npm run check:installer; both pass.

zhengr pushed a commit to zhengr/prime-agent that referenced this pull request Aug 8, 2026
…ctions to system prompt (PrimeIntellect-ai#716)

Co-authored-by: Jian Zhang <jzhang@yanhuangdata.com>
@BILLKISHORE

Copy link
Copy Markdown

This collides with #744, which also adds install.ps1 and scripts/check-windows-installer.mjs as new files. The two are independent implementations rather than one derived from the other: this one is about 870 lines and bootstraps Node.js and Git for Windows through winget, while #744's is about 155 lines with no dependency bootstrap. Both verify SHA-256. They cannot both merge, and neither thread mentions the other, so it seems worth flagging before either gets further review.

Two things this branch gets right that are easy to get wrong:

Extending check:installer in the root package.json rather than adding a standalone script means check-windows-installer.mjs actually runs under npm run check. A new check script that never runs in CI rots quietly.

Assert-PrimeAgentChecksum reads the expected digest out of SHA256SUMS, normalises case on both sides, and throws on mismatch rather than warning, and Install-WithWinget fails with an actionable message when winget is absent instead of continuing.

I have not run this on Windows; the above is from reading the diff.

Copy link
Copy Markdown
Member

Hi, thanks for taking the time to contribute to Prime Agent! Since open sourcing the project, we’ve received far more pull requests than we can responsibly review and validate. Prime Agent runs directly on users’ machines, so we need to be deliberate about which changes we accept and how they are reviewed. Rather than leave a large backlog that we cannot meaningfully work through, we’re closing the current PR queue and moving to a discussion-first contribution process.

We have established new contribution guidelines to help us continue iterating on Prime Agent and better manage contributions from the community. Going forward, we won’t review unsolicited pull requests. Instead, please start with a GitHub Discussion. We’ll identify recurring bugs and feature requests, create Issues for work we want to pursue, and invite pull requests from maintainers or vouched contributors when implementation is ready. Please read the full process documented in our contribution guidelines.

While we’re closing this backlog, we’re still reviewing it at a high level to identify recurring bugs, useful ideas, and important problems that we should address ourselves. Thanks again for the time you put into this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants