> ## Documentation Index
> Fetch the complete documentation index at: https://catalyst.leifiyo.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# IPC reference

> Preload API groups exposed through window.context.

Renderer code calls `window.context.*`. The preload bridge maps these methods to Electron IPC handlers in the main process.

## Window and app

| Method                 | Purpose                                                  |
| ---------------------- | -------------------------------------------------------- |
| `getVersions`          | Return runtime and app version information.              |
| `triggerIPC`           | Generic app-ready style trigger used by the splash flow. |
| `resizeWindow`         | Resize the frameless Electron window.                    |
| `windowControl`        | Minimize, maximize, restore, or close the window.        |
| `getWindowState`       | Read maximized and window state.                         |
| `setAlwaysOnTop`       | Control splash/startup always-on-top behavior.           |
| `getAppPreferences`    | Read app preferences such as shutdown prompt behavior.   |
| `updateAppPreferences` | Save app preferences.                                    |
| `checkForUpdates`      | Check GitHub releases for newer app versions.            |
| `openExternal`         | Open safe HTTP or HTTPS URLs.                            |
| `appReady`             | Signal renderer readiness after the splash flow.         |

## Server lifecycle

| Method          | Purpose                            |
| --------------- | ---------------------------------- |
| `createServer`  | Create a server record and folder. |
| `getServers`    | List all known servers.            |
| `getServer`     | Read one server.                   |
| `deleteServer`  | Delete a server record and files.  |
| `startServer`   | Start Java for a server.           |
| `stopServer`    | Stop a running server.             |
| `restartServer` | Stop and start a server.           |
| `sendCommand`   | Send a console command.            |
| `getServerLogs` | Read recent console output.        |
| `acceptEula`    | Write accepted EULA state.         |

## Server events

| Event             | Purpose                                        |
| ----------------- | ---------------------------------------------- |
| `onConsoleOutput` | Stream console lines to the renderer.          |
| `onServerStatus`  | Notify status changes.                         |
| `onServerStats`   | Notify memory, TPS, player, and runtime stats. |

## Files and configuration

| Method                           | Purpose                                                            |
| -------------------------------- | ------------------------------------------------------------------ |
| `getServerProperties`            | Read `server.properties`.                                          |
| `saveServerProperties`           | Save `server.properties`.                                          |
| `getWhitelist` / `saveWhitelist` | Read or save whitelist data.                                       |
| `getBanlist` / `saveBanlist`     | Read or save banlist data.                                         |
| `updateServerSettings`           | Save Catalyst server settings such as RAM, Java path, and backups. |
| `openServerFolder`               | Open the server folder with the OS.                                |
| `getServerDiskUsage`             | Calculate server folder size.                                      |
| `listServerFiles`                | Browse files inside the server root.                               |
| `readServerFile`                 | Read a text file inside the server root.                           |
| `writeServerFile`                | Write a text file inside the server root.                          |
| `deleteServerFile`               | Delete a file or folder inside the server root.                    |
| `renameServerFile`               | Rename a file or folder inside the server root.                    |
| `copyServerFile`                 | Duplicate a file or folder inside the server root.                 |

## Import and export

| Method             | Purpose                                      |
| ------------------ | -------------------------------------------- |
| `exportServer`     | Create a manifest-backed server archive.     |
| `importServer`     | Import a compatible archive as a new server. |
| `openImportDialog` | Open the archive picker.                     |

## Modrinth

| Method                   | Purpose                                      |
| ------------------------ | -------------------------------------------- |
| `searchModrinth`         | Search compatible Modrinth projects.         |
| `getModrinthProject`     | Read project details.                        |
| `listModrinthVersions`   | Read compatible versions.                    |
| `listModrinthInstalls`   | List tracked installs for a server.          |
| `installModrinthProject` | Install a project and required dependencies. |
| `updateModrinthInstall`  | Update an installed project.                 |
| `removeModrinthInstall`  | Remove a tracked install.                    |

## Backups and ngrok

| Method                                   | Purpose                                       |
| ---------------------------------------- | --------------------------------------------- |
| `createBackup`                           | Start a manual or automatic backup.           |
| `getBackups`                             | List backups.                                 |
| `deleteBackup`                           | Delete a backup archive.                      |
| `restoreBackup`                          | Restore a backup while the server is stopped. |
| `cancelBackup`                           | Cancel an active backup worker.               |
| `getBackupStatus` / `isBackupInProgress` | Read backup progress state.                   |
| `installNgrok`                           | Install the ngrok binary.                     |
| `startNgrok` / `stopNgrok`               | Manage a server tunnel.                       |
| `getNgrokStatus`                         | Read ngrok status for a server.               |
| `getLocalIp`                             | Read a local LAN IP.                          |
| `configureNgrokAuthtoken`                | Save a validated token.                       |
| `isNgrokAuthtokenConfigured`             | Check token configuration.                    |
| `validateNgrokAuthtoken`                 | Validate a token without saving.              |
| `getNgrokAuthtokenCensored`              | Read the censored token display.              |
| `isNgrokEnabled` / `setNgrokEnabled`     | Read or save global ngrok enablement.         |
| `removeNgrokAuthtoken`                   | Remove the saved token.                       |

## Analytics, AI, and system

| Method                      | Purpose                                         |
| --------------------------- | ----------------------------------------------- |
| `getAnalyticsData`          | Read CatalystAnalytics data for a server.       |
| `getSystemInfo`             | Return system memory and other app setup data.  |
| `getAiAssistantSettings`    | Read assistant settings.                        |
| `updateAiAssistantSettings` | Save assistant settings.                        |
| `sendAiAssistantMessage`    | Send a chat request to the configured provider. |
| `applyAiAssistantAction`    | Apply a confirmed assistant action.             |

<Info>
  Treat this as a product-level IPC map, not a stable public API. Internal payload shapes should be checked against `src/shared/types.ts` and the preload definitions before integration work.
</Info>
