Skip to content
VS Code

WinCtl for VS Code

io.github.sitharaj88/winctl

Windows desktop control for AI agents: screen, UI Automation, input, processes, files, shell.

client:VS Code transport:stdio runtime:npm

Install WinCtl in VS Code

.vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "winctl-profile",
      "description": "WINCTL_PROFILE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "winctl-tiers",
      "description": "WINCTL_TIERS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "winctl-allowed-paths",
      "description": "WINCTL_ALLOWED_PATHS",
      "password": true
    },
    {
      "type": "promptString",
      "id": "winctl-confirm-destructive",
      "description": "WINCTL_CONFIRM_DESTRUCTIVE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "winctl-audit-log",
      "description": "WINCTL_AUDIT_LOG",
      "password": true
    },
    {
      "type": "promptString",
      "id": "winctl-max-image-width",
      "description": "WINCTL_MAX_IMAGE_WIDTH",
      "password": true
    }
  ],
  "servers": {
    "winctl": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@sitharaj88/winctl"
      ],
      "env": {
        "WINCTL_PROFILE": "${input:winctl-profile}",
        "WINCTL_TIERS": "${input:winctl-tiers}",
        "WINCTL_ALLOWED_PATHS": "${input:winctl-allowed-paths}",
        "WINCTL_CONFIRM_DESTRUCTIVE": "${input:winctl-confirm-destructive}",
        "WINCTL_AUDIT_LOG": "${input:winctl-audit-log}",
        "WINCTL_MAX_IMAGE_WIDTH": "${input:winctl-max-image-width}"
      }
    }
  }
}

VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs

WinCtl in other clients