Open-source project
PowerShell/vscode-powershell avatar
PowerShell/vscode-powershell

PowerShell for Visual Studio Code: Language Support and Debugging

Provides PowerShell language and debugging support for Visual Studio Code

1,917 stars552 forksTypeScriptMIT

At a glance

What is it?
PowerShell for Visual Studio Code is a TypeScript extension that adds PowerShell language services and debugging to VS Code. It suits script and module developers who want IntelliSense, Script Analyzer findings, navigation, and terminal execution, but its full feature set depends on having a supported PowerShell engine available.
Who is it for?
Adopt this extension if you develop PowerShell scripts or modules in VS Code and can provide PowerShell 7 or the limited Windows PowerShell 5.1 environment described in the documentation. Do not treat it as a full PowerShell environment in VS Code for the Web, which the README limits to basic syntax highlighting.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Why the PowerShell Extension Exists in VS Code

PowerShell for Visual Studio Code addresses a specific gap in a generic editor. VS Code can open a `.ps1` file, but the extension supplies PowerShell-aware language support, analysis, navigation, execution, and debugger integration. The intended users are people writing PowerShell scripts and modules, including developers who want an editor experience similar to the PowerShell ISE without leaving VS Code.

The repository describes this project as a Language Server Protocol client for VS Code. The language server is `PowerShellEditorServices`, which is also used by editors such as Emacs and Vim. That separation matters for adoption decisions. The VS Code extension is not the only implementation of the underlying editor services, and its feature set is partly tied to what the language server exposes in the current PowerShell environment.

The extension also includes an Extension Terminal that can interact with the debugger. The README specifically mentions `Set-PSBreakpoint` as an example of something to try there. This makes the extension relevant to both editing and interactive debugging rather than only syntax coloring.

The LSP Client and PowerShell Editor Services Split

The architecture has two visible layers. `vscode-powershell` is the VS Code client, written primarily in TypeScript, while `PowerShellEditorServices` provides the server side of the language experience. VS Code supplies the editor shell, extension host, terminal, and debugger interface. The language service supplies PowerShell-specific information that a plain text editor does not have.

The documented capabilities follow from that arrangement. IntelliSense covers cmdlets and other symbols. Go to Definition and Find References target cmdlets, variables, classes, and other referenced items. Document and Workspace Symbol Navigation and the Outline View are based on symbols. Problems reported by PowerShell Script Analyzer appear through VS Code's Problems interface. The extension can also launch online help for the symbol under the cursor with `Ctrl+F1`.

This design does not make the extension self-contained as a scripting runtime. The README says the extension should work where VS Code is supported using currently supported PowerShell 7 versions. For Windows PowerShell, only version 5.1 is supported and only on a best-effort basis. PowerShell execution therefore depends on the host operating system and the available engine.

Installing PowerShell for Visual Studio Code

The README gives two supported installation paths. Install the extension from the Visual Studio Code Marketplace, or open the Extensions view in VS Code with `Ctrl+Shift+X`, search for PowerShell, and select the extension. The marketplace identifier is documented as the following:

text
vscode:extension/ms-vscode.PowerShell

The Marketplace page is https://marketplace.visualstudio.com/items/ms-vscode.PowerShell. The repository also provides a Switch to Pre-Release Version button when a pre-release build is available. A Switch to Release Version button returns to the stable channel, while the arrow next to Uninstall can be used to install another version.

The listed package metadata requires VS Code `^1.114.0`. The package version is `2026.1.2`, and the repository lists `2026.1.2-preview` among recent releases. The README does not provide a shell installation command, so the Marketplace or Extensions view is the confirmed installation route.

After installation, create or open a PowerShell file in VS Code. Syntax highlighting should be available for PowerShell documents. Features that execute scripts or start debugging require a supported PowerShell installation.

A First Script, Terminal Run, and Debug Session

A practical first use is to open an existing `.ps1` file and inspect the PowerShell-specific editor feedback. The README documents syntax highlighting, snippets, IntelliSense, Problems from PowerShell Script Analyzer, definition and reference navigation, symbols, and the Outline View. Select a cmdlet or variable to see whether the corresponding navigation commands are available in the editor.

For a small execution check, use the documented Run Selected PowerShell Code in current terminal command. The README assigns it the keyboard shortcut `F8`. Put the cursor in the code to run, then press `F8`. The command is intended to run the selection in the current terminal, so the reader should see the selected PowerShell code execute in that terminal.

For debugging, the extension provides PowerShell Debugger integration and an Extension Terminal that can interact with the debugger. The README points to Microsoft documentation for debugging with VS Code and gives `Set-PSBreakpoint` as an example. It does not include a complete `launch.json` configuration, so the exact debug configuration fields should come from the linked debugging documentation rather than being guessed here.

The Extension Terminal is different from ordinary file editing. It is intended for interactive commands and debugger interaction, while `F8` is specifically tied to running selected code in the current terminal.

Platform Boundaries That Affect Feature Expectations

The clearest limitation is VS Code for the Web. The README says it supports only limited functionality, such as basic syntax highlighting, because the PowerShell engine cannot run in that environment. Web users should not expect the same execution, analysis, or debugging behavior as a local editor session.

Windows PowerShell 5.1 is also a boundary. It is supported only on a best-effort basis, and `.NET Framework 4.8` or higher is required. The project actively tests Windows configurations both with and without Constrained Language Mode. That confirms attention to Windows behavior, but the wording does not turn best-effort support into full parity with PowerShell 7.

Remote development is supported, including GitHub Codespaces and VS Code Server. The distinction is that the remote environment can provide a PowerShell engine where local VS Code for the Web cannot. The README does not claim that every feature behaves identically across local, remote, Windows, macOS, and Ubuntu setups. A team should therefore check the selected environment before assuming that a locally available command or debugger action will exist remotely.

Release Channels, Maintenance, and Upgrade Cost

The repository is not archived, and the last push was on 2026-08-21. Recent releases include `v2026.1.2-preview` on 2026-06-25, `v2026.1.1-preview` on 2026-05-16, and `v2026.1.0-preview` on 2026-04-08. The package metadata lists `2026.1.2` with `preview: false`, so the package manifest is not itself marked as a pre-release build.

The README recommends trying the pre-release version whenever possible and documents switching between pre-release and release channels. It also documents installing another version. This gives users a way to test a new build or return to a known release, although it does not quantify how many upgrades require configuration changes. The upgrade cost is likely to be most relevant to developers who depend on debugger behavior, remote environments, or PowerShell version constraints.

The project is licensed under the MIT License. That means the repository grants use under the MIT terms, but the extension also includes references to `PowerShellEditorServices`, PowerShell, VS Code, and other software with their own terms. The extension's MIT license should not be treated as a blanket statement about every dependency or external engine.

PowerShell in VS Code Compared with Other Editor Clients

The main alternative described by the README is not another VS Code extension. It is using `PowerShellEditorServices` through another editor such as Emacs or Vim. The underlying language server is available to those editors, while `vscode-powershell` adds VS Code-specific terminal, debugger, theme, and editor integration.

That difference affects the decision. A team standardized on VS Code gets the documented extension activation events, PowerShell debugging integration, `F8` execution, the Extension Terminal, and the bundled PowerShell ISE theme. A team using Emacs or Vim can use the same server but must rely on that editor's own user interface and integration behavior. The README does not claim that every VS Code feature exists in those clients.

A plain syntax-highlighting extension is also a different approach, but the repository does not name a specific competing extension. The documented distinction here is capability based: this project combines PowerShell-aware language services with VS Code execution and debugger integration, while a basic editor mode may only recognize file syntax.

Editorial conclusion

Adopt this extension if you develop PowerShell scripts or modules in VS Code and can provide PowerShell 7 or the limited Windows PowerShell 5.1 environment described in the documentation. Do not treat it as a full PowerShell environment in VS Code for the Web, which the README limits to basic syntax highlighting. Verify the target operating system, PowerShell version, extension channel, and debugging configuration first, especially if your workflow uses Windows PowerShell 5.1, Constrained Language Mode, or a remote VS Code environment.

Frequently asked questions

How do I install PowerShell for Visual Studio Code?

Install it from the Visual Studio Code Marketplace or open the Extensions view with `Ctrl+Shift+X`, search for PowerShell, and select the extension. The Marketplace identifier is `ms-vscode.PowerShell`.

Does PowerShell for Visual Studio Code support debugging?

Yes. The README lists PowerShell Debugger integration and an Extension Terminal that can interact with the debugger, including commands such as `Set-PSBreakpoint`.

Can I run PowerShell in VS Code for the Web?

The README limits VS Code for the Web to limited functionality such as basic syntax highlighting because the PowerShell engine cannot run in that environment.

Official sources

  1. License: MIT
  2. PowerShell/vscode-powershell on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/powershell-vscode-powershell.svg)](https://hysenlabs.com/projects/powershell-vscode-powershell)