GuLiN Terminal is built from a single repository that combines a Go backend, an Electron main process, and a React/TypeScript frontend. TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/jorgeurtubiam-ship-it/Gulin_ia/llms.txt
Use this file to discover all available pages before exploring further.
task build tool orchestrates every step — from installing dependencies to producing signed, distributable packages. This page walks you through setting up your environment and running the most common build commands.
Prerequisites
You need four core tools before you can build GuLiN. On Linux and Windows an additional Zig compiler is required for CGO static linking.- macOS
- Linux
- Windows
macOS has no platform-specific dependencies beyond the core tools below. Install them in any order.
| Tool | Version | Install |
|---|---|---|
| Go | 1.22+ | go.dev/doc/install |
| Node.js | 22 LTS | nodejs.org/en/download |
| Task | latest | taskfile.dev/installation |
Clone and Build
Install all dependencies
Run
task init once after cloning (and any time you suspect dependency issues). This installs npm packages, runs go mod tidy, and installs docs dependencies.All Task Commands
The full build system is defined inTaskfile.yml. Use task --list to see a live description of every available task.
| Command | Description |
|---|---|
task init | Install all dependencies (npm + go mod tidy + docs npm) |
task dev | Development mode — starts Electron via the Vite dev server with HMR |
task start | Standalone mode — builds and runs without a dev server; no hot reload |
task package | Production build + installer; output artifacts are placed in make/ |
USE_SYSTEM_FPM=1 task package | Linux ARM64 packaging (requires system fpm installed via Gem) |
task build:backend | Build both gulinsrv and wsh binaries into dist/bin/ |
task build:schema | Regenerate the JSON configuration schema in dist/schema/ |
task generate | Regenerate TypeScript bindings from the Go backend (runs build:schema first) |
task check:ts | TypeScript typecheck across the frontend and Electron main process |
task clean | Remove the make/ and dist/ directories |
task docsite | Start the internal docsite dev server (docs/) |
All task commands that build the app will automatically run
npm install and go mod tidy if their sources have changed since the last run, so you rarely need to manage dependencies manually after task init.Debugging
Frontend
Open Chrome DevTools in the running app with the keyboard shortcut:- macOS:
Cmd+Option+I - Linux / Windows:
Ctrl+Option+I
console.log output and runtime errors appear in the Console tab. The Sources tab has full source-map support for both the React frontend and the Electron preload scripts.
Backend Logs
Both the Electron (Node.js) backend and the Gogulinsrv process write to the same log file when running a development build:
Releasing
GuLiN releases are managed entirely through GitHub Actions. The workflow is:Bump Version
Navigate to the Actions tab and trigger the Bump Version workflow. Choose a SemVer bump (
patch, minor, major, or none) and whether this is a prerelease. The workflow creates a new Git tag automatically.Build Helper
Once a tag is pushed, the Build Helper workflow starts automatically. It calls
task package on macOS, Linux, and Windows runners — building gulinsrv, wsh, the Vite frontend, and invoking electron-builder to produce signed, distributable packages. Artifacts land in a draft GitHub Release.See
RELEASES.md in the repository for full details on update channels, package manager automation, and the electron-updater auto-update system.