As an open-source project, PowerShell/openssh-portable has picked up 2.0k stars on GitHub (C). Portable OpenSSH, all Win32-OpenSSH releases and wiki are managed at https://github.com/powershell/Win32-OpenSSH
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
.github/ — AI-Assisted Development for OpenSSH-Portable (Windows Fork)
This folder contains everything needed to work on the PowerShell team's
Windows fork of OpenSSH-Portable with AI assistance in VS Code (GitHub
Copilot Chat / agent mode). It bundles together agents, prompts,
instructions, skills, and a set of PowerShell tools exposed as
an MCP server so that complex workflows (especially upstream merges)
can be driven mostly by an AI agent with a human reviewer in the loop.
If you are new here, read the Overview first, set up the
MCP server, then jump to
Merging from upstream for the most common
workflow.
Overview
What lives in .github/
Folder
Purpose
agents/
Custom Copilot agent modes — pre-configured personas with curated tool access for specific workflows.
prompts/
Reusable prompt templates that kick off a workflow with the right inputs and context.
instructions/
Instructions auto-loaded into agent context (via applyTo globs) describing repo conventions, build process, merge strategy, testing, etc.
skills/
Self-contained skill packages the agent can invoke for narrow, repeatable tasks (e.g. bumping a vcpkg port).
tools/
PowerShell scripts exposed through the MCP server as callable tools (build, test, git, merge orchestration, vcpkg).
workflows/
GitHub Actions workflows (CI). Not AI-related.
How the pieces fit together
┌────────────────────────────────────────────────────────────────┐
│ VS Code + GitHub Copilot (chat / agent mode) │
│ │
│ ├─ loads instructions/*.md (auto, by applyTo) │
│ ├─ can switch into an agent from agents/*.agent.md │
│ ├─ can be launched via a prompt from prompts/*.prompt.md │
│ ├─ can invoke skills from skills/*/SKILL.md │
│ └─ can call MCP tools ──────────────────┐ │
└───────────────────────────────────────────┼────────────────────┘
▼
┌─────────────────────────────┐
│ MCP server (openssh-server)│
│ defined in .vscode/mcp.json│
│ runs PowerShell from │
│ .github/tools/*.ps1 │
└─────────────────────────────┘
Repository setup
Follow instructions/setup.instructions.md
end-to-end. It covers cloning the fork, configuring the upstream and
upstream-pwsh remotes, prerequisites (Visual Studio + Windows SDK), and
cloning + bootstrapping vcpkg via
Install-VcpkgDependencies.ps1.
For the vendored dependency model itself, see
instructions/vcpkg.instructions.md.
Once setup is complete, do a baseline build per
instructions/build.instructions.md.
MCP server setup (.vscode/mcp.json)
The PowerShell scripts in tools/ are exposed to Copilot via
a small MCP (Model Context Protocol) server so the agent can call them as
first-class tools (mcp_openssh-server_Start_OpenSSHBuild,
mcp_openssh-server_Invoke_Git, etc.).
1. Install the MCP host module
The server is hosted by the MCPServerPS PowerShell module, which wraps
each .ps1 in -ScriptRoot as an MCP tool.
To install the module, run the following command:
This repo already ships a working .vscode/mcp.json at the repo root. It uses a
repo-relative ScriptRoot, so it works out of the box when VS Code is opened at
the repository root — no editing required in that case:
Path note: The relative ./.github/tools path resolves against the
workspace root, so it works as-is when you open this repository as the VS Code
workspace. Only switch to an absolute path (e.g.
C:\repos\openssh-portable\.github\tools) if you run the server from a
different working directory or a multi-root workspace where the relative path
does not resolve.
3. Start the server in VS Code
Open the MCP: List Servers command (Command Palette).
Start openssh-server. You should see the tools become available to
Copilot Chat (their names are prefixed with
mcp_openssh-server_, e.g. mcp_openssh-server_Invoke_Git).
In agent mode, the agent will discover and call them automatically.
4. Available MCP tools
All tools are PowerShell scripts under tools/. They are
documented in detail inside their respective instruction files; here's a
quick map:
Tool (MCP name)
Script
What it does
mcp_openssh-server_Test_MergePrerequisites
Test-MergePrerequisites.ps1
Verify environment + remotes are ready for a merge.
mcp_openssh-server_Get_CommitGroups
Get-CommitGroups.ps1
Group upstream commits into mergeable batches by CI presence/success.
mcp_openssh-server_Get_RemainingCommitCount
Get-RemainingCommitCount.ps1
Count commits remaining between a start ref and the end tag/HEAD (merge progress).
mcp_openssh-server_Invoke_Git
Invoke-Git.ps1
Structured wrapper around git operations (Status, Merge, Diff, Checkout, …).
mcp_openssh-server_Get_ConflictContext
Get-ConflictContext.ps1
Three-way diff context for high-complexity merge conflicts.
mcp_openssh-server_Test_MergeConflictMarkers
Test-MergeConflictMarkers.ps1
Scan the working tree for leftover conflict markers (<<<<<<<, =======, >>>>>>>) and unmerged paths.
mcp_openssh-server_Sync_VersionResource
Sync-VersionResource.ps1
Sync contrib/win32/openssh/version.rc numbers to version.h after a version bump.
mcp_openssh-server_Start_OpenSSHBuild
Start-OpenSSHBuild.ps1
Build the Win32-OpenSSH solution. Defaults to the host architecture.
mcp_openssh-server_Test_OpenSSHBuild
Test-OpenSSHBuild.ps1
Parse the most recent build log for errors and warnings.
mcp_openssh-server_Test_OpenSSHFunctionality
Test-OpenSSHFunctionality.ps1
End-to-end smoke test (install service, connect, cleanup).
mcp_openssh-server_Invoke_OpenSSHTests
Invoke-OpenSSHTests.ps1
Full CI suite (unit + bash + Pester E2E).
mcp_openssh-server_Install_VcpkgDependencies
Install-VcpkgDependencies.ps1
Bootstrap vcpkg and install vendored deps. Also runnable directly from a terminal for first-time setup.
mcp_openssh-server_Update_VcpkgPort
Update-VcpkgPort.ps1
Bump a vendored vcpkg port. Orchestrated by the update-vcpkg-port skill.
Instructions, agents, prompts, and skills
Instructions (instructions/)
Markdown files with YAML frontmatter that the agent loads automatically
based on applyTo globs. They encode the conventions and workflows of
this repo so you don't need to repeat them in every prompt.
General:
repository-overview.instructions.md — repo layout + Windows compatibility layer
agent-communication.instructions.md — how the agent should talk to you
Merge-specific (under instructions/merge/):
merge-process-overview.instructions.md — the two-phase workflow end-to-end
merge-details.instructions.md — conflict resolution patterns + decision trees
research.instructions.md — what to read before merging (release notes, prior PRs)
agent-communication-merge.instructions.md — communication templates for batches
Agents (agents/)
Custom Copilot agent modes with curated tool sets and a system prompt
tuned to a workflow.
merge-upstream.agent.md — drives
the upstream merge workflow end-to-end (analysis → batch merges →
build → test → PR prep). Switch to it from the Copilot Chat agent
picker.
conflict-review.agent.md —
review-only subagent the merge agent delegates to after resolving a
batch's conflicts. Audits resolutions for leftover markers, prefer-
upstream bias, balanced Windows guards, silently auto-merged changes
needing Windows follow-up, and version sync; returns APPROVE or
CHANGES-REQUIRED.
Prompts (prompts/)
Reusable prompt templates with documented inputs.
merge.prompt.md — kicks off a merge with
the right context. Provide a start ref (and optionally end ref,
remotes, validation scenario), and the agent handles the rest.
Skills (skills/)
Self-contained workflow skills the agent reads on demand.
update-vcpkg-port — bump a
vendored vcpkg dependency (LibreSSL, libfido2, libcbor, zlib) with
all the side effects (overlay portfile SHA512, LibreSSL resource
patch) handled correctly.
resolve-merge-conflict —
conflict-resolution procedure for upstream merges (prefer-upstream +
adapt for Windows, strategy preference order, silent auto-merge
hunting, regress-test and version-resource sync) plus how to summarize
the resolutions for the pull request.
merge-retrospective — run
after a merge PR lands to capture new conflict-resolution patterns and
feed lessons back into the instructions, skills, agents, and tools.
Merging from upstream
Merging from openssh/openssh-portable is the headline workflow this
folder is built around. It uses a two-phase approach (all incremental
merges, conflict resolution, build fixes, and validation happen on a
scratch branch; then a real merge branch is created from the same
starting commit, a single git merge of the upstream target is
performed, and any conflicts are resolved by copying the resolved files
from the scratch branch). This preserves upstream commit history
exactly. The full workflow lives in
instructions/merge/merge-process-overview.instructions.md;
conflict-resolution patterns are in
merge-details.instructions.md;
background reading is in
research.instructions.md.
Driving the merge with AI (recommended)
Make sure the MCP server is running.
In Copilot Chat, switch to the merge-upstream agent
(agents/merge-upstream.agent.md).
Invoke the merge prompt
(prompts/merge.prompt.md) with at minimum
a start ref — see that file for the full input list and examples.
Follow the phase checklist, use the tools under tools/,
and surface documented blockers for human guidance when needed.
Approve each batch summary the agent presents; at the end, push the
real branch and open the PR.
Driving the merge manually
Follow
merge-process-overview.instructions.md
phase by phase. Refer to the repository setup,
build, and
testing instructions as needed.
Validation
Default validation is end-to-end via
mcp_openssh-server_Test_OpenSSHFunctionality. The full CI suite is
documented in
instructions/testing.instructions.md.
Other AI-assisted workflows
Bumping a vendored vcpkg dependency
Use the update-vcpkg-port skill.
Ask Copilot something like "Bump LibreSSL to 4.1.1 using the
update-vcpkg-port skill." The skill orchestrates
Update-VcpkgPort.ps1 (manifest, overlay
portfile SHA512, LibreSSL resource patch), validates via
Install-VcpkgDependencies.ps1,
then builds to confirm.
Building / testing / debugging
Even outside a merge, the MCP tools are useful day-to-day. See
build.instructions.md and
testing.instructions.md for
the full parameter reference of Start-OpenSSHBuild,
Test-OpenSSHBuild, Test-OpenSSHFunctionality, and
Invoke-OpenSSHTests.
Does PowerShell/openssh-portable have a project website?
No homepage URL was recorded for PowerShell/openssh-portable in TopGit's last sync. The README tab above frequently contains screenshots and demo links, or check the repository description on GitHub.
How many stars does PowerShell/openssh-portable have?
PowerShell/openssh-portable has 2.0k GitHub stars — refresh the page for the live number, or check github.com/PowerShell/openssh-portable. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is PowerShell/openssh-portable open source?
TopGit's metadata for PowerShell/openssh-portable does not record a license. Most public repositories on GitHub ARE open source, but the exact terms vary — verify by opening the LICENSE file directly.
What is PowerShell/openssh-portable?
PowerShell/openssh-portable (PowerShell/openssh-portable) is a C project on GitHub. From the project's own README: Portable OpenSSH, all Win32-OpenSSH releases and wiki are managed at https://github.com/powershell/Win32-OpenSSH
Where do I read more about PowerShell/openssh-portable?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/PowerShell/openssh-portable is the definitive source.
Read full README in the tab above.
Still deciding about openssh-portable?
One click hands the question to an AI along with this page — see what it says about openssh-portable.