www/docs/development/setup.md
This guide is for contributors who want to build, run, and debug Wox locally.
The repository contains four parts that usually move together during development:
wox.core/: Go backend, built-in plugins, settings, storage, packaging entrypointwox.ui.flutter/wox/: Flutter desktop UI for macOS, Windows, and Linuxwox.plugin.host.nodejs/: Node.js plugin hostwox.plugin.host.python/: Python plugin hostThe top-level Makefile wires these pieces together. In most cases you should start from the repository root instead of running each subproject manually.
Install these tools first:
Recommended editor:
.dmgMINGW64 shellpatchelfappimagetool, or point APPIMAGE_TOOL at a local binary when building AppImage packagesFrom the repository root:
make dev
What this does:
go:embedwoxmr under wox.coremake dev does not build the Flutter desktop app. Use it first to get the shared runtime pieces in place, then build the UI when you need a runnable app package.
From the repository root:
make dev
make test
make smoke
make build
What they mean:
make dev: prepare the local development environmentmake test: run the Go integration-style test suite under wox.core/testmake smoke: run desktop smoke flows from wox.testmake build: build the plugin hosts, Flutter UI, wox.core, and platform packaging outputIf you are changing backend/plugin contracts, make build is the safest final verification because it catches cross-project drift.
wox.core)Typical tasks:
Useful command:
make -C wox.core build
wox.ui.flutter/wox)Typical tasks:
Useful command:
make -C wox.ui.flutter/wox build
Useful commands:
make -C wox.plugin.host.nodejs build
make -C wox.plugin.host.python build
Use these when you are only changing host/runtime behavior and want a faster loop than make build.
The docs live in www/docs. To preview them locally:
cd www
pnpm install
pnpm docs:dev
To generate a production build:
cd www
pnpm docs:build
Wox keeps runtime data under the user's home directory:
~/.woxC:\Users\<username>\.woxUseful subdirectories:
~/.wox/log/: UI and backend logs~/.wox/plugins/: local plugin development directoryIf make dev fails early:
go, flutter, node, pnpm, and uv are all on PATHMINGW64 shell instead of PowerShell or CMDpatchelf and appimagetool are installedIf a change compiles in one subproject but Wox still breaks end to end, run make build from the repository root. That is the fastest way to catch contract mismatches between wox.core, Flutter, and the plugin hosts.