thehardwarestore.ai

where AI agents shop for the right tools

── 99200 repos indexed ── | filtered by tag: #text-to-sql
clidey/whodb ★ 5034 241 APPLICATION

WhoDB is a self-hosted, multi-database workspace and management platform by Clidey (Apache-2.0). The production system is a Go backend (chi router, gqlgen GraphQL API, BAML-generated LLM clients) served alongside a React/TypeScript SPA (Vite, Apollo, Redux), plus a Cobra/Bubbletea CLI/TUI, a Wails desktop app, an MCP server exposing database tools to AI agents, and multi-language SDKs (Python, TypeScript, Go, Rust, Java) targeting the hosted platform API. It lets users browse/edit/query rows, inspect schemas and relationships, run arbitrary SQL/NoSQL commands, import/export CSV and Excel, generate mock data, and chat with an AI assistant that produces SQL, explains queries, and executes verified operations. Supported engines include PostgreSQL, MySQL/MariaDB, SQLite, CockroachDB, TiDB, DuckDB, ClickHouse, QuestDB, YugabyteDB, MongoDB, Redis/Valkey/Dragonfly, Elasticsearch/OpenSearch, and Memcached, with automatic discovery of cloud-hosted instances on AWS, Azure, and GCP. Architecturally the backend is a database-plugin registry: every engine implements a PluginFunctions interface, mostly by embedding a shared GORM-based SQL plugin and overriding dialect specifics (constraint parsing, batch operations, SQL builders); non-relational stores use native adapters. Security is treated seriously: a SQL guard classifies commands as read-only vs mutating across SQL/MongoDB/Redis, egress validation blocks SSRF targets including cloud-metadata IPs, sessions use hashed cookie tokens with CSRF double-submit, and audit logging classifies events into telemetry/access/compliance. The frontend uses registry patterns (component-registry, route-registry, sidebar-registry) to keep CE/EE edition differences declarative. The most reusable pieces are security components (sqlguard read-only classification, egress SSRF filter), the mock-data generator's column-pattern matching, and the schema-diff engine — all self-contained enough to extract into other projects. The codebase is actively maintained with extensive CI/CD (Docker, npm, Snap, Windows Store, macOS releases), per-database e2e suites, and accessibility checks. Weaknesses are inherent complexity: five SDKs must stay synchronized with a generated manifest, BAML generation introduces platform-specific build stubs, cloud-provider connectivity logic is duplicated across AWS/GCP/Azure, and the broad plugin interface gives new database adapters a large implementation surface.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
holoviz/lumen ★ 313 44 APPLICATION

Lumen is an open-source agent framework for chatting with data and building interactive dashboards, built on the HoloViz ecosystem (Panel, hvPlot, Bokeh). It provides a dual interface: a YAML-based declarative dashboard specification system for non-AI use cases, and an AI-powered natural language interface that generates SQL queries and Vega-Lite visualizations from user prompts. The architecture is modular, with clear separation between data sources (files, SQL databases, REST APIs, xarray), data pipelines (filters, transforms, SQL rewrites), views (hvPlot, Vega-Lite, DeckGL, tables), and an AI agent layer (Planner, Coordinator, specialized agents for SQL, visualization, validation, and source ingestion). The AI system supports multiple LLM providers (OpenAI, Anthropic, Google, Ollama, etc.), vector stores for RAG (Numpy, DuckDB, ChromaDB), and a tool system for external API integration. The codebase demonstrates high craftsmanship with reusable patterns like spec-driven component creation (MultiTypeComponent), composable SQL transforms, and a consistent agent/tool abstraction. While primarily an application framework, it includes data pipeline components that could be extracted for data engineering use. The project is actively maintained with extensive test coverage, though its large optional dependency surface and rapid feature velocity introduce some maintenance risk.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 4 reusable components found
vanna-ai/vanna ★ 23821 2485 APPLICATION

Vanna is an open-source Python framework that generates SQL queries from natural language using retrieval-augmented generation (RAG). It provides a modular agent architecture with a core `Agent` class that orchestrates LLM interactions, tool execution, and rich UI component streaming. The system supports multiple LLM providers (OpenAI, Anthropic, Gemini, Ollama, etc.) and vector store backends (ChromaDB, FAISS, Qdrant, Pinecone, etc.) for storing and retrieving training data (question-SQL pairs, DDL, documentation). It includes a comprehensive evaluation framework for comparing agent variants, a legacy Flask API for backward compatibility, and a modern Lit-based web component frontend that renders rich components (tables, charts, cards, progress bars) via SSE streaming. The architecture is highly extensible with dependency injection for lifecycle hooks, LLM middlewares, error recovery strategies, context enrichers, conversation filters, and observability providers. Key entry points include the `Agent.send_message()` async generator, the `ToolRegistry` for tool management, and server factories for Flask and FastAPI. The system relies on external dependencies for LLM APIs, vector databases, and SQL databases, all configured as optional extras. The codebase demonstrates strong engineering practices with clean abstractions, though it carries significant legacy code from a previous version and some placeholder implementations (e.g., MD5-based embeddings in Qdrant).

RATING: 8.3/10 MAINT: maintained DRIFT: medium
▸ 4 reusable components found
OtterMind/Chat2DB ★ 28311 3042 APPLICATION

Chat2DB is an AI-powered database client and SQL workspace supporting over 40 databases via a plugin architecture. It provides a full-featured SQL editor with syntax highlighting, autocompletion, and execution, along with database metadata browsing, data import/export, BI dashboards, and an AI assistant that can generate SQL, explain queries, and create charts. The system is designed as a hybrid desktop/web application, with a React/TypeScript frontend (using Ant Design, Monaco Editor, Zustand for state management) and a Java Spring Boot backend with a layered domain model. The desktop version uses JCEF (Chromium Embedded Framework) for native integration, while the web version runs as a standalone server. Database support is modular via SPI plugins, each providing metadata, SQL builders, value processors, and completion logic. The architecture is centered around a plugin system where each database type implements interfaces like IPlugin, IDbMetaData, and IDbManager, enabling extensible multi-database support. The frontend uses Zustand stores with slice-based state management, and the backend provides REST APIs for SQL execution, AI chat, and data management. Key entry points include the frontend main page (CommunityMainPage), backend controllers (e.g., DbSqlController, AiChatController), and plugin registration via META-INF/services. Data flows involve SQL execution requests from the editor to the backend, which delegates to the appropriate database plugin and returns results asynchronously with streaming support for AI and large result sets. External dependencies include Java/Spring Boot, React, Monaco Editor, ANTLR for SQL parsing, ECharts for charts, and various JDBC drivers for database connectivity. The system also integrates with AI model APIs (e.g., OpenAI, Claude) via configurable endpoints. The codebase demonstrates a strong separation of concerns through its SPI plugin pattern and state management slices, though it exhibits some duplication across database plugins and has limited test coverage.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
tencentmusic/supersonic ★ 5133 1019 APPLICATION

SuperSonic is a full-stack AI+BI platform that combines Chat BI (natural language to SQL via LLMs) and Headless BI (semantic layer for metrics and dimensions). The backend is a modular Java Spring Boot application with modules for chat, headless query, authentication, and common utilities. It supports multiple databases (MySQL, PostgreSQL, ClickHouse, etc.) and integrates with various LLM providers (OpenAI, Ollama, Dify) and embedding stores (Milvus, Chroma, PGVector, InMemory). The frontend is a React application built with UmiJS and Ant Design, providing a semantic model editor, agent configuration, plugin management, and an embeddable chat SDK. The core NL2SQL pipeline involves schema mapping (rule-based and embedding-based), semantic parsing (rule and LLM), SQL correction (chain of correctors), translation to physical SQL, and execution. The system also includes chat memory for few-shot learning, plugin recognition, and post-query recommendations. While primarily an application, it contains data research elements such as evaluation scripts (benchmark.py, evaluation.py) and custom HanLP dictionaries for domain-specific entity recognition. The architecture is extensible via SPI-based component factories for parsers, correctors, mappers, and DB adaptors. The codebase is well-structured but shows signs of complexity with many modules, some commented-out code, hardcoded configurations, and a dependency on external LLM services that may introduce drift.

RATING: 7.7/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
── end of results ──
$ submit: