EdgeView Launcher is a native desktop application for managing and connecting to ZEDEDA-managed edge devices via EdgeView. Unlike other solutions, this application runs directly on your operating system without requiring Docker containers or complex environment setup. It is available for macOS, Windows, and Linux.
- Native User Interface: A standalone desktop application that integrates with your operating system.
- Integrated Remote Desktop: Built-in noVNC viewer for graphical access to device displays.
- Integrated Terminal: Full-featured xTerm-based SSH terminal for command-line access.
- TCP Tunneling: Create secure tunnels to services running on EVE-OS devices.
- Session Management: Handles authentication and session persistence automatically.
Download the latest release for your operating system from the GitHub Releases page.
macOS Users: If the application is not code signed, you may need to clear the quarantine attribute after moving the application to your Applications folder:
xattr -cr "/Applications/EdgeView Launcher.app"- Launch the application.
- Navigate to the Settings tab.
- Add a new cluster configuration with your ZEDEDA instance URL and API token.
- Save the configuration and connect to start managing your devices.
This repository contains three main parts:
- Electron shell (root JavaScript files) – window management, tray integration, and process orchestration
- Frontend (
frontend/) – React UI, device search, tunnel management, terminal and VNC views - Go backend (root Go files and
internal/) – HTTP API, EdgeView session management, SSH/VNC/TCP tunneling
For a more detailed architectural overview, see WARP.md and the source code in internal/, frontend/, and the Electron entry files.
- Go toolchain (for the backend)
- Node.js (v20+ recommended) + npm (for the frontend and Electron shell)
The development workflow is driven by the Electron + Go backend + React frontend stack. The typical setup is:
- Start the frontend (Vite)
- Change into
frontend/and run the Vite dev server (seefrontend/package.jsonscripts).
- Change into
- Build and run the Go backend
- Build the backend binary at the repository root.
- Run Electron in development mode
- Use the npm scripts in the root
package.jsonto start the Electron shell, which will load the frontend and talk to the Go backend.
- Use the npm scripts in the root
Exact commands and variations can be found in WARP.md and the package/config files (package.json, frontend/package.json).
electron-main.js– Electron main process, tray icon, window lifecycle, backend process managementelectron-preload.js– IPC surface exposed to the React frontendfrontend/src/App.jsx– main React UI for clusters, devices, tunnels, and settingsfrontend/src/components/TerminalView.jsx– xterm.js-based SSH terminal over WebSocketfrontend/src/components/VncViewer.jsx– noVNC-based remote desktop clienthttp-server.go– HTTP and WebSocket routes used by the frontend and Electronapp.goandinternal/packages – ZEDEDA API client, EdgeView sessions, tunnel manager, SSH handling
Refer to comments in these files and to WARP.md for implementation details and development conventions.
Build and packaging are handled via Electron Builder. To create distributable installers:
# macOS ARM64 (default) npm run build # Windows x64 (requires cross-compilation setup or running on Windows) npm run build:windows # Linux x64 npm run build:linuxArtifacts are written into dist-electron/.
For distribution, the app should be code signed and notarized to avoid security warnings. Refer to package.json build configuration for signing identities and notarization scripts. Without signing, users may need to manually bypass Gatekeeper (e.g., xattr -cr /Applications/EdgeView\ Launcher.app).
The application supports automatic updates via GitHub Releases:
- Checks for updates automatically on startup (production builds only)
- Users are notified when new versions are available
- One-click download and installation
- Manual update check available in Settings
For detailed information about the auto-update system, see AUTO_UPDATE.md.
This repository is maintained by ZEDEDA. While the source code is public, we require:
- All changes must be submitted via Pull Requests
- At least one maintainer approval required before merging
- Branch protection prevents direct pushes to main
- Issues and discussions are welcome for bug reports and feature requests
Before contributing, please:
- Open an issue to discuss your proposed changes
- Fork the repository and create a feature branch
- Ensure tests pass (
npm testin frontend/) - Submit a pull request with a clear description
WARP.md– repository-specific development guidance, architecture notes, and testing instructionsAUTO_UPDATE.md– detailed auto-update implementation and release process- Source code (especially
internal/andfrontend/) for the authoritative behaviour of sessions, tunnels, and UI flows
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.