
tablite
🪶 An ai driven lightweight database GUI built on Tauri.
Repository Info
About This Server
🪶 An ai driven lightweight database GUI built on Tauri.
Model Context Protocol (MCP) - This server can be integrated with AI applications to provide additional context and capabilities, enabling enhanced AI interactions and functionality.
Documentation
Tablite
🪶 An ai driven lightweight database GUI built on Tauri.
Features
- Lightweight and cross-platform build
- Natural language querying with multi-LLMs support
- Modern and easy-to-use interface
- Local data storage for secure (except for sending schema to your LLM provider)
Supported databases:
- SQLite
- MySQL
Supported LLMs:
- Gemini 2.0 Flash
- Gemini 1.5 Pro
- Gemini 1.5 Flash
- DeepSeek V3
- DeepSeek R1
- OpenRouter (Tools supported)
!Screenshot
Installation
You can download Windows and Mac desktop app here
For MacOS user with M1 or later, you need to execute the following command in terminal to allow the application downloaded form the internet:
sudo xattr -r -d com.apple.quarantine /Applications/Tablite.app
Or use the x64 version in release page to bypass this issue.
Usage
Tables
- Fuzzy search for table names
- Dynamically filter tables with popover selectors
- Double-click a cell to enter edit mode
- Select rows for deletion
- Disvard changes or preview the actual SQL before saving
- Support re-editing SQL before saving
Queries
- Fuzzy search for table names
- Automatically generate an SQL query from the title as a prompt
⌘+sor click theSavebutton for saving- Run the query and display the time costs
Settings
- Select ai assistant based model
- Enter api keys for different providers
Developing
pnpm install && pnpm tauri dev
Comparisons
-
Tauri: Small bundle size and low memory usage, dependence by user os, may have rendering differences across different systems/platforms due to WebKit version.
-
Electron: Large bundle size and large mem usage, has high consistency in cross-platform application rendering.
| Tauri | Electron | Gpui | Swift | |
|---|---|---|---|---|
| Performance | mid | low | high | high |
| Cross Platform | yes | yes | yes | no |
| Community | high | high | low | mid |
| Size | small | large | mid | mid |
| Development | mid | low | high | mid |
| App | ChatWise | DingTalk | Zed | Pages |
Code Design
!Design
app
WebView client application with official nuxt design (future.compatibilityVersion: 4), read Directory Structure.
app.components.VisTable
High performance canvas based table component, powered by VisActor
Support cell update and undo actions, and used update ref struct like:
/**
* Tracks changes made to table cell contents, where:
* - The outer key is a stringified row identifier (e.g., JSON string of row ID)
* - The inner key is the column/property name that was modified
* - The value is an array containing the new content(s)
*
* @example
* // Changes for row with ID "93uisjxquq", updating the "content" column from "hi" to "hi tablite"
* { "{\"id\":\"93uisjxquq\"}": { "content": ["hi", "hi tablite"] } }
*/
const changes = ref({})
Usage:
<VisTable
v-model:changes="changes"
v-model:inserts="inserts"
v-model:selected-row-keys="selectedRowKeys"
editable
:columns="columns"
:records="data"
:deletes="deletes"
:primary-keys="primaryKeys"
/>
app.composables
Reacitve vue hooks
app.composables.useText2Sql
Text to SQL AI Agent
app.composables.useAi
Reactive Vercel AI SDK in vue port
app.utils.agent
Global agent creator, example here
createAgent usage:
const prompt = ref('')
const { model } = useAiProvider()
const { messages } = await createAgent(model.value!)
.next(({ messages }: { messages: any[] }) => messages[0]!.content)
.execute([{ role: 'user', content: prompt.value }])
src-tauri
Tauri service root directory
src-tauri/src/lib.rs
App instance entry, plugin register center (includes: sql-extra / log / store)
src-tauri/crates/tauri-plugin-sql-extra
Custom tauri plugin sql implement.
Heavily inspired by tauri-plugin-sql and extends its capabilities by adding support for multiple database types.
sql-extra powered by sqlx and provide plugin commands below:
plugin:sql-extra|load: ({ db: string }) => Promiseplugin:sql-extra|execute: ({ db: string, query: string }) => Promiseplugin:sql-extra|select: <T extends any[]>({ db: string, query: string }) => Promiseplugin:sql-extra|close: ({ db: string }) => Promise
For different type of database, sql-extra use serde_json for json decoder
-
mysql"CHAR" | "VARCHAR" | "TINYTEXT" | "TEXT" | "MEDIUMTEXT" | "LONGTEXT" | "ENUM" | "DATE" | "TIME" | "DATETIME" | "TIMESTAMP":string"Float" | "DOUBLE" | "TINYINT" | "SMALLINT" | "INT" | "MEDIUMINT" | "BIGINT" | "TINYINT UNSIGNED" | "SMALLINT UNSIGNED" | "INT UNSIGNED" | "MEDIUMINT UNSIGNED" | "BIGINT UNSIGNED" | "YEAR" | "TINIYBLOB" | "MEDIUMBLOB" | "BLOB" | "LONGBLOB":number"BOOLEAN":boolean
-
sqlite"TEXT" | "DATE" | "TIME" | "DATETIME":string"REAL" | "INTEGER" | "NUMERIC" | "BLOB":number"BOOLEAN":boolean
Agents
Text to SQL
Generate executable sql query with natural language.
- Analysis relevant table names by model function calling
- Provide table schema with row index
- Generate prompt by preset templates
- Generate SQL query
- Format results and response with sse
Roadmap
Ranking here very subjective and based on personal pain points.
SQL Client
- Support create table by GUI
- Support create connection by a form instead of a connection string
- Support edit or create columns / index by GUI
- Support export table filter results to csv
- Collect SQL execute histories
- Better code auto completion
AI Assistant
- Support table visualization dashboard generation
- Support custom table context
- Support inline assistant in code editor
- Support MCP service
License
MIT License © 2024-PRESENT Tamago
Quick Start
Clone the repository
git clone https://github.com/tmg0/tabliteInstall dependencies
cd tablite
npm installFollow the documentation
Check the repository's README.md file for specific installation and usage instructions.
Repository Details
Recommended MCP Servers
Discord MCP
Enable AI assistants to seamlessly interact with Discord servers, channels, and messages.
Knit MCP
Connect AI agents to 200+ SaaS applications and automate workflows.
Apify MCP Server
Deploy and interact with Apify actors for web scraping and data extraction.
BrowserStack MCP
BrowserStack MCP Server for automated testing across multiple browsers.
Zapier MCP
A Zapier server that provides automation capabilities for various apps.