skills/vsdevshell/SKILL.md
Enter the Visual Studio Developer environment in the current PowerShell session via the VsDevShell module (MSBuild/CL toolchain env vars).
npx skillsauth add awakecoding/vsdevshell vsdevshellInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when you need to run Windows build tools that typically only work after a Visual Studio Developer Prompt / VsDevCmd.bat has been applied.
Use this skill when you see errors like:
msbuild : The term 'msbuild' is not recognized...cl.exe/link.exe/rc.exe not foundStart with msbuild, but the same approach applies to many VS toolchain commands.
If you need to run any of the following, enter the VS dev shell first so PATH/Windows SDK/VC tools variables are set correctly:
msbuild.exe, devenv.com, nmake.execmake.exe, ninja.exesigntool.exe, makeappx.exe, makepri.exe, appcert.exerc.exe, mt.exe, mc.exemidl.exe, tlibimp.exe, tlbexp.exedumpbin.exe, pdbcopy.exe, pdbstr.exe, symstore.exe, symchk.exeinf2cat.exeIf the user’s command references one of these tools (or a build script calls them indirectly), run the “enter dev env” step before running the command.
Enter-VsDevShell updates process environment variables (PATH, INCLUDE, LIB, VSINSTALLDIR, etc.) for the current PowerShell process.
msbuild.To restore the original environment (the values captured when you entered), use:
Exit-VsDevShellTreat Enter-VsDevShell as a one-time initialization step per PowerShell process:
pwsh/powershell.exe process (new terminal tab, new task invocation, new CI step, etc.) and you need VS build tools, you must call Enter-VsDevShell in that process.Enter-VsDevShell, don’t call it again.Enter-VsDevShell -Force.-Arch/-HostArch/-WinSdk), use a new PowerShell process and call Enter-VsDevShell there with the new parameters.This skill assumes the VsDevShell module is installed and available on PSModulePath.
Get-Module -ListAvailable VsDevShellIf it isn't present, install it from PowerShell Gallery for the current user:
Install-Module -Name VsDevShell -Repository PSGallery -Scope CurrentUserThen import it:
Import-Module VsDevShellNotes:
PSGallery.-Arch: target architecture you want to build for
Win32 → -Arch x86x64 → -Arch x64ARM64 → -Arch arm64-HostArch: architecture of the machine running the tools
-HostArch x64-HostArch x86x86/x64 are accepted for -HostArch.-AppPlatform: accepted for compatibility, but currently not used to build VsDevCmd.bat arguments.-WinSdk: optional Windows SDK version string (only set when the user specifies a required SDK)-NoExt, -NoLogo: optional switches to reduce startup work/noise-VsInstallPath: only set when targeting a specific Visual Studio installationImport-Module VsDevShellEnter-VsDevShell -Arch x64 -HostArch x64 -NoLogomsbuild -versionBuild:
msbuild command (solution/project + configuration/platform as requested).If your tool runner uses a fresh PowerShell process per command, run the “enter dev env” step and the build command in the same invocation, for example:
pwsh -NoProfile -Command "Import-Module VsDevShell; Enter-VsDevShell -Arch x64 -HostArch x64 -NoLogo; msbuild -version"If your tool runner reuses a single long-lived terminal session, run Enter-VsDevShell once at the start of that session, then run as many build commands as you need in the same session.
Build Win32 from an x64 machine:
Enter-VsDevShell -Arch x86 -HostArch x64Build ARM64 from an x64 machine:
Enter-VsDevShell -Arch arm64 -HostArch x64If you want to see what would change without modifying your current process environment:
Get-VsDevEnv -Arch x64 -HostArch x64 | Format-Table -AutoSizeEnter-VsDevShell -Arch x64 -HostArch x64Exit-VsDevShell.envExport the computed delta to a standard .env file (UTF-8 no BOM):
Export-VsDevEnv -Arch x64 -HostArch x64 -Path .\vsdev.env -Mode UpdateApply a .env file in the current session:
Import-VsDevEnv .\vsdev.env | Enter-VsDevShellEnter-VsDevShell -EnvFilePath .\vsdev.envRestore only the keys listed in the file (using the saved pre-enter snapshot):
Exit-VsDevShell -EnvFilePath .\vsdev.envFully piped chain (compute → export → import → apply):
Get-VsDevEnv -Arch x64 -HostArch x64 |
Export-VsDevEnv -Path .\vsdev.env -Mode Update -PassThru |
Import-VsDevEnv |
Enter-VsDevShell
Notes:
PATH) and will typically override whatever values your target process already has.bash you often need set -a; source ./vsdev.env; set +a to export the variables to child processes.GITHUB_ENV)In GitHub Actions, $env:GITHUB_ENV is a standard env file shared across steps.
Update it so later steps inherit the VS dev environment:
Export-VsDevEnv -Arch x64 -HostArch x64 -Path $env:GITHUB_ENV -Mode UpdateIf $env:GITHUB_PATH is available and you want PATH handled there, use:
Export-VsDevEnv -Arch x64 -HostArch x64 -Path $env:GITHUB_ENV -Mode Update -PathMode GitHubPathApply it in the current step/session (optional):
Enter-VsDevShell -EnvFilePath $env:GITHUB_ENV%COMSPEC% and Visual Studio's VsDevCmd.bat).msbuild still isn’t available after enabling the environment, the installed Visual Studio workload may be missing MSBuild/VC tools.AppPlatform is currently accepted but not used to build VsDevCmd.bat arguments.tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.