You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All IPC channels are defined in packages/shared/src/ipc/channels.ts. Schemas are in schemas.ts and sftpSchemas.ts. The preload bridge validates both requests and responses with Zod.
Session logging intercepts terminal data events in registerIpc.ts and writes to file with ANSI escape sequences stripped. The logger hooks into manager.onEvent() and only processes sessions with active logging.
Settings Channels
Channel
Request
Response
Handler
settings:get
{ key }
{ value }
settingsIpc.ts
settings:update
{ key, value }
void
settingsIpc.ts
Workspace Channels
Channel
Request
Response
Handler
workspace:save
{ name, layout }
{ success }
workspaceIpc.ts
workspace:load
{ name }
WorkspaceRecord | null
workspaceIpc.ts
workspace:list
—
WorkspaceRecord[]
workspaceIpc.ts
workspace:remove
{ name }
void
workspaceIpc.ts
workspace:save-last
{ layout }
void
workspaceIpc.ts
workspace:load-last
—
WorkspaceRecord | null
workspaceIpc.ts
Port Forward Channels
Channel
Request
Response
Handler
port-forward:start
{ profileId, ... }
void
portForwardIpc.ts
port-forward:stop
{ profileId }
void
portForwardIpc.ts
port-forward:list
—
PortForwardProfile[]
portForwardIpc.ts
SSH Key Channels
Channel
Request
Response
Handler
ssh-keys:list
—
string[]
sshKeysIpc.ts
ssh-keys:generate
{ type, path, passphrase? }
void
sshKeysIpc.ts
ssh-keys:get-fingerprint
{ path }
{ fingerprint }
sshKeysIpc.ts
ssh-keys:remove
{ path }
void
sshKeysIpc.ts
Host Port Forward Channels
Channel
Request
Response
Handler
host-port-forward:list
{ hostId }
HostPortForwardRecord[]
hostPortForwardIpc.ts
host-port-forward:upsert
UpsertHostPortForwardRequest
HostPortForwardRecord
hostPortForwardIpc.ts
host-port-forward:remove
{ id }
boolean
hostPortForwardIpc.ts
host-port-forward:reorder
{ items: [{ id, sortOrder }] }
void
hostPortForwardIpc.ts
Host port forwards are linked to a specific host via hostId. Forwards with autoStart: true activate when the host's SSH session opens and tear down on disconnect.
Tmux Channels
Channel
Request
Response
Handler
tmux:probe
{ hostId }
{ sessions: TmuxSessionIpc[] }
tmuxIpc.ts
Each TmuxSessionIpc contains { name, windowCount, createdAt (ISO string), attached (boolean) }.
The probe spawns a one-shot ssh host 'tmux ls -F ...' command via child_process.execFile, reusing the same buildSshArgs() as the SSH terminal for identical auth resolution. Timeout is 10 seconds. Any failure (auth, timeout, tmux not installed) silently returns an empty array — the probe never blocks or errors. Password-only hosts are skipped on the renderer side before the IPC call is made.