Skip to content
Agent Workspaces
Agent

remote-development

Remote functionality is owned by the workspace server runtime. The Electron app keeps SSH connection management for transport, credentials, host config parsing, and external "open in SSH" integrations, but runtime behavior should go through the workspace-server wire contract

From plugin
emdash
6.2k33 skills33 agents

Agent definition

remote-development.md

Remote Development

Current Model

Remote functionality is owned by the workspace server runtime. The Electron app keeps SSH connection management for transport, credentials, host config parsing, and external "open in SSH" integrations, but runtime behavior should go through the workspace-server wire contract instead of desktop-side SSH exec, SFTP, PTY, or shell-profile code.

Main Files

  • `apps/workspace-server/src/` — daemon entry point, socket serving, runtime wiring
  • `packages/core/src/workspace-server/` — shared wire contract, schemas, protocol

versioning, and workspace-server-specific APIs

  • `packages/core/src/workspace-server/releases.ts` — channel-pointer schema, strict

release versions, and protocol-major pointer paths

  • `src/core/services/ssh/` — desktop SSH connection management, credentials, config

parsing, and transport setup

  • `src/core/services/hosts/` — managed remote install/ensure flow and the

reconnecting Wire client over SSH streamlocal forwarding

  • `src/main/core/wire-workers/` — desktop-local wire runtime workers for local

projects while remote runtimes are served by the workspace server

  • `src/main/utils/remoteOpenIn.ts` and `src/main/utils/shellEscape.ts` — external

SSH URL/command helpers that intentionally bypass workspace-server runtimes

Authentication And Storage

  • SSH credentials are managed through the SSH services and OS-backed secret storage
  • host key handling is implemented under `src/main/core/ssh/`
  • runtime dependency state for remote hosts belongs to the workspace-server

`hostDependencies` component, not an Electron-side SSH execution context

  • the desktop owns the managed install under `~/.emdash/workspace-server`; remote

runtime calls begin only after the workspace-server provisioner reports ready

  • managed installs read the desktop channel's pointer for its protocol major, then

run the immutable versioned `install.sh` with the pointer's artifact version pinned

Rules

  • treat all shell construction as security-sensitive
  • use shared SSH and shell-escaping helpers instead of ad hoc quoting
  • do not add new desktop-side SSH exec, SFTP, PTY, or shell-profile paths for

runtime behavior; add or consume workspace-server wire APIs instead

  • desktop-side SSH exec is limited to the workspace-server control plane: probing

the host, checksum-verified installation, and daemon lifecycle commands

  • port-forward preview control belongs in `workspaceWireContract.portForwards`;

data streams should be transport-native once the workspace-server client layer exists

  • confirm whether a feature is local-only before assuming parity on remote projects
Read more
@generalaction
Ships withemdash

Emdash is the Open-Source Agentic Development Environment (🧡 YC W26). Run multiple coding agents in parallel. Use any provider.

Stars on GitHub

Momentum

stars in total
6.2k
Star history of generalaction/emdash on GitHub, a chart by star-history.com

Other agents on emdash.

acp-runtime

acp-runtime

Agent

The ACP runtime is the domain service that serves the ACP API contract. It owns the host-scoped dependencies needed to run…

core-modules

core-modules

Agent

This page defines the target organization of `packages/core/src/`. Core is organized by module type so that shared domain APIs…

git-runtime

git-runtime

Agent

Git is split into a transport contract and a host-scoped runtime. Renderer, desktop, and workspace-server code share the Wire…

main-process

main-process

Agent

The main process is organized into domain modules under `src/main/core/`. Each domain typically has a `controller.ts` (RPC…

path-system

path-system

Agent

`@emdash/core/primitives/path/api` is the source of truth for portable file identity and lexical path operations. The detailed…

More agents from other plugins.

api-builder

api-builder

Agent

Deprecated placeholder. Do not use; follow root AGENTS.md and package instructions instead.

happier1d2.2k
@happier-dev@happier-devInstall Agent

Questions about remote-development.

Which coding agents can use remote-development?
remote-development installs in Claude Code and Cursor: each loads subagents from .claude/agents, so copy the file there. Flowy's auto-invocation runs in Claude Code only.