{
  "schemaVersion": "1.0",
  "item": {
    "slug": "vscode-node",
    "name": "VS Code Node",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/xiaoyaner0201/vscode-node",
    "canonicalUrl": "https://clawhub.ai/xiaoyaner0201/vscode-node",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/vscode-node",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=vscode-node",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "vscode-node",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-10T13:19:25.905Z",
      "expiresAt": "2026-05-17T13:19:25.905Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=vscode-node",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=vscode-node",
        "contentDisposition": "attachment; filename=\"vscode-node-1.0.2.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "vscode-node"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/vscode-node"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/vscode-node",
    "agentPageUrl": "https://openagent3.xyz/skills/vscode-node/agent",
    "manifestUrl": "https://openagent3.xyz/skills/vscode-node/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/vscode-node/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "VS Code / Cursor Node Skill",
        "body": "Control a VS Code or Cursor IDE remotely through the OpenClaw Node protocol."
      },
      {
        "title": "Related",
        "body": "OpenClaw Node for VS Code — The VS Code/Cursor extension you need to install (required)\ncursor-ide-agent — Combined skill with both CLI and Node paths (install this instead if you also use Cursor CLI)\nSource: github.com/xiaoyaner-home/openclaw-vscode"
      },
      {
        "title": "Prerequisites",
        "body": "Extension openclaw-node-vscode installed and connected (status bar 🟢)\nNode visible in nodes status\nCommands in Gateway's allowCommands whitelist"
      },
      {
        "title": "Invocation Pattern",
        "body": "nodes invoke --node \"<name>\" --invokeCommand \"<cmd>\" --invokeParamsJson '{\"key\":\"val\"}'\n\nBoth invokeTimeoutMs (Gateway internal) and timeoutMs (HTTP layer, must be larger) are required for long operations.\n\nTimeout guide:\n\nTypeinvokeTimeoutMstimeoutMsFile/editor/lang1500020000Git3000035000Test6000065000Agent plan/ask180000185000Agent run300000305000"
      },
      {
        "title": "Command Categories",
        "body": "CategoryPrefixKey CommandsReferenceFilevscode.file.*read, write, edit, deletecommands/file.mdDirectoryvscode.dir.*listcommands/file.mdLanguagevscode.lang.*definition, references, hover, symbols, rename, codeActions, formatcommands/language.mdEditorvscode.editor.*active, openFiles, selectionscommands/editor.mdDiagnosticsvscode.diagnostics.*getcommands/editor.mdGitvscode.git.*status, diff, log, blame, stage, commit, stashcommands/git.mdTestvscode.test.*list, run, resultscommands/test-debug.mdDebugvscode.debug.*launch, stop, breakpoint, evaluate, stackTrace, variablescommands/test-debug.mdTerminalvscode.terminal.*run (disabled by default)commands/terminal.mdAgentvscode.agent.*status, run, setup (Cursor only)commands/agent.mdWorkspacevscode.workspace.*infocommands/editor.md"
      },
      {
        "title": "Read a file",
        "body": "nodes invoke --node \"my-vscode\" --invokeCommand \"vscode.file.read\" --invokeParamsJson '{\"path\":\"src/main.ts\"}'\n→ { content, totalLines, language }"
      },
      {
        "title": "Find all references",
        "body": "nodes invoke --node \"my-vscode\" --invokeCommand \"vscode.lang.references\" --invokeParamsJson '{\"path\":\"src/main.ts\",\"line\":10,\"character\":5}'\n→ { locations: [{ path, line, character }] }"
      },
      {
        "title": "Git status + commit",
        "body": "nodes invoke --node \"my-vscode\" --invokeCommand \"vscode.git.status\"\n→ { branch, staged, modified, untracked, ahead, behind }\n\nnodes invoke --node \"my-vscode\" --invokeCommand \"vscode.git.stage\" --invokeParamsJson '{\"paths\":[\"src/main.ts\"]}'\nnodes invoke --node \"my-vscode\" --invokeCommand \"vscode.git.commit\" --invokeParamsJson '{\"message\":\"fix: resolve type error\"}'"
      },
      {
        "title": "Delegate to Cursor Agent",
        "body": "nodes invoke --node \"my-vscode\" --invokeCommand \"vscode.agent.run\" --invokeParamsJson '{\"prompt\":\"Add error handling to all API endpoints\",\"mode\":\"plan\"}' --invokeTimeoutMs 180000 --timeoutMs 185000\n→ { output, exitCode }"
      },
      {
        "title": "Common Workflows",
        "body": "See references/workflows.md for detailed step-by-step workflows:\n\nFix a type error\nSafe cross-file refactor\nDelegate complex task to Cursor Agent"
      },
      {
        "title": "Error Handling",
        "body": "ErrorCauseSolutionnode command not allowedNot in Gateway whitelistAdd to gateway.nodes.allowCommandsnode not foundExtension not connectedCheck extension status bartimeoutOperation too longIncrease both timeout paramspath traversal blockedPath outside workspaceUse relative paths onlyread-only modeExtension in read-onlyDisable openclaw.readOnly setting"
      },
      {
        "title": "Security",
        "body": "All paths are relative to workspace root — absolute paths and ../ blocked\nWrites respect readOnly and confirmWrites extension settings\nTerminal disabled by default, whitelist-only when enabled\nEach device has unique Ed25519 identity, must be approved by Gateway"
      }
    ],
    "body": "VS Code / Cursor Node Skill\n\nControl a VS Code or Cursor IDE remotely through the OpenClaw Node protocol.\n\nRelated\nOpenClaw Node for VS Code — The VS Code/Cursor extension you need to install (required)\ncursor-ide-agent — Combined skill with both CLI and Node paths (install this instead if you also use Cursor CLI)\nSource: github.com/xiaoyaner-home/openclaw-vscode\nPrerequisites\nExtension openclaw-node-vscode installed and connected (status bar 🟢)\nNode visible in nodes status\nCommands in Gateway's allowCommands whitelist\nInvocation Pattern\nnodes invoke --node \"<name>\" --invokeCommand \"<cmd>\" --invokeParamsJson '{\"key\":\"val\"}'\n\n\nBoth invokeTimeoutMs (Gateway internal) and timeoutMs (HTTP layer, must be larger) are required for long operations.\n\nTimeout guide:\n\nType\tinvokeTimeoutMs\ttimeoutMs\nFile/editor/lang\t15000\t20000\nGit\t30000\t35000\nTest\t60000\t65000\nAgent plan/ask\t180000\t185000\nAgent run\t300000\t305000\nCommand Categories\nCategory\tPrefix\tKey Commands\tReference\nFile\tvscode.file.*\tread, write, edit, delete\tcommands/file.md\nDirectory\tvscode.dir.*\tlist\tcommands/file.md\nLanguage\tvscode.lang.*\tdefinition, references, hover, symbols, rename, codeActions, format\tcommands/language.md\nEditor\tvscode.editor.*\tactive, openFiles, selections\tcommands/editor.md\nDiagnostics\tvscode.diagnostics.*\tget\tcommands/editor.md\nGit\tvscode.git.*\tstatus, diff, log, blame, stage, commit, stash\tcommands/git.md\nTest\tvscode.test.*\tlist, run, results\tcommands/test-debug.md\nDebug\tvscode.debug.*\tlaunch, stop, breakpoint, evaluate, stackTrace, variables\tcommands/test-debug.md\nTerminal\tvscode.terminal.*\trun (disabled by default)\tcommands/terminal.md\nAgent\tvscode.agent.*\tstatus, run, setup (Cursor only)\tcommands/agent.md\nWorkspace\tvscode.workspace.*\tinfo\tcommands/editor.md\nQuick Examples\nRead a file\nnodes invoke --node \"my-vscode\" --invokeCommand \"vscode.file.read\" --invokeParamsJson '{\"path\":\"src/main.ts\"}'\n→ { content, totalLines, language }\n\nFind all references\nnodes invoke --node \"my-vscode\" --invokeCommand \"vscode.lang.references\" --invokeParamsJson '{\"path\":\"src/main.ts\",\"line\":10,\"character\":5}'\n→ { locations: [{ path, line, character }] }\n\nGit status + commit\nnodes invoke --node \"my-vscode\" --invokeCommand \"vscode.git.status\"\n→ { branch, staged, modified, untracked, ahead, behind }\n\nnodes invoke --node \"my-vscode\" --invokeCommand \"vscode.git.stage\" --invokeParamsJson '{\"paths\":[\"src/main.ts\"]}'\nnodes invoke --node \"my-vscode\" --invokeCommand \"vscode.git.commit\" --invokeParamsJson '{\"message\":\"fix: resolve type error\"}'\n\nDelegate to Cursor Agent\nnodes invoke --node \"my-vscode\" --invokeCommand \"vscode.agent.run\" --invokeParamsJson '{\"prompt\":\"Add error handling to all API endpoints\",\"mode\":\"plan\"}' --invokeTimeoutMs 180000 --timeoutMs 185000\n→ { output, exitCode }\n\nCommon Workflows\n\nSee references/workflows.md for detailed step-by-step workflows:\n\nFix a type error\nSafe cross-file refactor\nDelegate complex task to Cursor Agent\nError Handling\nError\tCause\tSolution\nnode command not allowed\tNot in Gateway whitelist\tAdd to gateway.nodes.allowCommands\nnode not found\tExtension not connected\tCheck extension status bar\ntimeout\tOperation too long\tIncrease both timeout params\npath traversal blocked\tPath outside workspace\tUse relative paths only\nread-only mode\tExtension in read-only\tDisable openclaw.readOnly setting\nSecurity\nAll paths are relative to workspace root — absolute paths and ../ blocked\nWrites respect readOnly and confirmWrites extension settings\nTerminal disabled by default, whitelist-only when enabled\nEach device has unique Ed25519 identity, must be approved by Gateway"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/xiaoyaner0201/vscode-node",
    "publisherUrl": "https://clawhub.ai/xiaoyaner0201/vscode-node",
    "owner": "xiaoyaner0201",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/vscode-node",
    "downloadUrl": "https://openagent3.xyz/downloads/vscode-node",
    "agentUrl": "https://openagent3.xyz/skills/vscode-node/agent",
    "manifestUrl": "https://openagent3.xyz/skills/vscode-node/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/vscode-node/agent.md"
  }
}