Skip to content

feat: add SSH plugin with pre_entrypoint and ports support#95

Merged
donbader merged 2 commits into
mainfrom
feat/ssh-plugin
Jun 4, 2026
Merged

feat: add SSH plugin with pre_entrypoint and ports support#95
donbader merged 2 commits into
mainfrom
feat/ssh-plugin

Conversation

@dorey-agent
Copy link
Copy Markdown
Contributor

@dorey-agent dorey-agent Bot commented Jun 4, 2026

Summary

Adds an SSH plugin for v1 architecture, enabling remote development access (IDE, debugging, file transfer) inside agent containers.

Plugin Model Extensions

Two new fields added to RuntimeContrib:

Field Purpose
pre_entrypoint Commands injected into entrypoint.sh before exec "$@"
ports Port mappings exposed on the agent container

These are generic enough to support future plugins (VNC, dev servers, etc).

SSH Plugin (core/plugins/ssh/)

  • Installs openssh-server at build time
  • Starts sshd as a background daemon before the agent CMD
  • Key-only auth (password disabled)
  • Host key generated at build time (persistent key via runtime.volumes if needed)

Usage

installations:
  - plugin: ssh
    options:
      port: 2222
      authorized_keys: "./ssh_key.pub"

Related

Inspired by PR #89 (v0 SSH support). This is the v1 data-driven equivalent — no Go plugin code needed.

Testing

  • Unit tests for EntrypointScript with/without pre_entrypoint
  • Unit tests for compose port exposure
  • Unit tests for template rendering of new fields
  • Unit tests for merge logic
  • Full test suite passes, build succeeds

dorey-agent[bot] added 2 commits June 4, 2026 08:27
Extend the plugin contribution model with two new RuntimeContrib fields:
- pre_entrypoint: commands injected into entrypoint.sh before exec
- ports: port mappings exposed on the agent container

Add core/plugins/ssh which uses these to install and start sshd inside
the agent container for remote development access (IDE, debugging).
@donbader donbader merged commit e95c174 into main Jun 4, 2026
5 of 6 checks passed
@donbader donbader deleted the feat/ssh-plugin branch June 4, 2026 08:51
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.

1 participant