5.5 KiB
5.5 KiB
IPC Channel Reference
This document lists all the IPC channels used for communication between the main process and renderer processes in the Glass application. It serves as a central reference for developers.
1. Two-Way Channels (ipcMain.handle
/ ipcRenderer.invoke
)
These channels are used for request-response communication where the renderer process expects a value to be returned from the main process.
Window & System Management
get-header-position
: Gets the current [x, y] coordinates of the header window.move-header-to
: Moves the header window to a specific [x, y] coordinate.resize-header-window
: Resizes the header window to a specific width and height.move-window-step
: Moves the header window by a predefined step in a given direction.is-window-visible
: Checks if a specific feature window (e.g., 'ask') is currently visible.force-close-window
: Forces a specific feature window to hide.toggle-all-windows-visibility
: Toggles the visibility of all application windows.toggle-feature
: Shows or hides a specific feature window (e.g., 'ask', 'listen').quit-application
: Quits the entire application.
Authentication & User
get-current-user
: Retrieves the full state of the current user (Firebase or local).start-firebase-auth
: Opens the Firebase login flow in the system browser.firebase-logout
: Initiates the user logout process.save-api-key
: Saves a user-provided API key.remove-api-key
: Removes the currently stored API key.get-stored-api-key
: Retrieves the currently active API key.get-ai-provider
: Gets the currently configured AI provider (e.g., 'openai').
Permissions & Settings
get-content-protection-status
: Checks if window content protection is enabled.check-system-permissions
: Checks for microphone and screen recording permissions.request-microphone-permission
: Prompts the user for microphone access.open-system-preferences
: Opens the macOS System Preferences for a specific privacy setting.mark-permissions-completed
: Marks the initial permission setup as completed.check-permissions-completed
: Checks if the initial permission setup was completed.update-google-search-setting
: Updates the setting for Google Search integration.
Data & Content
get-user-presets
: Fetches all custom prompt presets for the current user.get-preset-templates
: Fetches the default prompt preset templates.save-ask-message
: Saves a user question and AI response pair to the database.get-web-url
: Gets the dynamically assigned URLs for the backend and web frontend.
Features (Listen, Ask, etc.)
initialize-openai
: Initializes the STT and other AI services for a new session.is-session-active
: Checks if a listen/summary session is currently active.send-audio-content
: Sends a chunk of audio data from renderer to main for processing.start-macos-audio
,stop-macos-audio
: Controls the background process for system audio capture on macOS.close-session
: Stops the current listen session.message-sending
: Notifies the main process that an 'ask' message is being sent.send-question-to-ask
: Sends a question from one feature window (e.g., listen) to the 'ask' window.capture-screenshot
: Requests the main process to take a screenshot.get-current-screenshot
: Retrieves the most recent screenshot.adjust-window-height
: Requests the main process to resize a window to a specific height.
2. One-Way Channels (ipcMain.on
/ ipcRenderer.send
/ webContents.send
)
These channels are used for events or commands that do not require a direct response.
Main to Renderer (Events & Updates)
user-state-changed
: Notifies all windows that the user's authentication state has changed.auth-failed
: Informs the UI that a Firebase authentication attempt failed.session-state-changed
: Broadcasts whether a listen session is active or inactive.api-key-validated
,api-key-updated
,api-key-removed
: Events related to the lifecycle of the API key.stt-update
: Sends real-time speech-to-text transcription updates to the UI.update-structured-data
: Sends processed data (summaries, topics) to the UI.ask-response-chunk
,ask-response-stream-end
: Sends streaming AI responses for the 'ask' feature.window-show-animation
: Triggers a show/fade-in animation.window-hide-animation
,settings-window-hide-animation
: Triggers a hide/fade-out animation.window-blur
: Notifies a window that it has lost focus.window-did-show
: Confirms to a window that it is now visible.click-through-toggled
: Informs the UI about the status of click-through mode.start-listening-session
: Commands to control the main application view.receive-question-from-assistant
: Delivers a question to theAskView
.ask-global-send
,toggle-text-input
,clear-ask-response
,hide-text-input
: Commands for controlling the state of theAskView
.
Renderer to Main (Commands & Events)
header-state-changed
: Informs thewindowManager
that the header's state (e.g.,apikey
vsapp
) has changed.update-keybinds
: Sends updated keybinding preferences to the main process.view-changed
: Notifies the main process that the visible view inPickleGlassApp
has changed.header-animation-complete
: Lets the main process know that a show/hide animation has finished.cancel-hide-window
,show-window
,hide-window
: Commands to manage feature window visibility from the renderer.session-did-close
: Notifies the main process that the user has manually closed the listen session.