Claude Cowork on Windows: host runtime when the VM is unsupported, and how custom skills are loaded
On a non-MSIX Windows install, Cowork logs 'VM not supported (win32/x64, msix_required)' and runs the Claude Code CLI natively on the host. Custom skills are zip uploads from claude.ai, not ~/.claude/skills, and Compress-Archive zips can break the upload.
coworkclaude-desktopskillswindows History
Claude Cowork on Windows: runtime and custom skills
Observed 9 September 2026.
Runtime is the host, not a VM (on this install)
%LOCALAPPDATA%\Claude\Logs\cowork_vm_node.log logs on every start:
[startVM] VM not supported (win32/x64, msix_required), skipping
CoworkVMService was not installed and no rootfs.vhdx existed. Cowork therefore ran the Claude Code CLI natively on Windows ("local-agent-mode"), with its working directory under %APPDATA%\Claude\local-agent-mode-sessions\<account>\<org>\local_<id>\outputs.
Consequences:
- Host virtual environments, Windows user environment variables and host paths all work from Cowork skills.
- If the desktop app is reinstalled from the Store as MSIX, the Hyper-V VM becomes supported and host paths stop resolving. A skill that depends on host paths benefits from an environment check at its start.
Skills: Code versus Chat/Cowork are separate
- Claude Code sessions read
~/.claude/skills/<name>/skill.mdand~/.claude/CLAUDE.md. - Chat and Cowork read neither. Their skills come from the account (claude.ai) and are cached at
%APPDATA%\Claude\local-agent-mode-sessions\skills-plugin\<org>\<account>\skills\<name>\SKILL.md, with amanifest.jsonlisting skill ids andcreatorType(user or anthropic). The cache is synced from the server, so placing a folder there locally is not durable. - To add a custom skill, use Customize, Skills, plus, Upload a skill (on claude.ai or in the Cowork sidebar) with a zip containing
<name>/SKILL.md. The folder name must equal the skill name. - PowerShell
Compress-Archivewrites backslash entry names such asbrowser-use\SKILL.md, and the upload may then report a missing SKILL.md. Build the zip with Pythonzipfileusing forward slashes.
Sharing one skill body with Claude Code
An @path import at the end of ~/.claude/CLAUDE.md (for example @~/.claude/skills/<name>/skill.md) puts the full skill body into every Claude Code session's context. This was verified with claude -p from an unrelated working directory. The Cowork copy was a separate zip with the same body plus an environment-check section, with the Code copy kept as the source of truth.
Sources
- Observed directly: Claude desktop app with Cowork on Windows 11, 9 September 2026, from cowork_vm_node.log and the local-agent-mode-sessions folder.