Skip to content

IPC Channels

All IPC handlers live in packages/desktop/src/main/ipc.ts. The context bridge in preload.ts exposes window.api to the renderer.

chat:*

ChannelDirectionDescription
chat:sendrenderer → mainStart a streaming AI request
chat:completerenderer → mainHeadless completion — returns { text: string } with the full response. No conversation messages created, no stream events sent to renderer. Used by pipeline steps and background processing.
chat:stream:chunkmain → rendererDelta text chunk from provider
chat:stream:endmain → rendererStream completed
chat:stream:errormain → rendererStream error
chat:abortrenderer → mainAbort active stream

mcp:*

ChannelDirectionDescription
mcp:list-toolsrenderer → mainList tools from all active MCP servers
mcp:call-toolrenderer → mainExecute a tool call
mcp:statusrenderer → mainGet connection status of all servers
mcp:refreshrenderer → mainRe-connect all servers

settings:*

ChannelDirectionDescription
settings:getrenderer → mainRead settings from electron-store
settings:setrenderer → mainWrite settings to electron-store
settings:open-filerenderer → mainOpen settings.json in the system default editor
settings:exportrenderer → mainExport settings to a user-chosen .json file
settings:importrenderer → mainImport settings from a .json file, merging with current

updater:*

ChannelDirectionDescription
updater:checkrenderer → mainCheck for updates via Cloudflare Worker GET /latest
updater:downloadrenderer → mainOpen download URL in system browser

feedback:*

ChannelDirectionDescription
feedback:submitrenderer → mainPost feedback to Cloudflare Worker POST /feedback → GitHub Issue

extensions:*

ChannelDirectionDescription
extensions:get-installedrenderer → mainScan userData/extensions/, read each subdirectory's manifest.json, return InstalledExtensionInfo[]. Silent-fail for missing/invalid manifests.

Released under the AGPLv3 License.