Skip to content

Desktop app

knomit-desktop is a native Wails v3 application: a system-tray icon plus a native webview window showing the same web UI. It is the easiest way to keep a knomit server running on your machine — no terminal, no manual serve.

It works differently from a bare knomit serve, and those differences matter for wiring up MCP clients.

  • Runs the server in-process. The app boots the full knomit server inside itself on a looknomitck port (it prefers 19278, but picks a free port if that’s taken) and serves the web UI from embedded assets. That port is a pure REST/MCP endpoint — the same one Claude Code and other MCP clients call.
  • Publishes a discovery lockfile. On startup it writes server.json ({pid, port, version}, mode 0600, written atomically) so knomit-bridge can find the running server’s port without being told. The file lives outside KNOMIT_HOME:
    • macOS: ~/Library/Application Support/knomit/server.json
    • Linux: $XDG_STATE_HOME/knomit/server.json
  • Lives in the system tray. On macOS it runs as a tray app (Knomit.app). On Linux it runs headless (no systray); knomit-desktop window opens the webview, normally triggered from the installed .desktop launcher.
  • Symlinks the bridge. The macOS app symlinks the bundled knomit-bridge into ~/bin on launch, giving MCP clients a stable path to point at.

Build the app with make desktop:

  • macOS — produces dist/darwin-arm64/Knomit.app. Launch with open dist/darwin-arm64/Knomit.app.
  • Linuxmake desktop-install copies the binary to $XDG_BIN (default ~/.local/bin), an icon to the hicolor theme, and a knomit-desktop.desktop launcher to $XDG_DATA/applications.

Logs go to stderr and a rotating file under the platform logs dir (~/Library/Logs/knomit on macOS, $XDG_STATE_HOME/logs/knomit on Linux). See the CLI reference for the full argument list.