Skip to content

Settings and app data

中文 · Docs

DuckLocal keeps one file on disk. Everything else lives in memory for the duration of a session.

Where things are stored

PlatformPath
macOS~/Library/Application Support/DuckLocal/history.duckdb
Linux (if built there)~/.local/share/ducklocal/history.duckdb

That single DuckDB file holds three tables: the query history, the registered data files, and a small key/value settings table — the interface language, the open app and dashboard tabs, the recent-documents list, and the app folders you have trusted. It lives beside a .wal while the app is running.

Your data is never copied into it. Registered files are referenced by path and re-attached on launch.

What survives a restart

RememberedWhere
Registered data files — path, view name, kindapp data file
Query history, including failuresapp data file
Interface languageapp data file
Interface sizeapp data file
Whether the sidebar is hiddenapp data file
Open app and dashboard tabs, with their titlesapp data file
Recently opened apps and dashboards (the sidebar's Apps / Dashboards)app data file
App folders you chose to trustapp data file
Not rememberedNotes
Open query tabs and their SQLin memory only — past queries are in History
The results panel contentsin memory only
Which database file is openeach launch starts in memory unless you name one
Window size and positionfixed at 1440×900, minimum 960×600
Sidebar and results panel sizesfixed per launch
The results filterin memory only
The themealways starts light — see below
S3 credentialssession-only by design

The theme is the odd one out: the language toggle persists, the theme toggle does not, and every launch begins in light mode.

Language

The EN / button in the title bar switches the interface language immediately and records the choice.

On first run — before any setting is stored — the language is taken from the system locale: LC_ALL or LANG containing zh selects Chinese, anything else selects English. An unrecognized stored value falls back to Chinese.

A few strings are deliberately not translated: DuckLocal, the S3 and EXPLAIN button labels, the EN / toggle, and the credential placeholders. Engine and network error messages are surfaced verbatim and are always in English, whatever the interface language is.

Themes

The sun/moon button toggles between the light and dark theme. There is no theme picker and no theme file to edit — the two modes are what you get.

Interface size

Text, icons and controls scale together, in four steps:

SizeBase textEditor text
Small13px12px
Default14px13px
Large16px15px
Extra large18px17px

Choose one from the Aa button in the title bar, or step through them with ⌘+ (larger), ⌘− (smaller) and ⌘0 (back to default) — these work wherever the focus is, the SQL editor included. The choice is remembered, and survives switching between light and dark.

Panel sizes you dragged, and the height of a dashboard's plots, stay in pixels: they are yours to adjust, not the interface's.

Resetting

To start over — clearing history, registered files, remembered tabs, trusted app folders and the language setting — quit DuckLocal and remove its app data directory:

bash
rm -rf ~/Library/Application\ Support/DuckLocal

The next launch creates it fresh. Your data files are never affected by this, only DuckLocal's own records.

Troubleshooting

Symptoms, causes and fixes are collected on the Troubleshooting page.

Released under the Apache-2.0 License.