π§ This project is under active development and not yet suitable for production use. Expect breaking changes, incomplete features, and evolving APIs.
Qwery is the most capable platform for querying and visualizing data without requiring any prior technical knowledge in data engineering. Using natural language in any supported language, Qwery seamlessly integrates with hundreds of datasources, automatically generates optimized queries, and delivers outcomes across multiple targets including result sets, dashboards, data apps, reports, and APIs.
- Choose your environment: Download the desktop application or connect to the Qwery Cloud Platform
- Connect your data: Link to your databases, APIs, or other datasources
- Start querying: Use natural language to query your datasources instantly
- Work with AI agents: Press
CMD/CTRL + Lto collaborate with intelligent agents that assist with your data workflows
- Natural Language Querying: Ask questions in plain language, get SQL automatically
- Multi-Database Support: PostgreSQL, MySQL, MongoDB, DuckDB, ClickHouse, SQL Server, and more
- AI-Powered Agents: Intelligent assistants that help with data workflows (CMD/CTRL + L)
- Visual Data Apps: Build dashboards and data applications without code
- Desktop & Cloud: Run locally or use our cloud platform
- Template Library: Pre-built notebooks, queries, and dashboards
- Extensible: Plugin system for custom datasources and integrations
- Node.js >= 22.x
- pnpm >= 10.x
# Clone the repository
git clone https://github.com/Guepard-Corp/qwery-core.git
cd qwery-core
# Install dependencies
pnpm install
# Start development server
pnpm server:dev
pnpm web:dev
The web app will be available at http://localhost:3000
Using apps/web with apps/server: To have the web app use the API server (file repositories) instead of in-app API routes, start the server (pnpm --filter server dev, port 4096) and set VITE_API_URL=http://localhost:4096/api in apps/web/.env. Then start the web app (pnpm --filter web dev). Flow: Web Browser β SSR/Loader β apps/server Hono.
On some systems, the HOSTNAME environment variable contains your PC name (for example my-laptop) instead of a bind address, which can make the server unreachable from other devices.
To force a proper bind address, set HOSTNAME explicitly before starting the server.
Example:
HOSTNAME=0.0.0.0 pnpm --filter server devUse 0.0.0.0 when you want the server reachable from your local network.
# Build and run desktop app
pnpm desktop:devThis is a Turborepo monorepo with the following structure:
apps/web- Main React Router SaaS applicationapps/desktop- Desktop application (Electron)packages/features/*- Feature packagespackages/- Shared packages and utilitiestooling/- Build tools and development scripts
# Start all apps in development mode
pnpm dev
# Start specific app
pnpm --filter server dev # Server app
pnpm --filter web dev # Web app (port 3000)
pnpm --filter desktop dev # Desktop app
pnpm --filter tui dev # Terminal app
# Code Quality
pnpm format:fix # Auto-fix formatting
pnpm lint:fix # Auto-fix linting issues
pnpm typecheck # Type checking
pnpm check # Run all quality checks (format, lint, typecheck, build, test)
# Build
pnpm build # Build all packages
# Testing
pnpm test # Run all tests- TypeScript: Strict type checking, avoid
anytypes - Linting: ESLint with strict rules
- Formatting: Prettier with consistent style
- Testing: Vitest for unit tests, Playwright for E2E
Always run pnpm check before committing to ensure all quality checks pass.
We welcome contributions! Check out our Contributing Guide to get started.
- Run
pnpm checkto ensure all quality checks pass - Make sure your code follows our TypeScript guidelines
- Write tests for new features
- Update documentation as needed
- Review good first issues
- Read our Code of Conduct
- Check AGENTS.md for development guidelines
- Join our Discord community
- Discord: Join our Discord for discussions and support
- GitHub Issues: Report bugs and request features
- YouTube: Watch demos and tutorials
This project uses the Elastic License 2.0 (ELv2). See the LICENSE file for details.
We're grateful to the open source community. See our Thank You page for acknowledgments.
