Closed Microbion closed 1 year ago
Due to this project being based on VSCodium, it doesn't have access to the same repository of extensions out of the box as VSCode. While there are changes you can make to enable the VSCode extensions library (not officially supported by Cursor at this time), the easiest way is to install extensions manually. See here for a short guide:
https://github.com/getcursor/cursor/issues/192#issuecomment-1501599908
If you get it working, feel free to close the issue 😄
Yes, this is what I want. Thanks a lot.
As it sounds like that's what you were looking for, I'll close the issue.
Well... it seems like some troubles in installing vscode-remote in host. This question was mentioned in this issue https://github.com/microsoft/vscode-remote-release/issues/6804. Maybe cursor need some updates to fix this. By the way, the default server path has spelling mistake(.cursro-server vs .cursor-server). Here's the log:
[22:59:44.109] Log Level: 2
[22:59:44.118] SSH Resolver called for "ssh-remote+xiyou", attempt 1
[22:59:44.119] "remote.SSH.useLocalServer": false
[22:59:44.119] "remote.SSH.showLoginTerminal": false
[22:59:44.119] "remote.SSH.remotePlatform": {"xiyou":"linux"}
[22:59:44.119] "remote.SSH.path": undefined
[22:59:44.119] "remote.SSH.configFile": C:\Users\guhai\.ssh\config
[22:59:44.120] "remote.SSH.useFlock": true
[22:59:44.120] "remote.SSH.lockfilesInTmp": false
[22:59:44.120] "remote.SSH.localServerDownload": always
[22:59:44.120] "remote.SSH.remoteServerListenOnSocket": false
[22:59:44.120] "remote.SSH.showLoginTerminal": false
[22:59:44.120] "remote.SSH.defaultExtensions": []
[22:59:44.120] "remote.SSH.loglevel": 2
[22:59:44.120] "remote.SSH.enableDynamicForwarding": true
[22:59:44.120] "remote.SSH.enableRemoteCommand": false
[22:59:44.120] "remote.SSH.serverPickPortsFromRange": {}
[22:59:44.120] "remote.SSH.serverInstallPath": {}
[22:59:44.122] VS Code version: 0.2.2
[22:59:44.122] Remote-SSH version: remote-ssh@0.101.2023032915
[22:59:44.122] win32 x64
[22:59:44.123] SSH Resolver called for host: xiyou
[22:59:44.123] Setting up SSH remote "xiyou"
[22:59:44.127] Using commit id "e8b34ac28f297eb86df40a0545ee06519b653263" and quality "undefined" for server
[22:59:44.131] Install and start server if needed
[22:59:44.136] Checking ssh with "C:\WINDOWS\system32\ssh.exe -V"
[22:59:44.139] Got error from ssh: spawn C:\WINDOWS\system32\ssh.exe ENOENT
[22:59:44.139] Checking ssh with "C:\WINDOWS\ssh.exe -V"
[22:59:44.140] Got error from ssh: spawn C:\WINDOWS\ssh.exe ENOENT
[22:59:44.140] Checking ssh with "C:\WINDOWS\System32\Wbem\ssh.exe -V"
[22:59:44.141] Got error from ssh: spawn C:\WINDOWS\System32\Wbem\ssh.exe ENOENT
[22:59:44.141] Checking ssh with "C:\WINDOWS\System32\WindowsPowerShell\v1.0\ssh.exe -V"
[22:59:44.142] Got error from ssh: spawn C:\WINDOWS\System32\WindowsPowerShell\v1.0\ssh.exe ENOENT
[22:59:44.143] Checking ssh with "C:\WINDOWS\System32\OpenSSH\ssh.exe -V"
[22:59:44.177] > OpenSSH_for_Windows_8.6p1, LibreSSL 3.4.3
[22:59:44.182] Using SSH config file "C:\Users\guhai\.ssh\config"
[22:59:44.183] Running script with connection command: "C:\WINDOWS\System32\OpenSSH\ssh.exe" -T -D 11180 -F "C:\Users\guhai\.ssh\config" xiyou bash
[22:59:44.185] Terminal shell path: C:\WINDOWS\System32\cmd.exe
[22:59:48.180] > 71cde7d4acfe: running
> ]0;C:\WINDOWS\System32\cmd.exe
[22:59:48.181] Got some output, clearing connection timeout
[22:59:48.549] > Acquiring lock on /home/shpc_100617/.cursro-server/bin/e8b34ac28f297eb86df40a0545ee06519b653263/vscode-remote-lock.shpc_100617.e8b34ac28f297eb86df40a0545ee06519b653263
[22:59:48.640] > Installing to /home/shpc_100617/.cursro-server/bin/e8b34ac28f297eb86df40a0545ee06519b653263...
> Trigger local server download
> 71cde7d4acfe:trigger_server_download
> platform==linux==
> vscodeArch==x64==
> destFolder==/home/shpc_100617/.cursro-server/bin/==
> destFolder2==e8b34ac28f297eb86df40a0545ee06519b653263==
> 71cde7d4acfe:trigger_server_download_end
> Waiting for client to transfer server archive...
> Waiting for /home/shpc_100617/.cursro-server/bin/e8b34ac28f297eb86df40a0545ee06519b653263/vscode-scp-done.flag and vscode-server.tar.gz to exist
>
[22:59:48.640] Got request to download on client for {"platform":"linux","arch":"x64","destFolder":"/home/shpc_100617/.cursro-server/bin/e8b34ac28f297eb86df40a0545ee06519b653263"}
[22:59:48.641] Downloading VS Code server locally...
[22:59:50.092] Resolver error: Error: Server returned 404
at v (vscode-file://vscode-app/c:/Users/guhai/AppData/Local/Programs/Cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:644:63337)
at D.download (vscode-file://vscode-app/c:/Users/guhai/AppData/Local/Programs/Cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:645:1548)
[22:59:50.097] ------
Reopening as this sounds like a problem for the devs
Hey @truell20 ,
Sorry to ping you, but really thought this one was a valuable feature for you.
Some remote ssh functionality would almost completely eliminate the need to use VS Code for me and others like me.
I already find Cursor to be a better experience all around, and just keep a VSCode open to paste back into a remote workspace.
This feature would really close that door :)
Use case: This really speaks to the traveling/nomadic people on laptops, who are working without heavy machine and great internet... logging into their datacenter/gpu machine/etc. Saves a lot of time with git pushes to work remote.
Keep up all the great work! You are moving the needle.
More debugging notes:
Seeming to have a tough time with ~/.ssh/config
hostnames.
After downloading manually, and copying in, I noticed something in the error log that may(or may not... latest source not open) be a problem.
Notice the VSCODE_AGENT_FOLDER=<homepath>/.cursro-server
lines. It does seem to connect via ssh, but the wget fails...
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal
Host
> *** System restart required ***
[11:37:55.685] > ready: cfe308896486
[11:37:55.782] > Linux 5.16.0-051600rc5-generic #202112121931 SMP PREEMPT Mon Dec 13 00:36:00 UTC 2021
[11:37:55.783] Platform: linux
[11:37:55.876] > /bin/bash
[11:37:55.876] Shell: bash
[11:37:55.877] Creating bash subshell inside "bash"
[11:37:55.978] > bash version: 5.0.17(1)-release
[11:37:56.021] > bash version: 5.0.17(1)-release
[11:37:56.135] > cfe308896486: running
[11:37:56.171] > Acquiring lock on <homepath>/.cursro-server/bin/<hash>/vscode-remote-lock.<user>.<hash>
[11:37:56.181] > Installing to <homepath>/.cursro-server/bin/<hash>...
[11:37:56.181] > cfe308896486%%1%%
[11:37:56.185] > Downloading with wget
[11:37:56.489] > wget download failed
> https://update.code.visualstudio.com/commit:<hash>/server-linux-x64/undefined: 2023-04-13 15:37:56 ERROR 404: Not Found.
> printenv:
[11:37:56.494] > SHELL=/bin/bash
> LC_ADDRESS=C.UTF-8
> LC_NAME=C.UTF-8
> LC_MONETARY=C.UTF-8
> PWD=<homepath>/.cursro-server/bin/<hash>
> LOGNAME=<user>
> MOTD_SHOWN=pam
> HOME=/home/<user>
> LANG=C.UTF-8
> LC_PAPER=C.UTF-8
> VSCODE_AGENT_FOLDER=<homepath>/.cursro-server
> SSH_CONNECTION=... 65373 ... 22
> LC_IDENTIFICATION=C.UTF-8
> USER=<user>
> SHLVL=1
> LC_TELEPHONE=C.UTF-8
> LC_MEASUREMENT=C.UTF-8
> SSH_CLIENT=... 65373 22
> LC_TIME=C.UTF-8
> XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop
> PATH=<homepath>/.cargo/bin:<homepath>/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
> LC_NUMERIC=C.UTF-8
> OLDPWD=/home/<user>
> _=/usr/bin/printenv
> Trigger local server download
> cfe308896486:trigger_server_download
> platform==linux==
> vscodeArch==x64==
> destFolder==<homepath>/.cursro-server/bin/==
> destFolder2==<hash>==
> cfe308896486:trigger_server_download_end
> Waiting for client to transfer server archive...
> Waiting for <homepath>/.cursro-server/bin/<hash>/vscode-scp-done.flag and vscode-server.tar.gz to exist
>
[11:37:56.497] Got request to download on client for {"platform":"linux","arch":"x64","destFolder":"<homepath>/.cursro-server/bin/<hash>"}
[11:37:56.498] Downloading VS Code server locally...
[11:37:56.714] Terminating local server
[11:37:56.719] Resolver error: Error: Server returned 404
at v (vscode-file://vscode-app/tmp/.mount_cursorvLtXan/resources/app/out/vs/workbench/workbench.desktop.main.js:644:63337)
at D.download (vscode-file://vscode-app/tmp/.mount_cursorvLtXan/resources/app/out/vs/workbench/workbench.desktop.main.js:645:1548)
[11:37:56.750] ------
[11:37:56.752] Local server exit: 15
On the remote server, I have this:
tree -a .cursro-server/
.cursro-server/
└── bin
└── <hash>
└── vscode-server.tar.gz
2 directories, 1 file
1) Is cursro-server
trying to be cursor-server
somewhere else?
Worst case scenario it's a typo... best case it fixes it?
2) What is supposed to be where undefined
is in the wget link?
> https://update.code.visualstudio.com/commit:<hash>/server-linux-x64/undefined: 2023-04-13 15:37:56 ERROR 404: Not Found.
Cautiously optimistic that this may not be a huge undertaking to get this working?
Is there any progress here? My team is heavily using Remote-SSH for coding in VS Code, the lack of this feature has a significant impact on us.
Latest version as above, how to fix this error:"[10:54:49.306] Resolver error: Error: Server returned 404"
Hey! We just shipped a patch that updates the OpenRemote SSH extension to work within Cursor.
Does using that extension work for everyone here now? Lmk if you run into any issues.
Hey! We just shipped a patch that updates the OpenRemote SSH extension to work within Cursor.
Does using that extension work for everyone here now? Lmk if you run into any issues.
The download url is not correct. Here's the log:
[Trace - 05:57:52.908] Server install command stdout:
Error downloading server from https://github.com/VSCodium/vscodium/releases/download/1.76.2./vscodium-reh-linux-x64-1.76.2..tar.gz
13b9dc962935e8d4110abbeb: start
exitCode==1==
listeningOn====
connectionToken====
logFile==/home/shpc_100617/.cursor-server/.f9c29d73ab9f4d88cff4de986247553b5d60e71e.log==
osReleaseId==ubuntu==
arch==x86_64==
platform==Linux==
tmpDir==/run/user/1015==
SSH_AUTH_SOCK==/tmp/ssh-5566ddxqTF/agent.25640==
13b9dc962935e8d4110abbeb: end
Open Remote-SSH extension version
Successfully ssh into remote server after updating cursor to version 0.2.8. But lots of extensions couldn't work(it shows "Reload Required", and I can't fix it with reopen cursor or reload window. Is this a new bug as mentioned in https://github.com/microsoft/vscode/issues/144900 ?
I'll leave this issue pinned for people to get to easily. Any problems regarding SSH should be reported here, as it's likely others may face the same issue.
Encountering the same issue. Open Remote SSH installed today (not sure how to view version info).
Version: 0.2.11 Commit: 089994861982da4f5555ef3f09d044ae1b16f997 Date: 2023-05-09T09:12:52.091Z Electron: 19.1.9 Chromium: 102.0.5005.167 Node.js: 16.14.2 V8: 10.2.154.15-electron.0 OS: Darwin x64 21.4.0 Sandboxed: No
[19:54:36.166] > Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-52-generic x86_64)
>
> * Documentation: https://help.ubuntu.com
> * Management: https://landscape.canonical.com
> * Support: https://ubuntu.com/advantage
>
> 216 updates can be applied immediately.
> 144 of these updates are standard security updates.
> To see these additional updates run: apt list --upgradable
[19:54:36.168] > ready: 032a4d540872
[19:54:36.172] > Linux 5.15.0-52-generic #58-Ubuntu SMP Thu Oct 13 08:03:55 UTC 2022
[19:54:36.172] Platform: linux
[19:54:36.174] > /usr/bin/zsh
[19:54:36.174] Shell: zsh
[19:54:36.175] Creating bash subshell inside "zsh"
[19:54:36.178] > bash version: 5.1.16(1)-release
[19:54:36.187] > 032a4d540872: running
[19:54:36.202] > Acquiring lock on /home/gabe/.vscodium-server/bin/089994861982da4f5555ef3f09d044ae1b16f997/vscode-remote-lock.gabe.089994861982da4f5555ef3f09d044ae1b16f997
[19:54:36.204] > Installing to /home/gabe/.vscodium-server/bin/089994861982da4f5555ef3f09d044ae1b16f997...
[19:54:36.205] > 032a4d540872%%1%%
[19:54:36.208] > Downloading with wget
[19:54:36.470] > wget download failed
> https://update.code.visualstudio.com/commit:089994861982da4f5555ef3f09d044ae1b16f997/server-linux-x64/stable: 2023-05-17 19:54:36 ERROR 404: Not Found.
> printenv:
[19:54:36.470] > SHELL=/usr/bin/zsh
> PWD=/home/gabe/.vscodium-server/bin/089994861982da4f5555ef3f09d044ae1b16f997
> LOGNAME=gabe
> XDG_SESSION_TYPE=tty
> MOTD_SHOWN=pam
> HOME=/home/gabe
> LANG=en_US.UTF-8
> VSCODE_AGENT_FOLDER=/home/gabe/.vscodium-server
> SSH_CONNECTION=169.237.233.18 16200 169.237.10.129 22
> XDG_SESSION_CLASS=user
> USER=gabe
> SHLVL=1
> XDG_SESSION_ID=8291
> XDG_RUNTIME_DIR=/run/user/1000
> SSH_CLIENT=169.237.233.18 16200 22
> PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
> DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
> OLDPWD=/home/gabe
> _=/usr/bin/printenv
[19:54:36.471] > Trigger local server download
> 032a4d540872:trigger_server_download
> platform==linux==
> vscodeArch==x64==
> destFolder==/home/gabe/.vscodium-server/bin/==
> destFolder2==089994861982da4f5555ef3f09d044ae1b16f997==
> 032a4d540872:trigger_server_download_end
> Waiting for client to transfer server archive...
> Waiting for /home/gabe/.vscodium-server/bin/089994861982da4f5555ef3f09d044ae1b16f997/vscode-scp-done.flag and vscode-server.tar.gz to exist
>
[19:54:36.472] Got request to download on client for {"platform":"linux","arch":"x64","destFolder":"/home/gabe/.vscodium-server/bin/089994861982da4f5555ef3f09d044ae1b16f997"}
[19:54:36.472] Downloading VS Code server locally...
[19:54:36.716] Terminating local server
[19:54:36.717] Resolver error: Error: Server returned 404
at b (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:644:63337)
at D.download (vscode-file://vscode-app/Applications/Cursor.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:645:1548)
[19:54:36.724] ------
[19:54:36.726] Local server exit: 15
SSH Server not working for me when SSHing into Windows.
Version: 0.2.21 Commit: 87686bf468a98e679062c7958b528ea684a39010 Date: 2023-05-23T19:11:44.432Z Electron: 19.1.9 Chromium: 102.0.5005.167 Node.js: 16.14.2 V8: 10.2.154.15-electron.0 OS: Windows_NT x64 10.0.19045 Sandboxed: No
[Info - 08:21:35.263] Resolving ssh remote authority 'ssh-remote+SERVERNAME' (attemp #1)
[Error - 08:21:35.275] Couldn't get identities from OpenSSH agent
Error: Failed to connect to agent
at Socket.n (c:\Users\d_perks\AppData\Local\Programs\cursor\resources\app\extensions\jeanp413.open-remote-ssh\out\extension.js:1:124229)
at Socket.emit (node:events:526:28)
at Socket.emit (node:domain:475:12)
at emitErrorNT (node:internal/streams/destroy:157:8)
at emitErrorCloseNT (node:internal/streams/destroy:122:3)
at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
[Trace - 08:21:35.275] Identity keys:
None
[Info - 08:21:35.516] Trying no-auth authentication
[Info - 08:21:35.572] Trying password authentication
[Trace - 08:21:54.322] Detected platform: windows, cmd
[Trace - 08:21:54.327] Server install command:
# Server installation script
$TMP_DIR="$env:TEMP\$([System.IO.Path]::GetRandomFileName())"
$DISTRO_VERSION="1.76.2"
$DISTRO_COMMIT="87686bf468a98e679062c7958b528ea684a39010"
$DISTRO_QUALITY="stable"
$DISTRO_VSCODIUM_RELEASE="23074"
$SERVER_APP_NAME="codium-server"
$SERVER_INITIAL_EXTENSIONS=""
$SERVER_LISTEN_FLAG="--port=0"
$SERVER_DATA_DIR="$(Resolve-Path ~)\.vscodium-server"
$SERVER_DIR="$SERVER_DATA_DIR\bin\$DISTRO_COMMIT"
$SERVER_SCRIPT="$SERVER_DIR\bin\$SERVER_APP_NAME.cmd"
$SERVER_LOGFILE="$SERVER_DATA_DIR\.$DISTRO_COMMIT.log"
$SERVER_PIDFILE="$SERVER_DATA_DIR\.$DISTRO_COMMIT.pid"
$SERVER_TOKENFILE="$SERVER_DATA_DIR\.$DISTRO_COMMIT.token"
$SERVER_OS="win32"
$SERVER_ARCH=
$SERVER_CONNECTION_TOKEN=
$SERVER_DOWNLOAD_URL=
$LISTENING_ON=
$OS_RELEASE_ID=
$ARCH=
function printInstallResults($code) {
"b653d51199aee0e148194315: start"
"exitCode==$code=="
"listeningOn==$LISTENING_ON=="
"connectionToken==$SERVER_CONNECTION_TOKEN=="
"logFile==$SERVER_LOGFILE=="
"osReleaseId==$OS_RELEASE_ID=="
"arch==$ARCH=="
"platform==windows=="
"tmpDir==$TMP_DIR=="
"b653d51199aee0e148194315: end"
}
# Check machine architecture
$ARCH=$env:PROCESSOR_ARCHITECTURE
if(($ARCH -eq "AMD64") -or ($ARCH -eq "IA64")) {
$SERVER_ARCH="x64"
}
else {
"Error architecture not supported: $ARCH"
printInstallResults 1
exit 0
}
# Create installation folder
if(!(Test-Path $SERVER_DIR)) {
try {
ni -it d $SERVER_DIR -f -ea si
} catch {
"Error creating server install directory - $($_.ToString())"
exit 1
}
if(!(Test-Path $SERVER_DIR)) {
"Error creating server install directory"
exit 1
}
}
cd $SERVER_DIR
# Check if server script is already installed
if(!(Test-Path $SERVER_SCRIPT)) {
del vscode-server.tar.gz
$REQUEST_ARGUMENTS = @{
Uri="https://github.com/VSCodium/vscodium/releases/download/1.76.2.23074/vscodium-reh-win32-x64-1.76.2.23074.tar.gz"
TimeoutSec=20
OutFile="vscode-server.tar.gz"
UseBasicParsing=$True
}
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Invoke-RestMethod @REQUEST_ARGUMENTS
if(Test-Path "vscode-server.tar.gz") {
tar -xf vscode-server.tar.gz --strip-components 1
del vscode-server.tar.gz
}
if(!(Test-Path $SERVER_SCRIPT)) {
"Error while installing the server binary"
exit 1
}
}
else {
"Server script already installed in $SERVER_SCRIPT"
}
# Try to find if server is already running
if(Get-Process node -ErrorAction SilentlyContinue | Where-Object Path -Like "$SERVER_DIR\*") {
echo "Server script is already running $SERVER_SCRIPT"
}
else {
if(Test-Path $SERVER_LOGFILE) {
del $SERVER_LOGFILE
}
if(Test-Path $SERVER_PIDFILE) {
del $SERVER_PIDFILE
}
if(Test-Path $SERVER_TOKENFILE) {
del $SERVER_TOKENFILE
}
$SERVER_CONNECTION_TOKEN="1daf6a58-b965-4cfc-9b6a-a5a0d291d956"
[System.IO.File]::WriteAllLines($SERVER_TOKENFILE, $SERVER_CONNECTION_TOKEN)
$SCRIPT_ARGUMENTS="--start-server --host=127.0.0.1 $SERVER_LISTEN_FLAG $SERVER_INITIAL_EXTENSIONS --connection-token-file $SERVER_TOKENFILE --telemetry-level off --enable-remote-auto-shutdown --accept-server-license-terms *> '$SERVER_LOGFILE'"
$START_ARGUMENTS = @{
FilePath = "powershell.exe"
WindowStyle = "hidden"
ArgumentList = @(
"-ExecutionPolicy", "Unrestricted", "-NoLogo", "-NoProfile", "-NonInteractive", "-c", "$SERVER_SCRIPT $SCRIPT_ARGUMENTS"
)
PassThru = $True
}
$SERVER_ID = (start @START_ARGUMENTS).ID
if($SERVER_ID) {
[System.IO.File]::WriteAllLines($SERVER_PIDFILE, $SERVER_ID)
}
}
if(Test-Path $SERVER_TOKENFILE) {
$SERVER_CONNECTION_TOKEN="$(cat $SERVER_TOKENFILE)"
}
else {
"Error server token file not found $SERVER_TOKENFILE"
printInstallResults 1
exit 0
}
sleep -Milliseconds 500
$SELECT_ARGUMENTS = @{
Path = $SERVER_LOGFILE
Pattern = "Extension host agent listening on (\d+)"
}
for($I = 1; $I -le 5; $I++) {
if(Test-Path $SERVER_LOGFILE) {
$GROUPS = (Select-String @SELECT_ARGUMENTS).Matches.Groups
if($GROUPS) {
$LISTENING_ON = $GROUPS[1].Value
break
}
}
sleep -Milliseconds 500
}
if(!(Test-Path $SERVER_LOGFILE)) {
"Error server log file not found $SERVER_LOGFILE"
printInstallResults 1
exit 0
}
# Finish server setup
printInstallResults 0
if($SERVER_ID) {
while($True) {
if(!(gps -Id $SERVER_ID)) {
"server died, exit"
exit 0
}
sleep 30
}
}
[Trace - 08:21:54.327] Command length (8191 max):
4902
[Trace - 08:22:35.350] Server install command stderr:
del : Cannot find path
'C:\Users\D_PERKS\.vscodium-server\bin\87686bf468a98e679062c7958b528ea684a39010\vscode-server.tar.gz' because it does
not exist.
At C:\Users\D_PERKS\.vscodium-server\install\87686bf468a98e679062c7958b528ea684a39010.ps1:58 char:1
+ del vscode-server.tar.gz
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Users\D_PERK...e-server.tar.gz:String) [Remove-Item], ItemNotFoundEx
ception
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand
tar : The term 'tar' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At C:\Users\D_PERKS\.vscodium-server\install\87686bf468a98e679062c7958b528ea684a39010.ps1:68 char:1
+ tar -xf vscode-server.tar.gz --strip-components 1
+ ~~~
+ CategoryInfo : ObjectNotFound: (tar:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
[Trace - 08:22:35.351] Server install command stdout:
Directory: C:\Users\D_PERKS\.vscodium-server
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 25/05/2023 09:19 install
Error while installing the server binary
[Error - 08:22:35.352] Error resolving authority
Error: Failed parsing install script output
at t.installCodeServer (c:\Users\d_perks\AppData\Local\Programs\cursor\resources\app\extensions\jeanp413.open-remote-ssh\out\extension.js:1:423172)
at process.processTicksAndRejections (node:internal/process/task_queues:96:5)
at async c:\Users\d_perks\AppData\Local\Programs\cursor\resources\app\extensions\jeanp413.open-remote-ssh\out\extension.js:1:387528
I'm getting this issue today on latest when trying to connect via ssh to my linux server for the 1st time from Cursor (it works fine from vscode). I believe the issue is it's trying to download https://github.com/VSCodium/vscodium/releases/download/1.79.2.23074/vscodium-reh-linux-x64-1.79.2.23074.tar.gz which gives me a 404 when I try it myself.
I'm using Cursor on Windows and ssh-ing into Ubuntu. I already use mainline vscode to ssh on this remote, and I am attempting to connect to it from Cursor as well. Not sure if that is relevant.
Cursor version info for reference:
Version: 0.2.33
VSCode Version: 1.79.2
Commit: e3abfc3de36742f113a8f1 f4648d8c7044ec2f31
Date: (1 day ago)
Electron: 19.1.9
Chromium: 102.0.5005.167
Node.js: 16.14.2
V8: 10.2.154.15-electron.o
OS: Windows NT x64 10.0.19044
Sandboxed: No
Full logs below:
[Info - 19:37:51.385] Resolving ssh remote authority 'ssh-remote+do<my-username>' (attemp #1)
[Error - 19:37:51.398] Couldn't get identities from OpenSSH agent
Error: Failed to connect to agent
at Socket.n (c:\Users\<my-username>\AppData\Local\Programs\Cursor\resources\app\extensions\jeanp413.open-remote-ssh\out\extension.js:1:124229)
at Socket.emit (node:events:526:28)
at Socket.emit (node:domain:475:12)
at emitErrorNT (node:internal/streams/destroy:157:8)
at emitErrorCloseNT (node:internal/streams/destroy:122:3)
at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
[Trace - 19:37:51.398] Identity keys:
C:\Users\<my-username>/.ssh/<my-rsa-filename> ssh-rsa SHA256:XVPXaCVz9QPJ+ynTwJK+PFwa0JnyE1Gu3sdNuf58jiY=
[Info - 19:37:51.557] Trying no-auth authentication
[Info - 19:37:51.578] Trying publickey authentication: C:\Users\<my-username>/.ssh/<my-rsa-filename> ssh-rsa SHA256:XVPXaCVz9QPJ+ynTwJK+PFwa0JnyE1Gu3sdNuf58jiY=
[Trace - 19:37:51.795] Server install command:
# Server installation script
TMP_DIR="${XDG_RUNTIME_DIR:-"/tmp"}"
DISTRO_VERSION="1.79.2"
DISTRO_COMMIT="e3abfc3de36742f113a8f1f4648d8c7044ec2f31"
DISTRO_QUALITY="stable"
DISTRO_VSCODIUM_RELEASE="23074"
SERVER_APP_NAME="codium-server"
SERVER_INITIAL_EXTENSIONS=""
SERVER_LISTEN_FLAG="--port=0"
SERVER_DATA_DIR="$HOME/.vscodium-server"
SERVER_DIR="$SERVER_DATA_DIR/bin/$DISTRO_COMMIT"
SERVER_SCRIPT="$SERVER_DIR/bin/$SERVER_APP_NAME"
SERVER_LOGFILE="$SERVER_DATA_DIR/.$DISTRO_COMMIT.log"
SERVER_PIDFILE="$SERVER_DATA_DIR/.$DISTRO_COMMIT.pid"
SERVER_TOKENFILE="$SERVER_DATA_DIR/.$DISTRO_COMMIT.token"
SERVER_OS=
SERVER_ARCH=
SERVER_CONNECTION_TOKEN=
SERVER_DOWNLOAD_URL=
LISTENING_ON=
OS_RELEASE_ID=
ARCH=
PLATFORM=
# Mimic output from logs of remote-ssh extension
print_install_results_and_exit() {
echo "bebf35ae1c9718e5cd49a9b7: start"
echo "exitCode==$1=="
echo "listeningOn==$LISTENING_ON=="
echo "connectionToken==$SERVER_CONNECTION_TOKEN=="
echo "logFile==$SERVER_LOGFILE=="
echo "osReleaseId==$OS_RELEASE_ID=="
echo "arch==$ARCH=="
echo "platform==$PLATFORM=="
echo "tmpDir==$TMP_DIR=="
echo "bebf35ae1c9718e5cd49a9b7: end"
exit 0
}
# Check if platform is supported
PLATFORM="$(uname -s)"
case $PLATFORM in
Darwin)
SERVER_OS="darwin"
;;
Linux)
SERVER_OS="linux"
;;
FreeBSD)
SERVER_OS="freebsd"
;;
*)
echo "Error platform not supported: $PLATFORM"
print_install_results_and_exit 1
;;
esac
# Check machine architecture
ARCH="$(uname -m)"
case $ARCH in
x86_64 | amd64)
SERVER_ARCH="x64"
;;
armv7l | armv8l)
SERVER_ARCH="armhf"
;;
arm64 | aarch64)
SERVER_ARCH="arm64"
;;
*)
echo "Error architecture not supported: $ARCH"
print_install_results_and_exit 1
;;
esac
# https://www.freedesktop.org/software/systemd/man/os-release.html
OS_RELEASE_ID="$(grep -i '^ID=' /etc/os-release 2>/dev/null | sed 's/^ID=//gi' | sed 's/"//g')"
if [[ -z $OS_RELEASE_ID ]]; then
OS_RELEASE_ID="$(grep -i '^ID=' /usr/lib/os-release 2>/dev/null | sed 's/^ID=//gi' | sed 's/"//g')"
if [[ -z $OS_RELEASE_ID ]]; then
OS_RELEASE_ID="unknown"
fi
fi
# Create installation folder
if [[ ! -d $SERVER_DIR ]]; then
mkdir -p $SERVER_DIR
if (( $? > 0 )); then
echo "Error creating server install directory"
print_install_results_and_exit 1
fi
fi
SERVER_DOWNLOAD_URL="$(echo "https://github.com/VSCodium/vscodium/releases/download/\${version}.\${release}/vscodium-reh-\${os}-\${arch}-\${version}.\${release}.tar.gz" | sed "s/\${quality}/$DISTRO_QUALITY/g" | sed "s/\${version}/$DISTRO_VERSION/g" | sed "s/\${commit}/$DISTRO_COMMIT/g" | sed "s/\${os}/$SERVER_OS/g" | sed "s/\${arch}/$SERVER_ARCH/g" | sed "s/\${release}/$DISTRO_VSCODIUM_RELEASE/g")"
# Check if server script is already installed
if [[ ! -f $SERVER_SCRIPT ]]; then
if [[ "$SERVER_OS" = "freebsd" ]]; then
echo "Error FreeBSD needs manual installation of remote extension host"
print_install_results_and_exit 1
fi
pushd $SERVER_DIR > /dev/null
if [[ ! -z $(which wget) ]]; then
wget --tries=3 --timeout=10 --continue --quiet -O vscode-server.tar.gz $SERVER_DOWNLOAD_URL
elif [[ ! -z $(which curl) ]]; then
curl --retry 3 --connect-timeout 10 --location --silent --output vscode-server.tar.gz $SERVER_DOWNLOAD_URL
else
echo "Error no tool to download server binary"
print_install_results_and_exit 1
fi
if (( $? > 0 )); then
echo "Error downloading server from $SERVER_DOWNLOAD_URL"
print_install_results_and_exit 1
fi
tar -xf vscode-server.tar.gz --strip-components 1
if (( $? > 0 )); then
echo "Error while extracting server contents"
print_install_results_and_exit 1
fi
if [[ ! -f $SERVER_SCRIPT ]]; then
echo "Error server contents are corrupted"
print_install_results_and_exit 1
fi
rm -f vscode-server.tar.gz
popd > /dev/null
else
echo "Server script already installed in $SERVER_SCRIPT"
fi
# Try to find if server is already running
if [[ -f $SERVER_PIDFILE ]]; then
SERVER_PID="$(cat $SERVER_PIDFILE)"
SERVER_RUNNING_PROCESS="$(ps -o pid,args -p $SERVER_PID | grep $SERVER_SCRIPT)"
else
SERVER_RUNNING_PROCESS="$(ps -o pid,args -A | grep $SERVER_SCRIPT | grep -v grep)"
fi
if [[ -z $SERVER_RUNNING_PROCESS ]]; then
if [[ -f $SERVER_LOGFILE ]]; then
rm $SERVER_LOGFILE
fi
if [[ -f $SERVER_TOKENFILE ]]; then
rm $SERVER_TOKENFILE
fi
touch $SERVER_TOKENFILE
chmod 600 $SERVER_TOKENFILE
SERVER_CONNECTION_TOKEN="f9b86595-5eb0-468e-9900-8e7b06c4e7bc"
echo $SERVER_CONNECTION_TOKEN > $SERVER_TOKENFILE
$SERVER_SCRIPT --start-server --host=127.0.0.1 $SERVER_LISTEN_FLAG $SERVER_INITIAL_EXTENSIONS --connection-token-file $SERVER_TOKENFILE --telemetry-level off --enable-remote-auto-shutdown --accept-server-license-terms &> $SERVER_LOGFILE &
echo $! > $SERVER_PIDFILE
else
echo "Server script is already running $SERVER_SCRIPT"
fi
if [[ -f $SERVER_TOKENFILE ]]; then
SERVER_CONNECTION_TOKEN="$(cat $SERVER_TOKENFILE)"
else
echo "Error server token file not found $SERVER_TOKENFILE"
print_install_results_and_exit 1
fi
if [[ -f $SERVER_LOGFILE ]]; then
for i in {1..5}; do
LISTENING_ON="$(cat $SERVER_LOGFILE | grep -E 'Extension host agent listening on .+' | sed 's/Extension host agent listening on //')"
if [[ -n $LISTENING_ON ]]; then
break
fi
sleep 0.5
done
if [[ -z $LISTENING_ON ]]; then
echo "Error server did not start sucessfully"
print_install_results_and_exit 1
fi
else
echo "Error server log file not found $SERVER_LOGFILE"
print_install_results_and_exit 1
fi
# Finish server setup
print_install_results_and_exit 0
[Trace - 19:37:52.140] Server install command stdout:
Error downloading server from https://github.com/VSCodium/vscodium/releases/download/1.79.2.23074/vscodium-reh-linux-x64-1.79.2.23074.tar.gz
bebf35ae1c9718e5cd49a9b7: start
exitCode==1==
listeningOn====
connectionToken====
logFile==/home/<my-username>/.vscodium-server/.e3abfc3de36742f113a8f1f4648d8c7044ec2f31.log==
osReleaseId==ubuntu==
arch==x86_64==
platform==Linux==
tmpDir==/run/user/1000==
bebf35ae1c9718e5cd49a9b7: end
[Error - 19:37:52.141] Error resolving authority
Error: Couldn't install vscode server on remote server, install script returned non-zero exit status
at t.installCodeServer (c:\Users\<my-username>\AppData\Local\Programs\Cursor\resources\app\extensions\jeanp413.open-remote-ssh\out\extension.js:1:423265)
at process.processTicksAndRejections (node:internal/process/task_queues:96:5)
at async c:\Users\<my-username>\AppData\Local\Programs\Cursor\resources\app\extensions\jeanp413.open-remote-ssh\out\extension.js:1:387528
Got same error
Error downloading server from https://github.com/VSCodium/vscodium/releases/download/1.79.2.23074/vscodium-reh-linux-x64-1.79.2.23074.tar.gz
Cursor version info for reference:
Version: 0.2.33 VSCode Version: 1.79.2 Commit: e3abfc3de36742f113a8f1f4648d8c7044ec2f31 Date: 2023-06-17T18:18:06.946Z Electron: 19.1.9 Chromium: 102.0.5005.167 Node.js: 16.14.2 V8: 10.2.154.15-electron.0 OS: Windows_NT x64 10.0.19045 Sandboxed: No
Full logs below:
[Info - 19:37:51.385] Resolving ssh remote authority 'ssh-remote+do<my-username>' (attemp #1) [Error - 19:37:51.398] Couldn't get identities from OpenSSH agent Error: Failed to connect to agent at Socket.n (c:\Users\<my-username>\AppData\Local\Programs\Cursor\resources\app\extensions\jeanp413.open-remote-ssh\out\extension.js:1:124229) at Socket.emit (node:events:526:28) at Socket.emit (node:domain:475:12) at emitErrorNT (node:internal/streams/destroy:157:8) at emitErrorCloseNT (node:internal/streams/destroy:122:3) at process.processTicksAndRejections (node:internal/process/task_queues:83:21) [Trace - 19:37:51.398] Identity keys: C:\Users\<my-username>/.ssh/<my-rsa-filename> ssh-rsa SHA256:XVPXaCVz9QPJ+ynTwJK+PFwa0JnyE1Gu3sdNuf58jiY= [Info - 19:37:51.557] Trying no-auth authentication [Info - 19:37:51.578] Trying publickey authentication: C:\Users\<my-username>/.ssh/<my-rsa-filename> ssh-rsa SHA256:XVPXaCVz9QPJ+ynTwJK+PFwa0JnyE1Gu3sdNuf58jiY= [Trace - 19:37:51.795] Server install command: # Server installation script TMP_DIR="${XDG_RUNTIME_DIR:-"/tmp"}" DISTRO_VERSION="1.79.2" DISTRO_COMMIT="e3abfc3de36742f113a8f1f4648d8c7044ec2f31" DISTRO_QUALITY="stable" DISTRO_VSCODIUM_RELEASE="23074" SERVER_APP_NAME="codium-server" SERVER_INITIAL_EXTENSIONS="" SERVER_LISTEN_FLAG="--port=0" SERVER_DATA_DIR="$HOME/.vscodium-server" SERVER_DIR="$SERVER_DATA_DIR/bin/$DISTRO_COMMIT" SERVER_SCRIPT="$SERVER_DIR/bin/$SERVER_APP_NAME" SERVER_LOGFILE="$SERVER_DATA_DIR/.$DISTRO_COMMIT.log" SERVER_PIDFILE="$SERVER_DATA_DIR/.$DISTRO_COMMIT.pid" SERVER_TOKENFILE="$SERVER_DATA_DIR/.$DISTRO_COMMIT.token" SERVER_OS= SERVER_ARCH= SERVER_CONNECTION_TOKEN= SERVER_DOWNLOAD_URL= LISTENING_ON= OS_RELEASE_ID= ARCH= PLATFORM= # Mimic output from logs of remote-ssh extension print_install_results_and_exit() { echo "bebf35ae1c9718e5cd49a9b7: start" echo "exitCode==$1==" echo "listeningOn==$LISTENING_ON==" echo "connectionToken==$SERVER_CONNECTION_TOKEN==" echo "logFile==$SERVER_LOGFILE==" echo "osReleaseId==$OS_RELEASE_ID==" echo "arch==$ARCH==" echo "platform==$PLATFORM==" echo "tmpDir==$TMP_DIR==" echo "bebf35ae1c9718e5cd49a9b7: end" exit 0 } # Check if platform is supported PLATFORM="$(uname -s)" case $PLATFORM in Darwin) SERVER_OS="darwin" ;; Linux) SERVER_OS="linux" ;; FreeBSD) SERVER_OS="freebsd" ;; *) echo "Error platform not supported: $PLATFORM" print_install_results_and_exit 1 ;; esac # Check machine architecture ARCH="$(uname -m)" case $ARCH in x86_64 | amd64) SERVER_ARCH="x64" ;; armv7l | armv8l) SERVER_ARCH="armhf" ;; arm64 | aarch64) SERVER_ARCH="arm64" ;; *) echo "Error architecture not supported: $ARCH" print_install_results_and_exit 1 ;; esac # https://www.freedesktop.org/software/systemd/man/os-release.html OS_RELEASE_ID="$(grep -i '^ID=' /etc/os-release 2>/dev/null | sed 's/^ID=//gi' | sed 's/"//g')" if [[ -z $OS_RELEASE_ID ]]; then OS_RELEASE_ID="$(grep -i '^ID=' /usr/lib/os-release 2>/dev/null | sed 's/^ID=//gi' | sed 's/"//g')" if [[ -z $OS_RELEASE_ID ]]; then OS_RELEASE_ID="unknown" fi fi # Create installation folder if [[ ! -d $SERVER_DIR ]]; then mkdir -p $SERVER_DIR if (( $? > 0 )); then echo "Error creating server install directory" print_install_results_and_exit 1 fi fi SERVER_DOWNLOAD_URL="$(echo "https://github.com/VSCodium/vscodium/releases/download/\${version}.\${release}/vscodium-reh-\${os}-\${arch}-\${version}.\${release}.tar.gz" | sed "s/\${quality}/$DISTRO_QUALITY/g" | sed "s/\${version}/$DISTRO_VERSION/g" | sed "s/\${commit}/$DISTRO_COMMIT/g" | sed "s/\${os}/$SERVER_OS/g" | sed "s/\${arch}/$SERVER_ARCH/g" | sed "s/\${release}/$DISTRO_VSCODIUM_RELEASE/g")" # Check if server script is already installed if [[ ! -f $SERVER_SCRIPT ]]; then if [[ "$SERVER_OS" = "freebsd" ]]; then echo "Error FreeBSD needs manual installation of remote extension host" print_install_results_and_exit 1 fi pushd $SERVER_DIR > /dev/null if [[ ! -z $(which wget) ]]; then wget --tries=3 --timeout=10 --continue --quiet -O vscode-server.tar.gz $SERVER_DOWNLOAD_URL elif [[ ! -z $(which curl) ]]; then curl --retry 3 --connect-timeout 10 --location --silent --output vscode-server.tar.gz $SERVER_DOWNLOAD_URL else echo "Error no tool to download server binary" print_install_results_and_exit 1 fi if (( $? > 0 )); then echo "Error downloading server from $SERVER_DOWNLOAD_URL" print_install_results_and_exit 1 fi tar -xf vscode-server.tar.gz --strip-components 1 if (( $? > 0 )); then echo "Error while extracting server contents" print_install_results_and_exit 1 fi if [[ ! -f $SERVER_SCRIPT ]]; then echo "Error server contents are corrupted" print_install_results_and_exit 1 fi rm -f vscode-server.tar.gz popd > /dev/null else echo "Server script already installed in $SERVER_SCRIPT" fi # Try to find if server is already running if [[ -f $SERVER_PIDFILE ]]; then SERVER_PID="$(cat $SERVER_PIDFILE)" SERVER_RUNNING_PROCESS="$(ps -o pid,args -p $SERVER_PID | grep $SERVER_SCRIPT)" else SERVER_RUNNING_PROCESS="$(ps -o pid,args -A | grep $SERVER_SCRIPT | grep -v grep)" fi if [[ -z $SERVER_RUNNING_PROCESS ]]; then if [[ -f $SERVER_LOGFILE ]]; then rm $SERVER_LOGFILE fi if [[ -f $SERVER_TOKENFILE ]]; then rm $SERVER_TOKENFILE fi touch $SERVER_TOKENFILE chmod 600 $SERVER_TOKENFILE SERVER_CONNECTION_TOKEN="f9b86595-5eb0-468e-9900-8e7b06c4e7bc" echo $SERVER_CONNECTION_TOKEN > $SERVER_TOKENFILE $SERVER_SCRIPT --start-server --host=127.0.0.1 $SERVER_LISTEN_FLAG $SERVER_INITIAL_EXTENSIONS --connection-token-file $SERVER_TOKENFILE --telemetry-level off --enable-remote-auto-shutdown --accept-server-license-terms &> $SERVER_LOGFILE & echo $! > $SERVER_PIDFILE else echo "Server script is already running $SERVER_SCRIPT" fi if [[ -f $SERVER_TOKENFILE ]]; then SERVER_CONNECTION_TOKEN="$(cat $SERVER_TOKENFILE)" else echo "Error server token file not found $SERVER_TOKENFILE" print_install_results_and_exit 1 fi if [[ -f $SERVER_LOGFILE ]]; then for i in {1..5}; do LISTENING_ON="$(cat $SERVER_LOGFILE | grep -E 'Extension host agent listening on .+' | sed 's/Extension host agent listening on //')" if [[ -n $LISTENING_ON ]]; then break fi sleep 0.5 done if [[ -z $LISTENING_ON ]]; then echo "Error server did not start sucessfully" print_install_results_and_exit 1 fi else echo "Error server log file not found $SERVER_LOGFILE" print_install_results_and_exit 1 fi # Finish server setup print_install_results_and_exit 0 [Trace - 19:37:52.140] Server install command stdout: Error downloading server from https://github.com/VSCodium/vscodium/releases/download/1.79.2.23074/vscodium-reh-linux-x64-1.79.2.23074.tar.gz bebf35ae1c9718e5cd49a9b7: start exitCode==1== listeningOn==== connectionToken==== logFile==/home/<my-username>/.vscodium-server/.e3abfc3de36742f113a8f1f4648d8c7044ec2f31.log== osReleaseId==ubuntu== arch==x86_64== platform==Linux== tmpDir==/run/user/1000== bebf35ae1c9718e5cd49a9b7: end [Error - 19:37:52.141] Error resolving authority Error: Couldn't install vscode server on remote server, install script returned non-zero exit status at t.installCodeServer (c:\Users\<my-username>\AppData\Local\Programs\Cursor\resources\app\extensions\jeanp413.open-remote-ssh\out\extension.js:1:423265) at process.processTicksAndRejections (node:internal/process/task_queues:96:5) at async c:\Users\<my-username>\AppData\Local\Programs\Cursor\resources\app\extensions\jeanp413.open-remote-ssh\out\extension.js:1:387528
I have a same problem in cursor, It's fine for sshing by vscode's remote-ssh. @truell20
Got the same problem, hope to get fixed ASAP.
When I tried to open folder with SSH, I was told to enter ssh command. After using ssh username@hostname
, I got nothing, there's not even an error message.
Version: 0.2.37 VSCode Version: 1.79.2 Commit: a4f4e594906849159ac43b6bfbe378b787278368 Date: 2023-06-28T03:04:39.814Z Electron: 22.3.10 Chromium: 108.0.5359.215 Node.js: 16.17.1 V8: 10.8.168.25-electron.0 OS: Windows_NT x64 10.0.22621
I tried to use remote ssh on mac to connect my remote Ubuntu, well, after I enter the ip, port and password, the window is always "Setting up SSH Host", not changing over 30minutes, and I connect it with vscode, it shows fine.
Version: 0.2.44 VSCode Version: 1.79.2 Commit: 9de02148efd4c8c600f511f719ad6f60337c15b3 Date: 2023-07-08T09:13:19.139Z Electron: 22.3.10 Chromium: 108.0.5359.215 Node.js: 16.17.1 V8: 10.8.168.25-electron.0 OS: Darwin arm64 22.5.0
For anyone still having this issue. Just removing vscode remote ssh extension and using cursor built-in remote ssh works fine for me.
I'm using ssh command with the key file to connect to an aws instance. why it asked for "passphrase" for a different key?
Most of the problems in this thread are now solved! For any remaining problems with SSH in Cursor, let's open up new issues.
@arvid220u What's the fix? It didn't seem like this got resolved; I'm running into the same issue.
@arvid220u As @bamps53 mentioned, removing any remote- and ssh-related extensions resolved the problem.
removing any remote
Clicking "Open with SSH" prompts to install one of them for me. Did you have to configure any settings to use Cursor's built-in remote ssh?
@bamps53
Can't find "Remote-SSH" extension in cursor, which is available in vscode. Provide more selections in extensions panel, or allow installing extentions locally?