Glockit Desktop is an Electron + React application for authoring, running, and analyzing HTTP benchmark suites powered by the glockit runtime.
- Runtime package used by this UI:
glockit@^1.1.2 - Current locked/resolved version in lockfiles:
1.1.2
The UI also includes compatibility normalization for glockit 1.1.2 output so results remain stable in charts, reports, and run history.
- Build and edit benchmark configs in visual and JSON modes
- Run benchmarks from desktop via Electron IPC (local machine)
- Persist workspaces/configs to disk and reload them
- Track run history and review previous benchmark outcomes
- Export/import workspace backups
- Check, download, and install desktop app updates in packaged builds
- Electron (desktop shell)
- React + Vite + TypeScript (UI)
- Zustand (workspace state)
- Tailwind + shadcn/ui (UI components)
- glockit CLI/runtime integration
- Node.js 20+ (recommended LTS)
- npm 10+
- Windows/macOS/Linux for development
npm installnpm run devNotes:
- Useful for UI iteration.
- Benchmark execution and filesystem features are limited in browser mode.
In terminal A:
npm run devIn terminal B:
npm run electron:serveThis is the primary workflow for testing full desktop features.
npm run buildnpm run electron:build# Windows installer (NSIS)
npm run package:win
# Windows unpacked directory
npm run package:win:dir
# Linux AppImage
npm run package:linux
# Linux unpacked directory
npm run package:linux:dirArtifacts are generated under dist_electron/.
Configured publish target is GitHub releases via electron-builder.
npm run release:win
npm run release:linuxEnsure repository auth/release credentials are configured in your environment before publishing.
- Open the app and create a new workspace from the sidebar.
- Workspaces store one or more benchmark configs.
- Create a config file in the workspace.
- Use Visual Editor for guided setup or JSON mode for raw editing.
At minimum, define:
baseUrl- concurrency and/or arrival settings
- timeout/retry preferences
Advanced globals support includes:
- load shape and phases
- data feeder settings
- SLO/observability options
- distributed/reporter-oriented config fields
For each endpoint, define:
- name, method, URL/path
- headers/query/body
- assertions and response checks
- dependencies/ordering where needed
- Start a run from the editor.
- Observe status/progress in the UI.
- Review summary, per-endpoint metrics, and history snapshots.
- Configs/workspaces are persisted locally in desktop mode.
- Use Settings -> Backup & Restore to export/import all workspaces as JSON.
Auto-update controls are available in Settings for packaged builds:
- Check for updates
- Download update
- Restart and install
During development (unpackaged), update actions are intentionally unavailable.
npm run lint
npm run test- Desktop app package version:
1.0.0 - Base glockit runtime used by UI:
1.1.2(resolved)
- If runtime shows "glockit unavailable": reinstall dependencies and rebuild.
- If packaged app cannot load UI: ensure
dist/exists and packaging includes renderer files. - If updates do not appear: verify packaged build context and release feed configuration.
MIT