{ "name": "remote-ssh", "displayName": "Remote - SSH", "description": "%description%", "version": "0.122.0", "publisher": "ms-vscode-remote", "icon": "resources/remote-ssh.png", "repository": { "type": "git", "url": "https://github.com/Microsoft/vscode-remote-release.git" }, "bugs": { "url": "https://github.com/Microsoft/vscode-remote-release/issues" }, "license": "SEE LICENSE IN LICENSE.txt", "engines": { "vscode": "^1.107.0" }, "extensionKind": [ "ui" ], "enabledApiProposals": [ "resolvers", "tunnels", "terminalDataWriteEvent", "contribViewsRemote", "telemetry", "contribRemoteHelp" ], "extensionPack": [ "ms-vscode-remote.remote-ssh-edit", "ms-vscode.remote-explorer" ], "categories": [ "Other" ], "keywords": [ "remote development", "remote", "ssh" ], "api": "none", "activationEvents": [ "onCommand:remote-internal.getSshFoldersHistory", "onCommand:remote-internal.deleteSshFolderFromHistory", "onCommand:remote-internal.getActiveSshRemote", "onCommand:remote-internal.getConfiguredHostnames", "onCommand:remote-internal.openRemoteSshTarget", "onResolveRemoteAuthority:ssh-remote", "onUri" ], "l10n": "./l10n", "main": "./out/extension", "aiKey": "0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255", "capabilities": { "untrustedWorkspaces": { "supported": true } }, "contributes": { "chatParticipants": [ { "name": "remote-ssh", "fullName": "Remote - SSH", "id": "remote-ssh", "description": "%chatParticipants.description%", "isSticky": true, "when": "config.remote.SSH.experimental.chat" } ], "remoteHelp": { "getStarted": "https://aka.ms/vscode-remote/ssh/getting-started", "feedback": "https://aka.ms/vscode-remote/ssh/provide-feedback", "documentation": "https://aka.ms/vscode-remote/ssh", "issues": "https://aka.ms/vscode-remote/ssh/issues", "remoteName": [ "ssh-remote" ] }, "configuration": { "title": "Remote - SSH", "properties": { "remote.SSH.configFile": { "type": "string", "description": "%setting.configFile.description%", "default": "", "scope": "application" }, "remote.SSH.showLoginTerminal": { "type": "boolean", "description": "%setting.showLoginTerminal.description%", "scope": "application", "default": false }, "remote.SSH.defaultForwardedPorts": { "type": "array", "items": { "type": "object", "required": [ "remotePort" ], "properties": { "name": { "type": "string" }, "remotePort": { "type": "number" }, "localPort": { "type": "number" } } }, "description": "%setting.defaultForwardedPorts.description%", "default": [] }, "remote.SSH.defaultExtensions": { "type": "array", "items": { "type": "string" }, "description": "%setting.defaultExtensions.description%", "scope": "application" }, "remote.SSH.path": { "type": "string", "description": "%setting.path.description%", "default": "", "scope": "application" }, "remote.SSH.serverInstallPath": { "type": "object", "description": "%setting.serverInstallPath.description%", "scope": "application", "additionalProperties": { "type": "string" } }, "remote.SSH.lockfilesInTmp": { "type": "boolean", "markdownDescription": "%setting.lockfilesInTmp.description%", "scope": "application", "default": false }, "remote.SSH.useFlock": { "type": "boolean", "markdownDescription": "%setting.useFlock.description%", "scope": "application", "default": true }, "remote.SSH.enableDynamicForwarding": { "type": "boolean", "description": "%setting.enableDynamicForwarding.description%", "scope": "application", "default": true }, "remote.SSH.enableAgentForwarding": { "type": "boolean", "markdownDescription": "%setting.enableAgentForwarding.description%", "scope": "application", "default": true }, "remote.SSH.enableX11Forwarding": { "type": "boolean", "markdownDescription": "%setting.enableX11Forwarding.description%", "scope": "application", "default": true }, "remote.SSH.permitPtyAllocation": { "type": "boolean", "markdownDescription": "%setting.permitPtyAllocation.description%", "scope": "application", "default": false }, "remote.SSH.useCurlAndWgetConfigurationFiles": { "type": "boolean", "markdownDescription": "%setting.useCurlAndWgetConfigurationFiles.description%", "scope": "application", "default": false }, "remote.SSH.useExecServer": { "type": "boolean", "markdownDescription": "%setting.useExecServer.description%", "scope": "application", "default": true }, "remote.SSH.enableRemoteCommand": { "type": "boolean", "markdownDescription": "%setting.enableRemoteCommand.description%", "scope": "application", "default": false }, "remote.SSH.externalSSH_ASKPASS": { "type": "boolean", "markdownDescription": "%setting.externalSSH_ASKPASS.description%", "scope": "application", "default": false }, "remote.SSH.allowLocalServerDownload": { "type": "boolean", "description": "%setting.allowLocalServerDownload.description%", "markdownDeprecationMessage": "%setting.allowLocalServerDownload.deprecationMessage%", "scope": "application", "default": true }, "remote.SSH.localServerDownload": { "type": "string", "description": "%setting.localServerDownload.description%", "enum": [ "auto", "always", "off" ], "markdownEnumDescriptions": [ "%setting.localServerDownload.auto.description%", "%setting.localServerDownload.always.description%", "%setting.localServerDownload.off.description%" ], "scope": "application", "default": "auto" }, "remote.SSH.windowsRemotes": { "type": "array", "markdownDescription": "%setting.windowsRemotes.description%", "deprecationMessage": "%setting.windowsRemotes.deprecationMessage%", "default": [], "items": { "type": "string" }, "scope": "application" }, "remote.SSH.useLocalServer": { "type": "boolean", "markdownDescription": "%setting.useLocalServer.description%", "scope": "application", "default": true }, "remote.SSH.connectTimeout": { "type": "number", "description": "%setting.connectTimeout.description%", "default": 15, "scope": "application", "minimum": 1 }, "remote.SSH.logLevel": { "type": "string", "description": "%setting.logLevel.description%", "default": "debug", "scope": "application", "enum": [ "debug", "trace" ] }, "remote.SSH.maxReconnectionAttempts": { "type": [ "number", "null" ], "markdownDescription": "%setting.maxReconnectionAttempts.description%", "default": null, "scope": "application", "maximum": 8, "minimum": 0 }, "remote.SSH.suppressWindowsSshWarning": { "type": "boolean", "description": "%setting.suppressWindowsSshWarning.description%", "default": false, "scope": "application" }, "remote.SSH.remotePlatform": { "type": "object", "markdownDescription": "%setting.remotePlatform.description%", "scope": "application", "additionalProperties": { "type": "string", "enum": [ "macOS", "windows", "linux" ] } }, "remote.SSH.remoteServerListenOnSocket": { "type": "boolean", "default": false, "markdownDescription": "%setting.remoteServerListenOnSocket.description%" }, "remote.SSH.serverPickPortsFromRange": { "type": "object", "markdownDescription": "%setting.serverPickPortsFromRange.description%", "scope": "application", "additionalProperties": { "type": "string", "pattern": "^\\d+-\\d+$" } }, "remote.SSH.preferredLocalPortRange": { "type": "string", "default": "", "markdownDescription": "%setting.preferredLocalPortRange.description%", "scope": "application", "pattern": "^\\d+-\\d+$|^$" }, "remote.SSH.bindHost": { "type": "object", "markdownDescription": "%setting.bindHost.description%", "scope": "application", "examples": [ { "example.com": "127.0.0.1" } ], "additionalProperties": { "type": "string", "default": "127.0.0.1" } }, "remote.SSH.experimental.chat": { "type": "boolean", "markdownDescription": "%setting.experimental.chat.description%", "scope": "application", "default": true, "tags": [ "experimental" ] }, "remote.SSH.experimental.enhancedSessionLogs": { "type": "boolean", "markdownDescription": "%setting.experimental.enhancedSessionLogs.description%", "scope": "application", "default": true, "tags": [ "experimental" ] }, "remote.SSH.httpProxy": { "type": [ "string", "object" ], "markdownDescription": "%setting.httpProxy.description%", "additionalProperties": { "type": "string" }, "default": "", "examples": [ { "myhost": "http://proxy.example.com:8080", "myhost2": "http://proxy2.example.com" }, "http://proxy.example.com:8080" ] }, "remote.SSH.httpsProxy": { "type": [ "string", "object" ], "markdownDescription": "%setting.httpsProxy.description%", "additionalProperties": { "type": "string" }, "default": "", "examples": [ { "myhost": "https://proxy.example.com:8080", "myhost2": "https://proxy2.example.com" }, "https://proxy.example.com:8080" ] }, "remote.SSH.preconnect": { "type": [ "string", "object" ], "markdownDescription": "%setting.preconnect.description%", "additionalProperties": { "type": "string" }, "default": "", "examples": [ { "myhost": "~/preconnect.sh", "myhost2": "C:\\Users\\user\\preconnect.ps1" }, "~/preconnect.sh" ], "tags": [ "experimental" ] }, "remote.SSH.reconnectionGraceTime": { "type": [ "number", "null" ], "scope": "application", "markdownDescription": "%setting.reconnectionGraceTime.description%", "default": null } } }, "commands": [ { "command": "opensshremotes.openWebUI", "title": "%commands.openWebUI.title%", "category": "Remote-SSH" }, { "command": "opensshremotes.openEmptyWindow", "title": "%commands.openEmptyWindow,title%", "category": "Remote-SSH" }, { "command": "opensshremotes.openEmptyWindowOnCurrentHost", "title": "%commands.openEmptyWindowOnCurrentHost.title%", "category": "Remote-SSH" }, { "command": "opensshremotes.openEmptyWindowInCurrentWindow", "title": "%commands.openEmptyWindowInCurrentWindow.title%", "category": "Remote-SSH" }, { "command": "opensshremotes.openConfigFile", "title": "%commands.openConfigFile.title%", "category": "Remote-SSH" }, { "command": "opensshremotes.addNewSshHost", "title": "%commands.addNewSshHost.title%", "category": "Remote-SSH" }, { "command": "opensshremotes.cleanDevBox", "title": "%commands.cleanDevBox.title%", "category": "Remote-SSH" }, { "command": "opensshremotes.cleanRemoteServer", "title": "%commands.cleanRemoteServer.title%", "category": "Remote-SSH" }, { "command": "opensshremotes.cleanCurrentRemoteServer", "title": "%commands.cleanCurrentRemoteServer.title%", "category": "Remote-SSH" }, { "command": "opensshremotes.cleanLocalServer", "title": "%commands.cleanLocalServer.title%", "category": "Remote-SSH" }, { "command": "opensshremotes.getHelp", "title": "%commands.getHelp.title%", "category": "Remote-SSH" }, { "command": "opensshremotes.getStarted", "title": "%commands.getStarted.title%", "category": "Remote-SSH" }, { "command": "opensshremotes.reportIssue", "title": "%commands.reportIssue.title%", "category": "Remote-SSH" }, { "command": "opensshremotes.settings", "title": "%commands.settings.title%", "category": "Remote-SSH" }, { "command": "opensshremotes.provideFeedback", "title": "%commands.provideFeedback.title%", "category": "Remote-SSH" }, { "command": "opensshremotes.showLog", "title": "%commands.showLog.title%", "category": "Remote-SSH" }, { "command": "opensshremotes.clearAllSessionHints", "title": "%commands.clearAllSessionHints.title%", "category": "Remote-SSH", "enablement": "config.remote.SSH.experimental.chat" } ], "resourceLabelFormatters": [ { "scheme": "vscode-remote", "authority": "ssh-remote+*", "formatting": { "label": "${path}", "separator": "/", "tildify": true, "workspaceSuffix": "SSH" } } ], "menus": { "statusBar/remoteIndicator": [ { "command": "opensshremotes.openEmptyWindow", "group": "remote_20_ssh-remote_1general@1" }, { "command": "opensshremotes.openEmptyWindowInCurrentWindow", "group": "remote_20_ssh-remote_1general@2" } ], "commandPalette": [ { "command": "opensshremotes.getStarted", "when": "!remoteName && !virtualWorkspace || remoteName =~ /^ssh-remote$/ && remoteConnectionState == disconnected" }, { "command": "opensshremotes.openEmptyWindowOnCurrentHost", "when": "remoteName =~ /^ssh-remote$/ && remoteConnectionState == connected" }, { "command": "opensshremotes.provideFeedback", "when": "remoteName =~ /^ssh-remote$/" }, { "command": "opensshremotes.cleanCurrentRemoteServer", "when": "remoteName =~ /^ssh-remote$/ && remoteConnectionState == connected" }, { "command": "opensshremotes.cleanLocalServer", "when": "config.remote.SSH.useLocalServer" }, { "command": "opensshremotes.openWebUI", "when": "remoteName =~ /^ssh-remote$/ && remoteConnectionState == connected && config.remote.SSH.enableWebAccess" } ] } }, "scripts": { "lint:eslint": "eslint \"src/**/*.ts\"", "lint:shellcheck": "node scripts/shellcheck.js", "lint": "npm-run-all lint:eslint lint:shellcheck", "preinstall": "npm_config_registry=https://registry.npmjs.org npm exec ado-npm-auth", "postinstall": "npm run downloadapi", "downloadapi": "vscode-dts dev", "vscode:prepublish": "webpack --mode production", "compile": "webpack --mode development", "watch": "webpack --mode development --watch", "package": "vsce package", "pretest": "npm run compile", "test": "vscode-test --label unit", "test:baseline": "vscode-test --label baseline", "baseline": "npm-run-all pretest test:baseline" }, "devDependencies": { "@devcontainers/cli": "latest", "@types/glob": "^8.1.0", "@types/lockfile": "^1.0.4", "@types/minimist": "^1.2.5", "@types/mocha": "^10.0.6", "@types/node": "^20.10.3", "@types/shell-quote": "^1.7.5", "@types/sinon": "^17.0.2", "@types/vscode": "1.90.0", "@types/webpack": "^5.28.5", "@typescript-eslint/eslint-plugin": "^6.13.2", "@typescript-eslint/parser": "^6.13.2", "@vscode/test-cli": "^0.0.10", "@vscode/test-electron": "^2.4.1", "@vscode/vsce": "^2.22.0", "ado-npm-auth": "^0.1.2", "copy-webpack-plugin": "^11.0.0", "copyfiles": "^2.4.1", "eslint": "^8.55.0", "mocha": "^10.2.0", "npm-run-all2": "^7.0.1", "raw-loader": "^4.0.2", "shellcheck": "^3.0.0", "sinon": "^17.0.1", "ts-loader": "^9.5.1", "ts-sinon": "^2.0.2", "typescript": "^5.3.2", "vscode-dts": "^0.3.3", "webpack": "^5.94.0", "webpack-cli": "^5.1.4" }, "dependencies": { "@enonic/fnv-plus": "^1.3.0", "@microsoft/dev-tunnels-contracts": "^1.0.7463", "@vscode-internal/remote-web-rpc": "^2.1.9", "@vscode/chat-extension-utils": "^0.0.0-alpha.4", "@vscode/extension-telemetry": "^0.9.0", "@vscode/prompt-tsx": "^0.3.0-alpha.13", "glob": "^10.5.0", "https-proxy-agent": "^7.0.2", "lockfile": "^1.0.4", "minimist": "^1.2.8", "posix-getopt": "^1.2.1", "shell-quote": "^1.8.1", "socks": "^2.7.3", "ssh-config": "^5.0.2", "table": "^6.8.2" }, "resolutions": { "strip-ansi": "6.0.1" }, "__metadata": { "installedTimestamp": 1765760155775, "targetPlatform": "undefined", "size": 2831883 } }