Skip to content

feat: exec-chaining for devcontainer on remote ssh#291

Draft
MythreyaK wants to merge 2 commits into
jeanp413:masterfrom
MythreyaK:users/mythreyak/exec
Draft

feat: exec-chaining for devcontainer on remote ssh#291
MythreyaK wants to merge 2 commits into
jeanp413:masterfrom
MythreyaK:users/mythreyak/exec

Conversation

@MythreyaK

Copy link
Copy Markdown

Disclaimer: Claude / Opencode were used for prototyping this proof-of-concept.

I have a basic devcontainer extension here, and wanted to get devcontainer on a remote ssh machine working. There is a lot of work left to be done on the devcontainer parts itself, but I was hoping we can start planning towards chaining.

I am not at all an expert in js/ts (and I leaned on Claude a little more than I'd like), so thought I'd create an issue here to discuss how we can get these extensions to talk to each other, and gather feedback and advice as well.

The corresponding branch on the devcontainer side is here. Install both, and spawn a container on a remote ssh machine.

podman run -d --name open-remote-devcontainer-devcontainer \
    -p 65120 \
    -v <some dir>:/workspace/devcontainer \
    -w /workspace/devcontainer \
    --entrypoint sleep ubuntu:24.04 infinity

podman exec -it open-remote-devcontainer-devcontainer bash -c 'apt update -y && apt install -y curl wget'

codium --folder-uri 'vscode-remote://devcontainer+devcontainer@ssh-remote+arc/workspace/devcontainer'

This should hopefully launch a window with remote target as the container. Happy to hear your thoughts!

@MythreyaK MythreyaK changed the title feat: exec-chaining feat: exec-chaining for devcontainer on remote ssh May 30, 2026
@MythreyaK
MythreyaK marked this pull request as ready for review June 2, 2026 03:22
@MythreyaK

Copy link
Copy Markdown
Author

@jeanp413 @daiyam hope you don't mind the ping : )

@daiyam

daiyam commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

I will need some time to review your PR and evaluate the possible security issues from createExecServer.

Firstly, unedit package.json.
Secondly, I don't see any call to resolveExecServer() even in your project.

@MythreyaK

MythreyaK commented Jul 3, 2026

Copy link
Copy Markdown
Author

I will need some time to review your PR and evaluate the possible security issues from createExecServer.

Of course, yeah, not urgent. This isn't meant to be merged as is, so I should probably make this a draft. Just wanted to discuss.

Firstly, unedit package.json.

I originally made that change to differentiate the local build from the upstream version. Will do both of those tomorrow 👍.

Secondly, I don't see any call to resolveExecServer() even in your project.

It should be on this branch (this commit).

I'm working on a rewrite of the devcontainer extension so I'll update this pr as well once it's a little more ready.

@daiyam

daiyam commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

Secondly, I don't see any call to resolveExecServer() even in your project.

It should be on this branch (this commit).

It's an API from VSCode.

@MythreyaK

Copy link
Copy Markdown
Author

resolveExecServer is implemented in the first hop, so this PR. Once the SSH connection is established, the devcontainer extension uses it for exec-spawn on the remote machine, is my mental model of the API. Please correct me if I'm wrong here!

@MythreyaK
MythreyaK force-pushed the users/mythreyak/exec branch from baafac8 to b1e3429 Compare July 4, 2026 04:04
@MythreyaK
MythreyaK marked this pull request as draft July 4, 2026 04:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants