IPC Channel List
This page lists all IPC channels in Elftia. Channels are grouped by functional domain; each channel is annotated with its communication direction and a brief description.
Direction legend:
- R→M: Renderer process → Main process (
ipcRenderer.invoke) - M→R: Main process → Renderer process (
webContents.send; subscribe viaipcRenderer.onin Preload)
Authentication & Accounts
Auth Bootstrap
| Channel | Direction | Description |
|---|---|---|
auth:bootstrap | R→M (sync) | Synchronously retrieve the auth token on app startup |
Auth Session (authSession:*)
| Channel | Direction | Description |
|---|---|---|
authSession:getState | R→M | Get the current authentication state |
authSession:startBrowserLogin | R→M | Start the browser login flow |
authSession:refresh | R→M | Refresh the authentication session |
authSession:syncProfile | R→M | Sync the user profile |
authSession:getAccessToken | R→M | Get the access token |
authSession:logout | R→M | Log out |
authSession:retrySteamLogin | R→M | Retry Steam login |
authSession:subscribe | R→M (send) | Subscribe to authentication state changes |
authSession:state | M→R | Push authentication state |
Account (account:*)
| Channel | Direction | Description |
|---|---|---|
account:list | R→M | List accounts of the specified type |
account:create | R→M | Create a new account |
account:delete | R→M | Delete an account |
account:toggle | R→M | Enable/disable an account |
account:reveal | R→M | Reveal account key |
account:export | R→M | Export account data |
account:clear | R→M | Clear accounts of the specified type |
Auth Tokens (authTokens:*)
| Channel | Direction | Description |
|---|---|---|
authTokens:status | R→M | Get token status |
authTokens:getValue | R→M | Get a token value |
authTokens:store | R→M | Store a token |
authTokens:migrate | R→M | Migrate tokens |
authTokens:clear | R→M | Clear tokens |
Usage Limits (limits:*)
| Channel | Direction | Description |
|---|---|---|
limits:get | R→M | Get usage limit information |
limits:check | R→M | Check whether limits have been exceeded |
Projects & Files
Projects (projects:*)
| Channel | Direction | Description |
|---|---|---|
projects:list | R→M | List all projects |
projects:create | R→M | Create a new project |
projects:rename | R→M | Rename a project |
projects:delete | R→M | Delete a project |
projects:browse | R→M | Browse directories to select a project path |
projects:createWorkspace | R→M | Create a workspace |
Files (files:*)
| Channel | Direction | Description |
|---|---|---|
files:snapshot | R→M | Get a file tree snapshot for a project |
files:watch | R→M | Start watching a project for file changes |
files:unwatch | R→M | Stop watching a project for file changes |
files:read | R→M | Read file content (text) |
files:readBinary | R→M | Read file content (binary) |
files:write | R→M | Write file content |
files:shallow | R→M | Get a shallow directory listing |
files:search | R→M | Search file contents |
files:searchMetrics | R→M | Get search metric statistics |
files:clearCache | R→M | Clear file cache |
file:revealInFolder | R→M | Reveal file in the system file manager |
files:patch:{projectId} | M→R | Push file change patches |
Git (git:*)
| Channel | Direction | Description |
|---|---|---|
git:status | R→M | Get Git status (branch, changed files) |
git:diff | R→M | Get a file diff |
Chat
Chat Sessions (chatSessions:*)
| Channel | Direction | Description |
|---|---|---|
chatSessions:list | R→M | List chat sessions |
chatSessions:get | R→M | Get a single session's details |
chatSessions:create | R→M | Create a new session |
chatSessions:update | R→M | Update session information |
chatSessions:delete | R→M | Delete a session |
Chat Messages (chatMessages:*)
| Channel | Direction | Description |
|---|---|---|
chatMessages:getActivePath | R→M | Get the active message path (branch) |
chatMessages:getPage | R→M | Paginate messages |
chatMessages:getBranches | R→M | Get message branches |
chatMessages:append | R→M | Append a message |
chatMessages:update | R→M | Update a message |
chatMessages:switchBranch | R→M | Switch message branch |
chatMessages:delete | R→M | Delete a message |
Chat Assistants (chatAssistants:*)
| Channel | Direction | Description |
|---|---|---|
chatAssistants:list | R→M | List all assistants |
chatAssistants:get | R→M | Get assistant details |
chatAssistants:create | R→M | Create a new assistant |
chatAssistants:update | R→M | Update an assistant |
chatAssistants:delete | R→M | Delete an assistant |
chatAssistants:setDefault | R→M | Set as the default assistant |
Chat Events
| Channel | Direction | Description |
|---|---|---|
chat:appendMessage | R→M | Manually append a message to the chat |
chat:getMessages | R→M | Get chat message history |
chat:sendCommand | R→M | Send a chat command |
chat:abortSession | R→M | Abort a chat session |
chat:checkSessionStatus | R→M | Check session status |
chat:event | M→R | Push chat events (streaming content, etc.) |
chat:completed | M→R | Chat completion event |
Completion
| Channel | Direction | Description |
|---|---|---|
completion:complete | R→M | Single completion request |
completion:stream | R→M | Start streaming completion (returns streamId) |
completion:stream:{id} | M→R | Push streaming completion events (delta / done / error) |
completion:getModels | R→M | Get available models for a provider |
completion:testModel | R→M | Test model connectivity |
completion:chatInSession | R→M | In-session chat completion (full flow) |
completion:regenerateInSession | R→M | Regenerate an assistant reply |
completion:createRPFirstMessage | R→M | Create the first message in a roleplay session |
LLM Config (llmConfig:*)
Provider CRUD
| Channel | Direction | Description |
|---|---|---|
llmConfig:getProviders | R→M | List all providers |
llmConfig:getProvider | R→M | Get a single provider |
llmConfig:addProvider | R→M | Add a provider |
llmConfig:updateProvider | R→M | Update a provider |
llmConfig:deleteProvider | R→M | Delete a provider |
llmConfig:toggleProvider | R→M | Enable/disable a provider |
llmConfig:discoverModels | R→M | Discover available models for a provider |
Presets
| Channel | Direction | Description |
|---|---|---|
llmConfig:getProviderPresets | R→M | Get the preset list |
llmConfig:addFromPreset | R→M | Create a provider from a preset |
Model Parameters
| Channel | Direction | Description |
|---|---|---|
llmConfig:getAgentDefaultModels | R→M | Get Agent default models |
llmConfig:setAgentDefaultModels | R→M | Set Agent default models |
llmConfig:getGlobalModelParameters | R→M | Get global model parameters |
llmConfig:setGlobalModelParameters | R→M | Set global model parameters |
Routing & Transformers
| Channel | Direction | Description |
|---|---|---|
llmConfig:getChatToCodeRouters | R→M | Get Chat→Code routers |
llmConfig:addChatToCodeRouter | R→M | Add a Chat→Code router |
llmConfig:updateChatToCodeRouter | R→M | Update a Chat→Code router |
llmConfig:deleteChatToCodeRouter | R→M | Delete a Chat→Code router |
llmConfig:getCodeToChatRouters | R→M | Get Code→Chat routers |
llmConfig:addCodeToChatRouter | R→M | Add a Code→Chat router |
llmConfig:updateCodeToChatRouter | R→M | Update a Code→Chat router |
llmConfig:deleteCodeToChatRouter | R→M | Delete a Code→Chat router |
llmConfig:getTransformers | R→M | Get transformer list |
llmConfig:getBuiltinTransformers | R→M | Get built-in transformers |
llmConfig:addTransformer | R→M | Add a transformer |
llmConfig:removeTransformer | R→M | Remove a transformer |
llmConfig:toggleTransformer | R→M | Enable/disable a transformer |
API Key Pool
| Channel | Direction | Description |
|---|---|---|
llmConfig:getApiKeys | R→M | Get the key list for a provider |
llmConfig:addApiKey | R→M | Add a key to the pool |
llmConfig:updateApiKey | R→M | Update a key |
llmConfig:deleteApiKey | R→M | Delete a key |
llmConfig:toggleApiKey | R→M | Enable/disable a key |
Bulk Operations
| Channel | Direction | Description |
|---|---|---|
llmConfig:exportConfig | R→M | Export all LLM configuration |
llmConfig:importConfig | R→M | Import LLM configuration |
Config & Settings
App Settings (settings:*)
| Channel | Direction | Description |
|---|---|---|
settings:get | R→M | Get a setting |
settings:set | R→M | Set a setting |
settings:getExperimentalFeatures | R→M | Get experimental feature flags |
settings:setExperimentalFeatures | R→M | Set experimental feature flags |
App Preferences (appPreferences:*)
| Channel | Direction | Description |
|---|---|---|
appPreferences:get | R→M | Get app preferences |
appPreferences:update | R→M | Update app preferences |
File Config (config:*)
| Channel | Direction | Description |
|---|---|---|
config:get | R→M | Get a config value |
config:getAll | R→M | Get all config values |
config:getPath | R→M | Get the config file path |
config:set | R→M | Set a config value |
config:merge | R→M | Merge config values |
config:reset | R→M | Reset a config key |
config:changed | M→R | Config change notification |
Theme (theme:*)
| Channel | Direction | Description |
|---|---|---|
theme:getState | R→M | Get the current theme state (includes all wallpaper/tint/bubble fields) |
theme:setMode | R→M | Set the theme mode (light/dark/system) |
theme:updateUserTheme | R→M | Update the user's custom theme (accent color + fonts) |
theme:setCustomCss | R→M | Set custom CSS |
theme:setWallpaper | R→M | Set an image wallpaper ({ light?, dark? }) |
theme:setWallpaperGradient | R→M | Set a wallpaper gradient; payload is WallpaperGradient | null (null clears it) |
theme:setWallpaperPreferences | R→M | Partially update any subset of wallpaper preferences (see table below) |
theme:pickWallpaperFile | R→M | Open a native file dialog to pick a wallpaper image; returns the absolute path |
theme:setRemoteAssetsPolicy | R→M | Set the remote assets policy |
theme:export | R→M | Export theme configuration (ThemeProfileExport, includes all wallpaper fields) |
theme:import | R→M | Import theme configuration |
theme:reset | R→M | Reset theme to default |
theme:updated | M→R | Push theme state changes (any field change broadcasts the full ThemeState) |
theme:setWallpaperPreferences Payload Fields
All fields are optional; pass only the subset you want to update. See ThemeRouter.ts and configSchema.ts for the ThemePreferencesSchema Zod schema.
| Field | Type | Description |
|---|---|---|
disableWallpaperInCompactWindows | boolean | Disable wallpaper in compact windows |
wallpaperOverlayEnabled | boolean | Enable/disable translucent surfaces |
wallpaperBlurIntensity | number 0–30 | Frosted glass blur |
wallpaperDimming | number 0–100 | Overall overlay opacity |
wallpaperDimmingHue | number 0–360 | Overlay HSL hue |
wallpaperDimmingSaturation | number 0–100 | Overlay HSL saturation |
wallpaperDimmingLightness | number -1..100 | Overlay lightness; -1 = auto (light white / dark black) |
wallpaperDimmingGradient | WallpaperGradient | null | Gradient overlay; null clears; omitting the key = keep |
wallpaperElementTint | string #RRGGBB or '' | Element surface tint hex; empty string = off |
wallpaperElementGradient | WallpaperGradient | null | Element gradient (overrides solid tint) |
wallpaperBubbleOverride | boolean | Bubble independent control master switch; false = bubbles follow element settings |
wallpaperBubbleTintUser | string #RRGGBB or '' | User bubble solid color (only when override is active) |
wallpaperBubbleTintAssistant | string #RRGGBB or '' | Assistant bubble solid color (only when override is active) |
wallpaperBubbleGradientUser | WallpaperGradient | null | User bubble gradient (overrides solid color) |
wallpaperBubbleGradientAssistant | WallpaperGradient | null | Assistant bubble gradient (overrides solid color) |
wallpaperBubbleOpacity | number 0–100 | Bubble fill alpha (only when override is active; default 35) |
wallpaperElementOpacity | number 0–100 | Experimental: pushes translucent UI toward opaque |
wallpaperTransparency | number 0–100 | Surface tint intensity coefficient |
Gradient field semantics: null = explicitly clear; omitting the key = keep current value. The frontend ThemeContext.setWallpaperPreferences distinguishes these via 'wallpaperXxxGradient' in payload; the backend ThemeService.setWallpaperPreferences does the same with an in check.
Hex validation: all wallpaperBubbleTint* / wallpaperElementTint fields are validated against the regex /^(#[0-9a-fA-F]{6})?$/. Invalid values are silently replaced with '' by the backend (no error thrown).
MCP (mcp:*)
| Channel | Direction | Description |
|---|---|---|
mcp:list | R→M | List configured MCP servers |
mcp:add | R→M | Add an MCP server |
mcp:addJson | R→M | Add an MCP server via JSON config |
mcp:remove | R→M | Remove an MCP server |
mcp:test | R→M | Test MCP server connectivity |
mcp:discover | R→M | Discover MCP server capabilities |
mcp:update | R→M | Update MCP server configuration |
mcp:list-server-tools | R→M | List tools on a specific server |
mcp:list-all-tools | R→M | List tools on all servers |
mcp:call-tool | R→M | Call an MCP tool |
mcp:check-dependency | R→M | Check whether a command dependency is available |
mcp:install-dependency | R→M | Install a missing dependency |
Media Generation
Images (image:*)
| Channel | Direction | Description |
|---|---|---|
image:generate | R→M | Standalone image generation |
image:generateInSession | R→M | In-session image generation (includes message creation) |
generation:completed | M→R | Image generation completed event |
Video (video:*)
| Channel | Direction | Description |
|---|---|---|
video:generate | R→M | Standalone video generation |
video:generateInSession | R→M | In-session video generation |
video:generation:completed | M→R | Video generation completed event |
Music (music:*)
| Channel | Direction | Description |
|---|---|---|
music:generateInSession | R→M | In-session music generation |
Media Provider Configuration
| Channel | Direction | Description |
|---|---|---|
imageProviders:list/update/createCustom/deleteCustom | R→M | Image provider CRUD |
imageSettings:get/set | R→M | Image settings |
musicProviders:list/update/createCustom/deleteCustom | R→M | Music provider CRUD |
musicSettings:get/set | R→M | Music settings |
videoProviders:list/update/createCustom/deleteCustom | R→M | Video provider CRUD |
videoSettings:get/set | R→M | Video settings |
asrProviders:list/update/createCustom/deleteCustom | R→M | ASR provider CRUD |
asrSettings:get/set | R→M | ASR settings |
ttsProviders:list/update/createCustom/deleteCustom | R→M | TTS provider CRUD |
ttsSettings:get/set | R→M | TTS settings |
tts:listVoices | R→M | List available TTS voices |
Media Asset Management (media:*)
| Channel | Direction | Description |
|---|---|---|
media:migrateBase64ToFiles | R→M | Migrate base64 data to file storage |
media:getMigrationStatus | R→M | Get migration status |
media:migrationProgress | M→R | Push migration progress |
media:generateMissingThumbnails | R→M | Generate missing thumbnails |
media:thumbnailProgress | M→R | Push thumbnail generation progress |
media:compressImage | R→M | Compress a single image |
media:compressDataUrl | R→M | Compress a Data URL image |
media:compressMany | R→M | Batch compress images |
Agent / Magi
Agent (agent:*)
| Channel | Direction | Description |
|---|---|---|
agent:checkAvailability | R→M | Check Agent availability |
agent:getBackends | R→M | Get available backend list |
agent:getBackendInfo | R→M | Get current backend info |
agent:createSession | R→M | Create an Agent session |
agent:resumeSession | R→M | Resume an Agent session |
agent:interrupt | R→M | Interrupt an Agent session |
agent:respondPermission | R→M | Respond to a permission request |
agent:respondAskUserQuestion | R→M | Respond to an ask_user_question MCP call (submit answer or cancel) |
agent:getActiveSessions | R→M | Get active session list |
agent:isSessionActive | R→M | Check whether a session is active |
agent:sendToSession | R→M | Send a message to a session |
agent:listDispatches | R→M | List dispatch tasks |
agent:findBackendForSession | R→M | Find the backend for a session |
agent:selectFolder | R→M | Open a folder selection dialog |
agent:openPlaygroundFolder | R→M | Open the temporary workspace |
agent:retryDevPreview | R→M | Retry the development preview |
agent:event | M→R | Push Agent events |
agent:permissionRequest | M→R | Push permission requests |
agent:askUserQuestion | M→R | Push questions when Agent calls mcp__elftia-ask__ask ({requestId, sessionId, questions[]}) |
agent:a2ui | M→R | A2UI rendering events |
agent:preview | M→R | Push development preview status |
Custom Agents (agent:customAgents:*)
| Channel | Direction | Description |
|---|---|---|
agent:customAgents:list | R→M | List custom Agents |
agent:customAgents:get | R→M | Get Agent details |
agent:customAgents:create | R→M | Create a custom Agent |
agent:customAgents:update | R→M | Update a custom Agent |
agent:customAgents:delete | R→M | Delete a custom Agent |
agent:customAgents:run | R→M | Run a custom Agent |
agent:customAgents:promptPreview | R→M | Preview a prompt |
agent:customAgents:export/import | R→M | Export/import an Agent |
agent:customAgents:toggleFavorite | R→M | Toggle favorite |
Magi (magi:*)
| Channel | Direction | Description |
|---|---|---|
magi:getStatus | R→M | Get Magi service status |
magi:getConfig | R→M | Get Magi configuration |
magi:updateConfig | R→M | Update Magi configuration |
magi:resetSession | R→M | Reset the Magi session |
Elfi (elfi:*)
| Channel | Direction | Description |
|---|---|---|
elfi:ask | R→M | Ask the Elfi assistant a question |
elfi:getKnowledge | R→M | Get knowledge base content |
elfi:searchKnowledge | R→M | Search the knowledge base |
Channel Plugins
| Channel | Direction | Description |
|---|---|---|
channelPlugins:listPlugins | R→M | List available plugins |
channelPlugins:listInstances | R→M | List plugin instances |
channelPlugins:add | R→M | Add a plugin instance |
channelPlugins:remove | R→M | Remove a plugin instance |
channelPlugins:update | R→M | Update a plugin instance |
channelPlugins:getDetails | R→M | Get plugin details |
channelPlugins:changeStatus | R→M | Change plugin status (start/stop) |
System
Window Controls
| Channel | Direction | Description |
|---|---|---|
window-minimize | R→M | Minimize the window |
window-maximize | R→M | Toggle maximize |
window-close | R→M | Close the window |
open-devtools | R→M | Toggle DevTools |
developer-mode:get/enable/disable | R→M | Developer mode management |
Runtime
| Channel | Direction | Description |
|---|---|---|
runtime:getEnvironment | R→M | Get runtime environment info |
Diagnostics (diagnostics:*)
| Channel | Direction | Description |
|---|---|---|
diagnostics:dump | R→M | Export diagnostics info |
diagnostics:export | R→M | Export a diagnostics report |
diagnostics:bundle | R→M | Bundle diagnostics data |
diagnostics:clearCaches | R→M | Clear caches |
diagnostics:dbVacuum | R→M | Database VACUUM |
diagnostics:dbGetSize | R→M | Get database size |
Environment Detection (env:*)
| Channel | Direction | Description |
|---|---|---|
env:checkAll | R→M | Check all environment dependencies |
env:installTool | R→M | Install a tool |
env:repairAll | R→M | Repair everything |
env:getLastResult | R→M | Get last check result |
env:progress | M→R | Push check progress |
Web Search (webSearch:*)
| Channel | Direction | Description |
|---|---|---|
webSearch:search | R→M | Unified search |
webSearch:configureProvider | R→M | Configure a search provider |
webSearch:configureProviders | R→M | Batch configure providers |
webSearch:isProviderEnabled | R→M | Check provider status |
webSearch:getProviderConfig | R→M | Get provider configuration |
webSearch:getProviders | R→M | List all providers |
webSearch:jinaReader | R→M | Extract page content via Jina Reader |
webSearch:localSearch | R→M | Local browser search (deprecated) |
webSearch:isAvailable | R→M | Check local search availability |
Data Management
Export (export:*)
| Channel | Direction | Description |
|---|---|---|
export:sessions | R→M | Export sessions |
export:messages | R→M | Export messages |
Prompts (prompts:*)
| Channel | Direction | Description |
|---|---|---|
prompts:list/get/create/update/delete | R→M | Prompt CRUD |
prompts:reorder | R→M | Reorder prompts |
prompts:incrementUsage | R→M | Increment usage count |
prompts:search | R→M | Search prompts |
prompts:quickList | R→M | Quick list |
prompts:optimize | R→M | Optimize a prompt |
Prompt Categories (promptCategories:*)
| Channel | Direction | Description |
|---|---|---|
promptCategories:list/get/create/update/delete | R→M | Category CRUD |
promptCategories:reorder | R→M | Reorder categories |
promptCategories:getTree | R→M | Get category tree |
Prompt Chains (promptChains:*)
| Channel | Direction | Description |
|---|---|---|
promptChains:list/get/create/update/delete | R→M | Chain CRUD |
promptChains:incrementUsage | R→M | Increment usage count |
promptChainItems:add/remove/update/reorder | R→M | Chain item management |
Session Management (sessions:*)
| Channel | Direction | Description |
|---|---|---|
sessions:list | R→M | List project sessions |
sessions:delete | R→M | Delete a session |
sessions:getTokenUsage | R→M | Get token usage |
sessions:search | R→M | Search sessions |
sessions:batchMove/batchTag/batchDelete/batchExport | R→M | Batch operations |
sessionFolders:* | R→M | Session folder management (CRUD + reorder + getTree) |
pinnedMessages:* | R→M | Pinned message management |
Templates & Works
| Channel | Direction | Description |
|---|---|---|
templates:* | R→M | Image template CRUD |
works:* | R→M | Image work CRUD |
musicTemplates:* | R→M | Music template CRUD |
musicWorks:* | R→M | Music work CRUD |
videoTemplates:* | R→M | Video template CRUD |
videoWorks:* | R→M | Video work CRUD |
Notes & Tasks
| Channel | Direction | Description |
|---|---|---|
notes:* | R→M | Note CRUD + search |
tasks:* | R→M | Task CRUD + list |
todo:* | R→M | Todo management |
tags:* | R→M | Tag system |
Roleplay (SillyTavern Compatible)
| Channel | Direction | Description |
|---|---|---|
characterCards:* | R→M | Character card CRUD |
worldInfo:* | R→M | World info CRUD |
regexScripts:* | R→M | Regex script CRUD |
groupChat:* | R→M | Group chat CRUD |
sprites:* | R→M | Character sprite management |
rpDefaults:* | R→M | RP default settings |
contextTemplates:* | R→M | Context template CRUD |
Updates
| Channel | Direction | Description |
|---|---|---|
autoUpdate:* | R→M | Auto-update check/download/install |
download:* | R→M | File download management |
webUpdate:* | R→M | Web version update |
Skills
| Channel | Direction | Description |
|---|---|---|
skills:list/create/update/delete | R→M | User Skill CRUD |
skills:importZip | R→M | Import a Skill from a ZIP file |
skillHub:* | R→M | Skill Hub browsing/downloading |