Simple database client https://melocoton.app
  • Elixir 68.9%
  • HTML 22.6%
  • JavaScript 4.9%
  • CSS 2.3%
  • Rust 0.7%
  • Other 0.6%
Find a file
2026-05-30 23:31:02 -06:00
.github/workflows ci: update softprops/action-gh-release to v3 to fix deprecation warning 2026-05-25 20:56:38 -06:00
assets fix: replace mdex with earmark + makeup for markdown rendering 2026-05-30 23:26:35 -06:00
config chore: upgrade tailwind to latest patch version on 3.4.X branch 2026-03-29 19:12:57 -06:00
lib fix: replace mdex with earmark + makeup for markdown rendering 2026-05-30 23:26:35 -06:00
priv fix: cascade-delete sessions on database removal 2026-04-23 09:14:40 -06:00
rel perf: optimize BEAM memory and CPU usage for desktop sidecar 2026-03-24 23:43:20 -06:00
src-tauri chore: bump v0.29.1 2026-05-30 23:31:02 -06:00
test fix: replace mdex with earmark + makeup for markdown rendering 2026-05-30 23:26:35 -06:00
views chore: load application version dynamically in splash screen 2026-03-28 12:40:05 -06:00
.credo.exs chore: add Credo and mix_audit to CI pipeline 2026-03-18 19:25:46 -06:00
.editorconfig Add .editorconfig file 2024-08-17 11:52:24 -06:00
.formatter.exs Move web application to root folder 2025-05-13 12:11:08 -06:00
.gitignore Move web application to root folder 2025-05-13 12:11:08 -06:00
build.ps1 feat: add Windows desktop release support 2026-04-21 21:10:29 -06:00
build.sh feat: add linux arm release support to build releases action 2026-04-23 23:36:21 -06:00
justfile feat: add linux arm release support to build releases action 2026-04-23 23:36:21 -06:00
LICENSE chore: create LICENSE 2025-07-19 11:34:13 -06:00
mise.toml chore: update nodejs to latest LTS version 2026-04-11 11:52:09 -06:00
mix.exs chore: bump v0.29.1 2026-05-30 23:31:02 -06:00
mix.lock fix: replace mdex with earmark + makeup for markdown rendering 2026-05-30 23:26:35 -06:00
package-lock.json chore: bump v0.29.1 2026-05-30 23:31:02 -06:00
package.json chore: bump v0.29.1 2026-05-30 23:31:02 -06:00
README.md docs: fix GitHub username in README.md 2026-04-26 19:46:54 -06:00

Melocoton

A keyboard-driven, multi-platform database client for SQLite, PostgreSQL, and MySQL. Built with Elixir/Phoenix LiveView and packaged as a native desktop app with Tauri.

Melocoton (/me.loˈko.ton/) means "peach" in Spanish. It is a power-user tool designed for developers and DBAs who value speed, precision, and staying in flow.

Table of contents

Features

  • Keyboard-native — every action is reachable from the keyboard; shortcut hints shown inline
  • SQL editor — CodeMirror-powered editor with syntax highlighting, auto-completion, and optional Vim mode
  • Transaction support — interactive transactions with explicit commit/rollback control
  • Table explorer — browse schemas, tables, indexes, columns, and foreign keys
  • Multiple databases — connect to several databases and switch between them instantly
  • Connection groups — organize databases by project, environment, or team with color-coded labels
  • AI assistant — natural language to SQL with schema-aware chat; supports Anthropic, OpenAI, OpenRouter, MiniMax, and local models via Ollama
  • Data export — export query results to CSV or Excel
  • Query history — search and re-run past queries
  • Cross-platform desktop app — native builds for macOS, Linux, and Windows

Installation

Download the latest release for your platform from the Releases page:

Platform Installer
macOS .dmg
Linux .deb, .rpm, .AppImage
Windows .msi, .exe (NSIS)

No additional runtime is required — the desktop app bundles the Elixir VM via Burrito.

Development

Requirements

  • mise — manages Elixir, Erlang, and Node.js versions
  • just — command runner (see justfile)
  • Rust — required only for desktop builds (Tauri)

Quick start

# Install tool versions (Elixir, Node, etc.)
mise install

# Install dependencies and set up the local SQLite database
just setup

# Start the dev server at http://localhost:4000
just dev

Common tasks

just test              # Run the test suite
just ci                # Full CI check (format + audit + tests + coverage)
just fmt               # Format all code
just tauri-dev         # Tauri dev mode with hot reload
just db-migrate        # Run pending Ecto migrations
just db-reset          # Drop, create, migrate, and seed the DB
just release           # Full desktop app build (macOS / Linux)

Run just --list to see all available recipes.

Desktop builds

The desktop app is built with Tauri and packages the Elixir runtime via Burrito.

macOS / Linux

just release
# or directly:
bash build.sh

Windows

Requires zig and xz in your PATH (Burrito dependencies).

powershell -File build.ps1

AI assistant setup

The AI assistant can be configured from the in-app Settings panel.

Supported providers:

Provider Required configuration
Anthropic API key
OpenAI API key
OpenRouter API key
MiniMax API key
Ollama Base URL (e.g., http://localhost:11434)

Select your preferred provider and model, then start a chat from any database connection. The assistant is schema-aware — it can read your table definitions to generate more accurate SQL.

Keyboard shortcuts

Melocoton is designed to be used without leaving the keyboard.

Global

Shortcut Action
Ctrl/Cmd + K Open command palette
Ctrl/Cmd + , Open settings
Ctrl/Cmd + B Toggle AI panel
Ctrl/Cmd + N New window
? Show keyboard shortcuts

SQL editor

Shortcut Action
Ctrl/Cmd + ' Focus editor
Ctrl/Cmd + Enter Run query (selection or all)
Ctrl/Cmd + S Save query to file
Ctrl/Cmd + Shift + F Format SQL
Tab Accept autocomplete suggestion
Ctrl + N Next autocomplete suggestion
Ctrl + P Previous autocomplete suggestion

Databases page

Shortcut Action
/ Focus search

Shortcut hints are shown inline throughout the interface. Press ? anywhere to see the full list.

Tech stack

Layer Technology
Backend Elixir, Phoenix LiveView
Frontend LiveView, Tailwind CSS, CodeMirror 6
Desktop Tauri (Rust)
Databases Postgrex, Exqlite, MyXQL
Packaging Burrito (embeds Elixir runtime)

Architecture overview

┌──────────────────────────────────────────────┐
│  Tauri Desktop Window (Rust)                 │
│  ┌─────────────────────────────────────────┐ │
│  │  WebView → Phoenix LiveView UI          │ │
│  └─────────────────────────────────────────┘ │
└──────────────────────────────────────────────┘
                    │
                    ▼
         ┌─────────────────────┐
         │  Burrito Sidecar    │
         │  (Embedded BEAM VM) │
         └─────────────────────┘
                    │
    ┌───────────────┼──────────────────────┐
    ▼               ▼                      ▼
┌──────────┐  ┌──────────┐         ┌──────────────┐
│  SQLite  │  │   Pool   │         │  AI Models   │
│  (local  │  │  (lazy   │         │  (Anthropic, │
│   meta   │  │   per-   │         │   OpenAI,    │
│  store)  │  │  database│         │   Ollama...) │
└──────────┘  │   cache) │         └──────────────┘
              └────┬─────┘
                   │
    ┌──────────────┼──────────────┐
    ▼              ▼              ▼
┌────────┐  ┌──────────┐  ┌──────────┐
│SQLite  │  │PostgreSQL│  │  MySQL   │
│(user)  │  │ (user)   │  │  (user)  │
└────────┘  └──────────┘  └──────────┘

Melocoton is a desktop client — it does not host your data. The Elixir/Phoenix app runs as a Tauri sidecar and uses a local SQLite database only for its own metadata (saved connections, groups, query history, settings). User-configured database connections (SQLite, PostgreSQL, or MySQL) are reached through a lazily initialized connection pool.

License

MIT