Installation

clawhub install xiaoyaner0201/vscode-node

Summary

Control a VS Code or Cursor IDE remotely through the OpenClaw Node protocol.

SKILL.md

VS Code / Cursor Node Skill

Control a VS Code or Cursor IDE remotely through the OpenClaw Node protocol.

Related

Prerequisites

  • Extension openclaw-node-vscode installed and connected (status bar 🟒)
  • Node visible in nodes status
  • Commands in Gateway's allowCommands whitelist

Invocation Pattern

text
nodes invoke --node "<name>" --invokeCommand "<cmd>" --invokeParamsJson '{"key":"val"}'

Both invokeTimeoutMs (Gateway internal) and timeoutMs (HTTP layer, must be larger) are required for long operations.

Timeout guide:

TypeinvokeTimeoutMstimeoutMs
File/editor/lang1500020000
Git3000035000
Test6000065000
Agent plan/ask180000185000
Agent run300000305000

Command Categories

CategoryPrefixKey CommandsReference
Filevscode.file.*read, write, edit, deletecommands/file.md
Directoryvscode.dir.*listcommands/file.md
Languagevscode.lang.*definition, references, hover, symbols, rename, codeActions, formatcommands/language.md
Editorvscode.editor.*active, openFiles, selectionscommands/editor.md
Diagnosticsvscode.diagnostics.*getcommands/editor.md
Gitvscode.git.*status, diff, log, blame, stage, commit, stashcommands/git.md
Testvscode.test.*list, run, resultscommands/test-debug.md
Debugvscode.debug.*launch, stop, breakpoint, evaluate, stackTrace, variablescommands/test-debug.md
Terminalvscode.terminal.*run (disabled by default)commands/terminal.md
Agentvscode.agent.*status, run, setup (Cursor only)commands/agent.md
Workspacevscode.workspace.*infocommands/editor.md

Quick Examples

Read a file

text
nodes invoke --node "my-vscode" --invokeCommand "vscode.file.read" --invokeParamsJson '{"path":"src/main.ts"}'
β†’ { content, totalLines, language }

Find all references

text
nodes invoke --node "my-vscode" --invokeCommand "vscode.lang.references" --invokeParamsJson '{"path":"src/main.ts","line":10,"character":5}'
β†’ { locations: [{ path, line, character }] }

Git status + commit

text
nodes invoke --node "my-vscode" --invokeCommand "vscode.git.status"
β†’ { branch, staged, modified, untracked, ahead, behind }

nodes invoke --node "my-vscode" --invokeCommand "vscode.git.stage" --invokeParamsJson '{"paths":["src/main.ts"]}'
nodes invoke --node "my-vscode" --invokeCommand "vscode.git.commit" --invokeParamsJson '{"message":"fix: resolve type error"}'

Delegate to Cursor Agent

text
nodes invoke --node "my-vscode" --invokeCommand "vscode.agent.run" --invokeParamsJson '{"prompt":"Add error handling to all API endpoints","mode":"plan"}' --invokeTimeoutMs 180000 --timeoutMs 185000
β†’ { output, exitCode }

Common Workflows

See references/workflows.md for detailed step-by-step workflows:

  • Fix a type error
  • Safe cross-file refactor
  • Delegate complex task to Cursor Agent

Error Handling

ErrorCauseSolution
node command not allowedNot in Gateway whitelistAdd to gateway.nodes.allowCommands
node not foundExtension not connectedCheck extension status bar
timeoutOperation too longIncrease both timeout params
path traversal blockedPath outside workspaceUse relative paths only
read-only modeExtension in read-onlyDisable openclaw.readOnly setting

Security

  • All paths are relative to workspace root β€” absolute paths and ../ blocked
  • Writes respect readOnly and confirmWrites extension settings
  • Terminal disabled by default, whitelist-only when enabled
  • Each device has unique Ed25519 identity, must be approved by Gateway

Recommended skills

Browse all β†’

Related guides

Hand-picked reading to help you choose, install, and use agent skills.