https://github.com/arshad-shah/verql
Fast, extensible desktop database client. Electron + React, plugin-based: drivers, importers, themes, and AI providers all ship as plugins.
https://github.com/arshad-shah/verql
database database-client desktop-app electron mcp monaco-editor mongodb mysql plugin-architecture postgresql react redis snowflake sql-editor sqlite typescript
Last synced: 22 days ago
JSON representation
Fast, extensible desktop database client. Electron + React, plugin-based: drivers, importers, themes, and AI providers all ship as plugins.
- Host: GitHub
- URL: https://github.com/arshad-shah/verql
- Owner: arshad-shah
- License: mit
- Created: 2026-03-18T12:49:31.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-05-21T16:24:21.000Z (about 1 month ago)
- Last Synced: 2026-05-21T20:52:59.639Z (about 1 month ago)
- Topics: database, database-client, desktop-app, electron, mcp, monaco-editor, mongodb, mysql, plugin-architecture, postgresql, react, redis, snowflake, sql-editor, sqlite, typescript
- Language: TypeScript
- Homepage: https://github.com/arshad-shah/verql
- Size: 3.96 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# Verql
A fast, extensible desktop database client. Built on Electron + React,
with a plugin architecture: the main app is an orchestrator and every
database driver, import/export format, theme, and AI integration ships
as a bundled plugin.
> **Status:** Pre-1.0. Expect rough edges and breaking changes between
> minor versions. The contribution surfaces (plugin APIs, IPC channels)
> are documented in [docs/](./docs/) and will be stabilised before 1.0.

## Features
- **Native drivers** for PostgreSQL, MySQL, SQLite, Snowflake, MongoDB,
and Redis — each is a bundled plugin, not core code.
- **SQL editor** powered by Monaco with per-dialect autocomplete, code
lens, and AI-assisted inline completion.
- **Schema browser** with ER diagrams, table previews, and an inspector
panel for individual rows.
- **Import/export** to CSV, JSON, SQL, JSON-Lines (Mongo) — file formats
are also plugin contributions.
- **AI assistant** with built-in OpenAI, Anthropic, and Ollama providers.
Per-query permission gating; tool calls require user approval.
- **MCP server** built in, so Claude Code (and any other MCP client)
can read your schema and run approved queries.
- **SSH tunnels** as a connection middleware.
## Install
Pre-built binaries are published to
[GitHub Releases](https://github.com/arshad-shah/verql/releases):
| Platform | Format | Notes |
|----------|--------|-------|
| macOS | `.dmg` (Intel + Apple Silicon) | Signed and notarised. |
| Linux | `.AppImage` | Signature published as a detached `.sig` next to the `sha256sums.txt`. |
| Windows | `.exe` (NSIS installer) | **Unsigned.** SmartScreen will warn the first time it runs; see `.github/maintainers/release.md` for the upgrade path. |
Verifying a release:
```bash
# Download , sha256sums.txt, and sha256sums.txt.sig from the release page
gpg --verify sha256sums.txt.sig sha256sums.txt
sha256sum -c sha256sums.txt --ignore-missing
```
## Run from source
Requires Node ≥ 20 and [pnpm](https://pnpm.io/) 10. Then:
```bash
pnpm install
pnpm dev
```
The first install rebuilds `better-sqlite3` against Electron's Node ABI.
To run the unit tests under your system Node, run `pnpm rebuild
better-sqlite3` once to swap the binding back, then `pnpm test`.
## Architecture
`src/main/` is the **orchestrator** — window management, IPC plumbing,
and the plugin host. Everything dialect-specific lives in a plugin under
`src/main/plugins/bundled/`. The renderer (React) talks to the main
process through typed IPC channels declared in `shared/ipc.ts`.
To add a new database type, file format, AI provider, or UI panel: write
a plugin. See [docs/plugins.md](./docs/plugins.md).
To add or change an IPC channel: see [docs/ipc.md](./docs/ipc.md).
## Contributing
We use [Changesets](https://github.com/changesets/changesets) to manage
versions. Every user-visible change should include a changeset:
```bash
pnpm changeset
```
See [CONTRIBUTING.md](./CONTRIBUTING.md) for the full workflow.
## Security
Found a vulnerability? Please follow [SECURITY.md](./SECURITY.md) —
do not open a public issue.
## License
[MIT](./LICENSE) © 2026 Arshad Shah