QueryBox is a local-first operational workspace for backend engineers who need to inspect, query, debug, and operate data systems from one desktop app. It uses plugins to expose system-specific resources and actions while keeping runtime execution on the user's machine.
Today's implementation is still strongest on database workflows, but the product direction is broader than a database GUI. QueryBox is intentionally focused on operational workflows rather than becoming a general-purpose admin console or an AI-first product.
- Target user: backend engineers working across databases, queues, object stores, logs, and other operational systems.
- Primary workflows: inspect, query, debug, and operate systems through a single local workspace.
- Runtime principle: local-first by default. No account, control plane, or cloud dependency is required for core usage.
- Product boundary: optimize for resource-oriented workflows, not broad infrastructure administration.
- Terminology direction:
connection/profile -> resource graph -> actions -> results/streams.
| Tool | Version | Purpose |
|---|---|---|
| Go | >=1.26.1 | Backend |
| Wails v3 | v3.0.0-alpha.98 | Desktop framework |
| Task | latest | Build automation |
| Node.js | >=24 | Frontend tooling |
| protoc + protoc-gen-go + protoc-gen-go-grpc | libprotoc 29.6 / protoc-gen-go v1.36.10 / protoc-gen-go-grpc v1.6.1 | gRPC code generation (only if modifying .proto files) |
# Install Task (build tool)
go install github.com/go-task/task/v3/cmd/task@latest
# or using npm
npm install -g taskfile
# Install Wails CLI
go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha.98
# Install protoc-gen-go (only needed if modifying .proto files)
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.36.10
# Install protoc-gen-go-grpc (only needed if modifying .proto files)
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.6.1
# Install protoc (see https://grpc.io/docs/protoc-installation/)git clone https://github.com/your-username/querybox.git
cd querybox# Start the app with hot-reload
wails3 devBoth frontend and backend changes are hot-reloaded automatically.
wails3 buildThe production executable is placed in bin/.
Plugins are standalone executables that normally live in bin/plugins/ (on Windows the files will have a .exe suffix). At startup the app copies whatever lives in the bundled bin/plugins into the per-user config directory (%APPDATA%\querybox\plugins, $XDG_CONFIG_HOME/querybox/plugins, etc.), overwriting existing copies. The host then scans both locations, with the user directory taking precedence; this allows the bundle to be updated while still letting users add or override drivers.
# Build all plugins at once
task build:pluginsBy default the host OS is detected; you can override using standard Go cross‑compile vars:
GOOS=windows GOARCH=amd64 task build:pluginsBinaries are placed in bin/plugins/ (Windows builds get .exe) and picked up by the app within 2 seconds.
-
Copy the template:
cp -r plugins/template plugins/<your-plugin-name>
-
Edit
plugins/<your-plugin-name>/plugin.jsonto declare the manifest v1 metadata:id,type,version,runtimecapabilities,permissions,limits
-
Edit
plugins/<your-plugin-name>/main.go— implement the four commands:info— return plugin metadata (name, version, type)authforms— return auth form definitions for the UIexec— execute a query and return resultsresource-graph— return a browsable resource hierarchy
The current shipping contract is centered on
resource-graphand query-style execution. Bundled plugins are expected to ship a valid manifest and the runtime no longer falls back to legacy browse contracts. -
Build and drop the binary:
task build:plugins
-
The running app will discover the new plugin automatically (no restart needed).
See docs/features/plugin-system.md for the full plugin contract and examples.
├── main.go # Application entry point
├── services/ # Core services (connection, credential, plugin manager)
├── pkg/plugin/ # Plugin SDK — ServeCLI helper and type aliases
├── plugins/ # Plugin source code
│ ├── mysql/
│ ├── postgresql/
│ ├── sqlite/
│ └── template/ # Starting point for new plugins
├── contracts/plugin/v1/ # Protobuf definitions
├── rpc/contracts/plugin/v1/ # Generated Go code (pluginpb)
├── frontend/ # Vue 3 frontend
├── docs/ # Canonical product, development, and architecture documentation
│ └── adr/ # Architecture decision records
├── scripts/ # Build helper scripts
└── build/ # Platform-specific build configuration
See docs/index.md for the full documentation map. Quick links:
| Component | License | Notes |
|---|---|---|
| JetBrains Mono | Apache 2.0 | Font used in the UI |
This project is licensed under the MIT License. See the LICENSE file for details.
