Nouis.
A beautifully crafted MySQL client for macOS.

Fast, safe and fully native. Nouis writes your joins from foreign keys, stops runaway queries, stages every edit, and backs up hundreds of gigabytes to S3, R2 or B2 in parallel. Free for a limited time.

Built with
Swift, SwiftUI, AppKit
Runs on
macOS 14+, Apple silicon
Download
18 MB disk image
Account
None. No telemetry.
Databases
MySQL 5.7 to 8.4, MariaDB
1

Joins from your foreign keys

Type j after a table and pick the whole JOIN … ON clause.

2

Stop with ⌘.

Run turns into Stop. The server kills just that statement.

3

Production is never quiet

Read-only and environment badges on every window.

01Daily work

The parts you use a hundred times a day, done properly.

Writing, running, editing, backing up, comparing. Each one is designed around how MySQL actually behaves, not around a generic database driver.

  1. Suggestions come from the tables in the statement, with aliases resolved and fuzzy matching (cid finds customer_id). Type j after a table to get the whole JOIN … ON clause, ranked by your real foreign keys. Semicolons are optional: write one query per paragraph and the one under your cursor is highlighted, ready to run.

    • Joins from foreign keys
    • GROUP BY fills itself in
    • Semicolons optional
    • Find and replace with ⌘F

02Backup & restore

Backups that run themselves. Restores you don’t have to be scared of.

Nouis puts MySQL Shell’s parallel dump and load behind a few buttons, then keeps your schedules running in the background, even when the app is closed.

Schedules that don’t miss

Hourly, daily or weekly. Runs through launchd, catches up after sleep, and keeps the last N complete backups. Pause any schedule with one switch.

Mon
02:00
Tue
02:00
Wed
02:00
Thu
02:00
Fri
02:00
Sat
02:00
Sun
02:00

Nightly · production · zstd · 8 threads · keep 14

Straight to object storage

Dump directly to a bucket with no local disk in between, and restore straight from it. Access keys stay in the Keychain.

This Mac
Any folder or external drive
Amazon S3
Any region, any bucket
Cloudflare R2
No egress fees
Backblaze B2
Or any S3 compatible store

Told when something fails

A macOS notification with Nouis’s icon, plus Slack, Discord or any webhook, so the right people hear about it.

Nouis now
Backup failed: Nightly · production
No space left on /Volumes/Backups

Restores with a safety net

Checked before they start, aimed at a new database by default, and able to pick up where they stopped.

  1. 01Preflightlocal_infile, versions and privileges, fixed in one click
  2. 02New targetshop_restored_2026_10_18 is suggested; nothing is overwritten
  3. 03Safety backuptaken first if you do choose to replace
  4. 04Resumestopped at 71%? it carries on from 71%

03AI assistant

AI that knows your schema, and can stay on your Mac.

Nouis gives a model exactly what it needs to write good MySQL, which is your schema, and nothing it doesn’t. Run it on a local model for free, or bring a key for a hosted one. Either way the answer is checked against your server before you see it.

What Nouis sends with your questionshop · 16 tables

“revenue per country for paid orders, last 30 days”

matchedTABLE orders(id bigint PK NOT NULL, customer_id int NOT NULL, total decimal(10,2), status enum('new','paid','shipped'), created_at datetime NOT NULL) FK(customer_id→customers.id) ~6100000 rows
matchedTABLE customers(id int PK NOT NULL, email varchar(255) NOT NULL, country varchar(2), tier enum('bronze','silver','gold'), created_at datetime) ~1800000 rows
TABLE order_items(id bigint PK NOT NULL, order_id bigint NOT NULL, product_id int NOT NULL, qty int, price decimal(10,2)) FK(order_id→orders.id) FK(product_id→products.id) ~22600000 rows
TABLE products(id int PK NOT NULL, sku varchar(32) NOT NULL, name varchar(200), price decimal(10,2)) ~18000 rows
Other tables (columns omitted): addresses, audit_log, carts, categories, coupons, invoices, payments, refunds, reviews, sessions, shipments, suppliers
Size
~1,420 tokens
Cap
~6,000 tokens
Row data
never sent
  1. 01

    Your question

    Typed in plain English, or sent from an error, a query or a plan.

  2. 02

    Compact schema

    Tables your question names go first. Capped at about 24,000 characters.

  3. 03

    Your model

    Local through Ollama or LM Studio, or a hosted provider with your key.

  4. 04

    Checked on your server

    A generated SELECT is run through EXPLAIN. It is never executed.

  5. 05

    Repaired if needed

    If MySQL rejects it, the error goes back to the model, up to two times.

  6. 06

    Into your editor

    You read it, change it, and run it yourself. Nothing runs on its own.

Five jobs it does well

Each is a button where you already are: the editor, an error, or the execution plan. Press ⌘J to open the assistant from anywhere.

TaskYou give itYou get
Write“revenue per country, last 30 days, top 10”Turns a plain request into a query for your exact schema, using your foreign keys for joins and a LIMIT on exploratory SELECTs.
ExplainA 60 line report someone else wroteWalks through what a query does, step by step, and points out anything that will be slow.
FixError 1054: Unknown columnWhen a query fails, Fix with AI sends the query and the server’s error, and returns a corrected query with the reason.
OptimizeA query that takes 9 secondsSuggests rewrites and indexes, then gives you the improved query to try.
Why is it slow?Straight from the EXPLAIN viewSends the query with a summary of its execution plan and gets back concrete CREATE INDEX statements or a rewrite.

Local first, any provider

With a local model nothing leaves your Mac and there is no bill. A coding model like qwen2.5-coder handles everyday queries well.

$ brew install ollama
$ ollama pull qwen2.5-coder

Hosted models are optional, need your own key, and keep it in the macOS Keychain.

  • OllamaLocal

    Local, free. Default model qwen2.5-coder.

  • LM StudioLocal

    Local, free. Any model you load.

  • Claude

    Your Anthropic key

  • OpenAI

    Your key

  • Gemini

    Free tier available

  • OpenRouter

    Free models available

  • Groq

    Free tier available

  • Mistral, DeepSeek

    Your key

  • OpenAI compatible

    vLLM, LiteLLM, your own server

Uses only what exists

The model is told to use only tables and columns in your schema, and to say so when something is missing instead of inventing it.

Reads, not writes

It won’t write statements that change data or structure unless you ask for one. Exploratory SELECTs get a LIMIT.

Your server has the last word

Every generated SELECT is validated with EXPLAIN on your server, and the read-only and safe mode rules still apply when you run it.

04Safety

Hard to break production by accident.

The guard rails are on by default and visible all the time. You can still do anything you need to; you just can’t do it without noticing.

Read-only connections
Anything that isn’t a known read is blocked, including CALL, INTO OUTFILE and SET GLOBAL. The server session is made read-only as a backstop.
Production looks different
Tag a connection Production and a red badge sits in the title bar, the tabs and the status bar. The window can tint in its colour.
Dangerous SQL always asks
UPDATE or DELETE without WHERE, DROP, TRUNCATE, and writes MySQL estimates will touch many rows. Always confirmed, safe mode or not.
Restores don’t overwrite
A restore goes into a new, clearly named database by default. Replacing one takes a safety backup first and asks you to type its name.
Secrets stay in the Keychain
Database, SSH, cloud and AI keys live only in the macOS Keychain. MySQL Shell gets passwords over stdin, never in arguments or files.
A write log you can read
Every INSERT, UPDATE, DELETE and DDL is kept on disk, including blocked attempts. Who changed what, and when, has an answer.

05Everything else

The rest of the toolbox, in the same box.

Monitoring, users, tunnels, diagrams and transfers. None of it is a plugin or an upgrade.

Fig. 1 · shop schemadrag to turn
Nouis reads your foreign keys and uses them everywhere: join suggestions, the → button in the grid, ER diagrams and data compare. The teal path, order_items to orders to customers, is the kind of join chain autocomplete writes for you.

Connections

SSH tunnels
ssh-agent, ~/.ssh/config, ProxyJump, keys with passphrases. Backups use the same tunnel.
Projects
Group connections per client or team, each with its own colour.
Environments
Tag Local, Staging or Production. The badge follows you into every window.
Paste a URL
mysql://user:pass@host/db fills in the whole form.

Working

Command palette
⌘K finds tables, routines, actions, saved queries, databases and connections.
Saved queries
⇧⌘S saves with a name and a folder. Search, drag, run.
Pinned tabs
They stay put through Close All and come back next launch, SQL included.
Instant tabs
Recent tabs stay loaded across connections, so switching is immediate. Double-click a query tab to rename it.
Charts
Turn any result into a bar, line, area, scatter or pie chart.

Structure

Table designer
Columns, indexes and foreign keys. Nouis writes the minimal ALTER TABLE.
ER diagrams
Crow’s foot relationships, automatic layout, PNG export.
Views and routines
Create and edit views, procedures, functions, triggers and events.
Data transfer
Copy tables between servers, BLOBs byte for byte, TIMESTAMPs time zone safe.

Server

Dashboard
Queries per second, connections, slow queries, buffer pool, replica lag, heaviest queries.
Users and privileges
Per scope privileges, roles, limits, expiry, TLS. Review the SQL before it runs.
Query console
Every statement Nouis sends, live, with where it came from.
Write log
Every change kept on disk, including attempts that were blocked.

06Compare

How it compares.

Against the five tools MySQL people use most. Nouis goes furthest where MySQL is concerned, and the notes below say where the others lead.

Nouis compared with TablePlus, Navicat, DataGrip, MySQL Workbench and DBeaver
FeatureNouisTablePlusNavicatDataGripWorkbenchDBeaver
Platform
Native Mac appJavaJava
PriceFree at launchPaid, trialPaidPaid, free non-commercialFreeFree / Pro
Backup & restore
Parallel MySQL Shell dumpsNoNoNoNoNo
Resumable restoresNoNoNoNoNo
Scheduled backupsNoNoNoPaid
Back up to S3 / R2 / B2NoNoNoNoNo
Failure alertsNoEmailNoNoPaid
Safe restore targetNoNoNoNoNo
Working with data
Stop a running query
Staged grid edits
Foreign key navigationNoNo
Snippets with parametersNoNo
Pinned tabsNoNoNo
Data transferNo
Schema & performance
Visual EXPLAINNo
Index suggestionsNoNoNoNoNo
Schema compare & syncNoPaid
Data compare & syncNoPer tableNoPaid
Server dashboardNoSeparateNo
Safety
Read-only connectionsNoNo
Permanent write logNoNoNoNoNo
Users & privileges editorBasic
AI
Bring your own keyNoPaidNo
Free local modelsNoPaidNoPaid

Where others lead

  • TablePlus, DataGrip and DBeaver speak many databases. Nouis does MySQL only, which is how it goes this deep.
  • Every other app here also runs on Windows and Linux. Nouis is a Mac app.
  • DataGrip is a full IDE, with refactoring, version control and inspections across large SQL codebases.
  • Navicat and DBeaver have team features like shared connections and cloud sync.

Based on each product’s publicly documented features in mid 2026. Editions differ and features change, so check with each vendor.

07Keyboard

Made for the keyboard.

Shortcuts follow TablePlus where it matters, so your hands already know most of them. Press a few; the keyboard is listening.

08Pricing

Free while we launch.

Every feature, for personal and commercial use, with no account and no seat limits. Paid plans will come later, and we’ll give plenty of notice before they do.

Nouis for Mac

$0for a limited time

v0.1.0 · macOS 14+ · Apple silicon · 18 MB

  • Unlimited connections, projects and tabs
  • SQL editor, EXPLAIN and index advice
  • Grid editing, foreign keys, JSON viewer
  • Parallel backups, schedules, cloud storage
  • Resumable restores with safety backups
  • Schema and data compare and sync
  • Users and privileges editor
  • Dashboard, console and write log
  • AI with your key or a local model

09Questions

Questions people ask.

Something else? Write to hello@nouis.app.

Is Nouis free?

Yes, for a limited time while we launch. Every feature is included, for personal and commercial use, with no account. When paid plans arrive we will announce them well in advance.

Which Macs does it run on?

macOS 14 Sonoma or later on Apple silicon (M1 or newer). It is a native Swift app built with SwiftUI and AppKit. There is no Electron and no Java runtime.

Which databases are supported?

MySQL 5.7, 8.0 and 8.4, and MariaDB for querying, editing and most tools. Nouis is MySQL only on purpose, so it can go deep on MySQL Shell backups, EXPLAIN and privileges.

Do I need MySQL Shell?

Only for backups, restores, imports and stored procedure result sets. Install it once with brew install --cask mysql-shell and Nouis finds it. Everything else works without it.

Can the AI run entirely on my Mac?

Yes. Point Nouis at Ollama or LM Studio and every request stays on your machine and costs nothing. qwen2.5-coder is the default model for Ollama. Hosted providers are optional.

What does the AI see, and how many tokens does it use?

Only your schema: table and column names, types, keys, foreign keys and estimated row counts. Never row data. Tables your question mentions are listed first and the schema is capped at about 24,000 characters, roughly 6,000 tokens, so even a very large database keeps each request small and predictable.

Where are my passwords stored?

In the macOS Keychain, for database, SSH, cloud and AI keys alike. Nouis never writes them to files and hands them to MySQL Shell over stdin, not as command line arguments.

Does Nouis collect any data?

No. There is no telemetry, analytics or account. Nouis connects only to your database servers, the backup storage you choose and the AI provider you set up, if any.

Do I have to end every query with a semicolon?

No. Write one query per paragraph and Nouis treats a blank line as the end of a statement when the next line starts a new one. ⌘↩ runs the query under your cursor, which is highlighted so you can see exactly what will run. Blank lines inside a query, in parentheses, CTEs or procedure bodies never split it.

Can it stop a query that runs too long?

Yes. Press ⌘. or the red Stop button. Nouis sends KILL QUERY from a second connection through the same SSH tunnel, so only that statement stops and your session stays as it was.

How is it different from TablePlus or Sequel Ace?

Nouis does one database and goes further with it: parallel MySQL Shell backups to S3, R2 or B2 with schedules and resumable restores, index suggestions, data compare, a users and privileges editor and a permanent write log.

Connect to your first database in under a minute.

Download for Mac

Free for a limited time.