Desktop App Overview
The Cortask desktop app wraps the full platform -- gateway server, web UI, and all backend services -- into a single Electron application. You get everything the web UI offers without needing to run cortask serve in a separate terminal.
What the desktop app adds over the web UI
- Embedded backend. The gateway starts automatically when you launch the app. No separate terminal process to manage.
- Native window controls. Frameless window with a custom title bar, minimize/maximize/close buttons, and OS-level window management.
- System tray integration. Closing the window hides Cortask to the tray instead of quitting. Double-click the tray icon to restore it.
- Native file dialogs. Folder browsing for workspace selection uses the OS file picker instead of a text input.
- Shell integration. Open files and folders in your default application or reveal them in your file manager directly from the UI.
- OS-level credential encryption. On supported platforms, the master encryption key is stored via the OS keychain (Electron
safeStorage) rather than a plaintext file. - Auto-updater. Checks for new releases on GitHub and can download and install updates without leaving the app.
- Single instance enforcement. Only one instance of the app runs at a time. Launching a second instance focuses the existing window.
Supported platforms
| Platform | Format | Notes |
|---|---|---|
| Windows | NSIS installer | Code-signed via Azure |
| macOS | DMG | Hardened runtime, notarized |
| Linux | AppImage, deb, rpm | -- |
Build targets are configured in electron-builder.yml. All platforms produce artifacts named Cortask-<version>-<arch>.<ext>.
Installation
Download the latest release for your platform from the GitHub releases page. Run the installer and launch Cortask from your applications menu.
On first launch the app creates its data directory under the Electron userData path (e.g. %APPDATA%/Cortask/data on Windows, ~/Library/Application Support/Cortask/data on macOS). If no configuration exists, the embedded gateway writes a default one.
Port selection
The embedded backend defaults to port 3777. If that port is already in use (for example, by a CLI-started gateway), the app automatically tries up to 10 consecutive ports until it finds an available one.