-
Notifications
You must be signed in to change notification settings - Fork 0
Core Features
Queryeer is a desktop Query IDE built around a tabbed multi-file workspace. This page covers the core application features that apply regardless of which query engine or output component is in use.
Queryeer opens each query file in its own tab, allowing you to work on multiple queries at the same time. Tabs can be freely opened, closed, and navigated between.
The Projects panel provides a tree-based view of your query files. From here you can:
- Browse and open files in your project folder
- Quickly search for files using fuzzy matching
- Organize queries into a folder structure
Recently opened query files are tracked and accessible from the menu, letting you quickly reopen previous work without navigating the file system.
Queryeer monitors open files for external changes. If a file is modified by another tool (e.g., your text editor or version control), Queryeer detects the change and prompts you to reload.
A background backup system periodically saves your open query files so unsaved work is protected against unexpected crashes.
Execute the current query (or selected text) using the toolbar button or a keyboard shortcut. Results appear in the output panel below the editor.
Queries run on a background thread so the UI remains responsive. You can continue browsing other files or starting additional queries while a long-running query executes.
A Stop button is available during execution to cancel an in-progress query. The query engine is notified and the result panel reflects the cancellation.
The Tasks dialog lists all background tasks currently running or recently completed, including their status and any errors encountered.
A fuzzy file search dialog lets you type part of a filename to quickly jump to any query file in your project, without navigating the project tree.
A quick-search panel lets you find and switch between configured data sources (connections, catalogs) without opening the Options dialog.
The Options dialog is the central place for all configuration. Settings are organized by component:
| Section | What It Controls |
|---|---|
| General | Theme, UI behavior, workspace paths |
| Editor | Syntax highlighting, code completion, keyboard shortcuts |
| Query Engines | Connection strings, credentials, engine-specific settings |
| Output | Table rendering, column behavior, export defaults |
| MCP Server | Model Context Protocol port and settings |
| AI Assistant | AI provider selection, API keys |
Configuration is stored as JSON files. Sensitive values such as passwords are encrypted using Jasypt before being written to disk.
The status bar at the bottom of the window provides live information:
- Caret position — current line and column number in the editor
- Memory usage — current JVM heap usage
- Task status — indicator when background tasks are running
- MCP server status — shows whether the MCP server is active
The Logs dialog displays application and query-level log output. This is useful for diagnosing connection issues, engine errors, or unexpected query behavior.
Queryeer integrates an AI chat panel that can be used alongside the query editor:
- Anthropic Claude API — connect with your own API key
- Claude Code — integrate with a locally running Claude Code instance
- The assistant can receive query text and query results as context
- Conversations are multi-turn and support follow-up questions
See the Plugin System page for details on the IAIAssistantProvider extension point.
Queryeer uses the FlatLaf look-and-feel library, which provides a modern, cross-platform UI. IntelliJ-compatible themes can be applied from the Options dialog.
After unzipping a release, the directory structure is:
queryeer-<version>/
├── bin/ # Platform launchers (Windows, Linux, macOS)
├── lib/ # Core Queryeer JAR files
├── plugins/ # Drop plugin JARs here
└── shared/ # Shared dependencies (e.g., JDBC drivers)
Plugin JARs placed in plugins/ are discovered automatically on startup. Libraries shared between multiple plugins (such as a JDBC driver used by more than one plugin) should be placed in shared/.