   [](https://snyk.io//test/github/debba/tabularis?targetFile=package.json) [](https://discord.gg/YrZPHAwMSG) [](https://gitster.dev/repo/debba/tabularis)
An open-source desktop client for modern databases. Supports PostgreSQL, MySQL/MariaDB and SQLite and is hackable with plugins, with notebooks, AI, and MCP built in.
Available in: English, Italian, Spanish, Chinese (Simplified)
Discord - Join our Discord server to talk with the maintainers, share feedback, and get help from the community.
💡 Origin Story: This project began as an AI-assisted development experiment, exploring how far intelligent agents could accelerate building a fully functional tool from scratch..
winget install Debba.Tabularis
Download the installer from the Releases page and run it:
tabularis_x.x.x_x64-setup.exe
Follow the on-screen instructions to complete the installation.
To add our tap, run:
brew tap debba/tabularis
Then install:
brew install --cask tabularis
When you install tabularis on macOS, you need to allow accessibility access (Privacy & Security) to the tabularis app.
If you are upgrading and you already have tabularis on the allowed list you will need to manually remove them before accessibility access can be granted to the new version.
macOS users who download directly from releases may need to run:
xattr -c /Applications/tabularis.app
after copying the app to the Applications directory.
sudo snap install tabularis
Download the .AppImage file from the Releases page, make it executable and run it:
chmod +x tabularis_x.x.x_amd64.AppImage
./tabularis_x.x.x_amd64.AppImage
yay -S tabularis-bin
Tabularis checks for updates automatically on startup. When a new version is available, a notification will appear, allowing you to download and install the update seamlessly.
You can also manually check for updates or download the latest version directly from the Releases page.
View the full gallery at tabularis.dev
Join our Discord server to talk with the maintainers, share feedback, suggest features, or get help from the community.
dbgate-query-splitter — correctly handles stored procedures, functions, and $$-delimited blocks.{{cellName.columnName}} syntax with automatic dependency resolution.{{$paramName}} variables substituted across all cells at execution time..tabularis-notebook files. Export as .tabularis-notebook, HTML, CSV, or JSON.Ctrl+B to toggle sidebar, Ctrl+T for a new tab, Ctrl+→/← to paginate results).Cmd on macOS and Ctrl on Windows/Linux throughout.Ctrl+Shift in the sidebar to reveal numbered badges (1–9) for instant connection switching.keybindings.json in the app config directory; can also be edited manually.Tabularis is hackable with an external plugin system. Plugins are standalone executables that communicate with the app over JSON-RPC 2.0 via stdin/stdout, and can be written in any language.
plugins/registry.json.plugins/PLUGIN_GUIDE.md to build your own driver in any language..log files for debugging or audit trails.tabularis --debug to enable verbose logging (including internal SQLx queries) from launch.Configuration is stored in ~/.config/tabularis/ (Linux), ~/Library/Application Support/tabularis/ (macOS), or %APPDATA%\tabularis\ (Windows).
connections.json: Connection profiles.saved_queries.json: Saved SQL queries.config.json: App settings (theme, language, page size).themes/: Custom themes.preferences/: Editor preferences per connection (tabs, queries, layout).Tabularis automatically saves your editor state for each database connection. When you reopen a connection, you'll see your previously opened tabs with their queries restored.
Location: ~/.config/tabularis/preferences/{connectionId}/preferences.json
What is saved:
What is NOT saved:
This approach ensures fast startup times while preserving your workspace layout across sessions.
config.json optionstheme: Theme ID (e.g., "tabularis-dark", "monokai").fontFamily: Editor font family.fontSize: Editor font size (px).language: "auto", "en" (English), "it" (Italian), "es" (Spanish), "zh" (Chinese Simplified).resultPageSize: Default rows per page.aiEnabled: Enable/Disable AI features.customRegistryUrl: Custom URL for the plugin registry (overrides the default official registry).You can override or add custom models for AI providers by editing config.json and adding the aiCustomModels object:
{
"resultPageSize": 1000,
"language": "en",
"aiEnabled": true,
"aiProvider": "openai",
"aiCustomModels": {
"openai": ["gpt-4o", "gpt-4-turbo", "gpt-3.5-turbo", "gpt-5-preview"],
"anthropic": ["claude-3-opus-20240229", "claude-3-sonnet-20240229"],
"minimax": ["MiniMax-M2.7", "MiniMax-M2.7-highspeed"],
"openrouter": ["google/gemini-pro-1.5", "meta-llama/llama-3-70b-instruct"]
}
}
Optional Text-to-SQL and query explanation powered by:
Select "Ollama" as your provider in Settings. Tabularis will automatically detect your local models running on port 11434 (configurable). No API key required.
Select "OpenAI Compatible" as your provider to connect to any service that implements the OpenAI API format. Configure your custom endpoint URL and model name in Settings. Examples:
https://api.groq.com/openai/v1https://api.perplexity.aihttp://localhost:8000/v1Tabularis automatically fetches the latest available models from your configured provider.
Tabularis includes a built-in MCP (Model Context Protocol) server that lets AI agents read your database schema and execute queries directly from their chat interface.
tabularis --mcp
| Client | One-click install | Manual config |
|---|---|---|
| Claude Desktop | Yes (Settings → MCP) | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Cursor | Yes (Settings → MCP) | ~/.cursor/mcp.json |
| Windsurf | Yes (Settings → MCP) | ~/.codeium/windsurf/mcp_config.json |
Add this to your client's MCP config file:
{
"mcpServers": {
"tabularis": {
"command": "/path/to/tabularis",
"args": ["--mcp"]
}
}
}
Once connected, your AI agent can:
| Tool | Description |
|---|---|
list_connections |
List all saved database connections |
list_tables |
List tables in a connection (with optional schema filter) |
describe_table |
Get full schema: columns, indexes, foreign keys |
run_query |
Execute any SQL query and return results |
"Show me all tables in my production database and describe the
orderstable""Write and run a query to find the top 10 customers by total order value this month"
"Check if there are any missing indexes on the
userstable"
pnpm install
pnpm tauri dev
pnpm tauri build
Apache License 2.0