PowerShell/openssh-portable hiện có 2.0k sao trên GitHub, viết chủ yếu bằng C. Portable OpenSSH, all Win32-OpenSSH releases and wiki are managed at https://github.com/powershell/Win32-OpenSSH
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
.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.
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/PowerShell/openssh-portable là nguồn chính thức.
PowerShell/openssh-portable có bao nhiêu sao?
PowerShell/openssh-portable có 2.0k sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/PowerShell/openssh-portable. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
PowerShell/openssh-portable có phải mã nguồn mở không?
TopGit chưa ghi nhận license cho PowerShell/openssh-portable. Phần lớn repo public trên GitHub là mã nguồn mở, nhưng điều khoản khác nhau từng repo — mở file LICENSE để xác nhận.
PowerShell/openssh-portable có website riêng không?
TopGit chưa ghi nhận URL trang chủ cho PowerShell/openssh-portable. Phần README ở tab phía trên thường có link demo, hoặc xem mô tả GitHub của repo.
PowerShell/openssh-portable là gì?
PowerShell/openssh-portable (PowerShell/openssh-portable) là dự án C trên GitHub. Theo mô tả gốc: Portable OpenSSH, all Win32-OpenSSH releases and wiki are managed at https://github.com/powershell/Win32-OpenSSH
Đọc đầy đủ README ở tab phía trên.
Muốn nghe thêm một ý kiến về openssh-portable?
Hỏi một AI đọc được trang này — một cú bấm là có ngay nhận định về openssh-portable.