Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

QueryMT Desktop

A shared Svelte frontend for QueryMT. It runs either in the native Tauri desktop shell or as a static UI embedded and served by qmtcode.

Application targets

The default target is QueryMT Desktop. It can manage local ACP subprocesses and use native window, workspace-picker, profile-template, log, and telemetry integrations.

The embedded target is a static SPA for qmtcode. It registers one host-managed agent, connects to the serving origin at /acp/ws, uses ws: or wss: to match the page, and communicates through ACP plus capability-advertised QueryMT extensions. Workspace paths entered in this target refer to the qmtcode server filesystem.

macOS downloads

Release builds are not yet signed with a Developer ID or notarized, so macOS Gatekeeper blocks them after download. After copying the app to /Applications (or anywhere else), clear the quarantine flag recursively so the bundled qmtcode agent is covered too:

xattr -dr com.apple.quarantine "/Applications/QueryMT Desktop.app"

Without -r, only the app folder is cleared and the bundled agent is still killed on start.

Bundled agent

The release bundles a qmtcode binary next to the app executable. The default agent command is qmtcode --acp; the bare qmtcode is resolved on every start, in this order:

  1. the copy bundled with the app (qmtcode or qmtcode-<target-triple>), wherever the app is installed or moved to;
  2. a qmtcode on PATH.

A command that contains a path (for example /opt/tools/qmtcode --acp) is used as written. The agents page and the agent log show which binary was launched.

Linux downloads

Linux release filenames identify the runtime:

  • QueryMT-Desktop-wry-<version>-linux-<arch>.*: stable default, using the system WebKitGTK webview.
  • QueryMT-Desktop-cef-<version>-linux-<arch>.*: experimental CEF runtime, bundling Chromium instead of using WebKitGTK.

Choose x86_64 for Intel/AMD Linux or aarch64 for ARM64 Linux. Both runtimes provide AppImage and Debian (.deb) packages; CEF also provides a portable .tar.gz.

Development

Development needs a Rust toolchain, Node.js, and the WebKit/CEF system libraries. If you're on NixOS or using the nix package manager, enter the devshell first (nix develop, or direnv via the shipped .envrc); for any other setup, make sure those dependencies are present on your system:

nix develop
npm install
npm run dev                # Desktop-target web UI
npm run dev:embedded       # Embedded UI; proxies /acp/ws to qmtcode

Embedded development proxies to http://127.0.0.1:3000 by default. Override it when qmtcode --dashboard listens elsewhere:

QMT_EMBEDDED_PROXY_TARGET=http://127.0.0.1:8080 npm run dev:embedded

Run the desktop app:

npm run tauri -- dev       # default runtime
npm run tauri:wry -- dev   # System webview
npm run tauri:cef -- dev   # CEF, Linux only

Build a runtime variant:

npm run tauri -- build
npm run tauri:wry -- build
npm run tauri:cef -- build

CEF is experimental; Wry remains the stable fallback.

Desktop icons are generated from static/favicon.svg with npm run tauri -- icon static/favicon.svg. Keep the desktop PNG, ICO, and ICNS outputs in src-tauri/icons; mobile and Appx icons are not used.

Embedded artifact

Build the standalone UI without Tauri or Rust:

npm ci
npm run test:embedded
QUERYMT_UI_REVISION=$(git rev-parse HEAD) npm run build:embedded

The artifact is written to build-embedded/. It contains an index.html SPA fallback and querymt-ui.json build metadata.

Tagged v*.*.* desktop releases also publish:

  • querymt-embedded-ui-<tag>.tar.gz
  • querymt-embedded-ui-<tag>.tar.gz.sha256

QueryMT consumes the unpacked directory through QMT_DASHBOARD_NG_DIST and the dashboard-ng feature. QMT_UI_DIST is the legacy React dashboard prebuild and is not this artifact.

gh release download v0.1.0 --repo querymt/querymt-desktop \
  --pattern 'querymt-embedded-ui-*.tar.gz*'
mkdir -p /tmp/querymt-embedded-ui
tar -xzf querymt-embedded-ui-v0.1.0.tar.gz -C /tmp/querymt-embedded-ui
QMT_DASHBOARD_NG_DIST=/tmp/querymt-embedded-ui \
  cargo build -p querymt-agent --features dashboard-ng --example qmtcode

The initial embedded contract assumes root hosting and same-origin /acp/ws. It does not support a configurable agent endpoint, local subprocess management, native logs, native profile-template installation, or native directory browsing. The browser must be served from a trusted qmtcode origin; authentication and Origin enforcement remain responsibilities of the serving backend.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages