DATUI-CONFIG(5) File Formats DATUI-CONFIG(5)

datui-config - the datui configuration file

CONFIG/config.toml
datui -c KEY=VALUE

datui's settings are TOML: a table per section, [display], and a key per setting. A key is written section.name here and with -c.

Values are taken, lowest first, from the defaults, the files listed in import (in order), the config file, -c KEY=VALUE (repeatable), and a key's own flag. datui config init writes the file with every key commented out at its default, datui config path prints the files read, and datui config keys lists every key with its value in effect and what set it. A key datui does not know, or a value a key does not take, is an error that names it.

A number and a unit: 512MiB, 2GiB, 100KiB (MB, GB are powers of 1000). 0 needs none
A number and a unit: 250ms, 1.5s, 2m
In a file, a TOML array; with -c, a,b or the array
A name (red, bright_blue, default), #rrggbb or indexed(0-255)
true or false.
A path; ~ and $VAR expand.

Config files merged in before this one, in order; this file's own values win. Paths may be relative to this file, or use ~ and $VAR. Default: [].
Catalog files elsewhere, listed on the home screen after catalog.toml and the config directory's catalogs/*.toml, each a section; see Catalogs. Each is a path, or { path, id, label } to give it another id or label. Paths may be relative to this file. Adds up across imports. Default: [].

How files are read. A file's own layout (delimiter, header, rows to skip) is a flag for that file, not a setting.

Read string columns as dates, times, durations or numbers where every value parses, after trimming: true for all, false for none, or a list of columns. CSV, and dates in JSON. A column with a leading zero (02134) stays text; a later value that does not parse is null, and the Notes tab counts them. Default: true. Flag: --infer-types.
A partitioned Parquet dataset's schema: union is every column any file has, from their footers; first lets Polars take one file's. Default: "union".
Decompress a compressed CSV, TSV or PSV into memory instead of to a temp file. Default: false.
Directory for decompression temp files. Unset: the system's. Unset by default. Flag: --temp-dir.
With --follow, how often the file is checked for new rows, or on Linux the least time between two reads, 10ms to 1m. Appends within one interval are one refresh. Default: "250ms".
A dataset of more files than this shows a row count estimated from a sample of its footers until c in the Info panel counts it; 0 always counts. Default: 50000.
Ask before reading more than this of a file whole into memory (JSON, Avro, ORC, Excel and the other formats read in memory); 0 never asks. Default: "1GiB".
Show integer audio samples as float in [-1, 1]. Default: false.

CSV, TSV and PSV. A delimited format spec takes these keys too.

Lines starting with this are comments, before the header and among the data. Unset by default. Flag: --comment.
Joins a column's names when --header-rows names several lines. Default: " ".
Ignore the spaces after a delimiter, so padded numbers are numbers and a cell of spaces is null. Default: false. Flag: --skip-initial-space.
Values read as null: VAL in every column, COL=VAL in column COL only. --null is repeatable and replaces this list. Default: []. Flag: --null.
Rows read to infer column types. Default: 1000. Flag: --infer-rows.
Skip rows that do not parse instead of failing. Default: false. Flag: --ignore-errors.

Box-drawing and arrow glyphs, or plain ASCII. auto uses them when the locale is UTF-8. Default: "auto".
Number rows on the left by their place in the source, kept through a sort or filter (# toggles). auto: for text and logs; true or false: for all of them. Default: "auto". Flag: --row-numbers.
The number of the source's first row. Default: 1.
Space between columns: comfortable (2 cells), compact (1) or a number of cells. Default: "comfortable".
Color cells by column type. Default: true.
A second header row naming each column's type (D toggles). Default: true.
Accent the i key when datui has noticed something about the data. Default: true.
Take the mouse: the wheel scrolls, a click selects. false leaves it to the terminal. Default: true. Flag: --mouse.
Width of every sidebar, in cells. Unset: each sidebar's own. Unset by default.
Right-align numeric columns and their headers. Default: true.
Digit grouping: none, thousands, european, si, swiss, indian, underscore or system, or a [display.number_format] table (, toggles). Default: "none". Flag: --number-format.

The rows the table buffers between reads, and the engine.

Pages of rows buffered ahead of the screen. Default: 3.
Pages of rows buffered behind the screen. Default: 3.
Most rows the table buffers between reads; 0 for no limit. Default: 100000.
Most memory the buffered rows may take, estimated from the schema; 0 for no limit. Rounded up to whole MiB. Default: "512MiB".
Use the Polars streaming engine where it applies. Default: true.

Analysis, Data Quality and charts.

Rows an analysis samples from a larger table, spread across all of it; 0 reads every row. Default: 100000. Flag: --sample-rows.
Rows a chart reads; a larger table is sampled across all of it. Default: 10000.
Start charts with a grid at the major ticks (g toggles). Default: false.
Most a Data Quality full scan of a remote dataset copies into the cache to read once; 0 never copies. Default: "2GiB".
Most memory a view's sample may take. Unset: the memory available now decides; 0 never warns or stops. Unset by default.

Charts exported to a file (e in the chart view).

Embed how an exported chart was made (source path, query, chart, sample) in its PNG, SVG or PDF. The export dialog's Recipe row starts from it. Default: true.

The home screen.

Also list directories from the desktop's recently-used files; never the file names. Default: true.
List files datui cannot read, dimmed (Ctrl+A toggles). Default: false.
Catalogs not shown, by id: mine (catalog.toml), examples, or a listed file's name; one entry as catalog/id, such as examples/nyc-taxis. Adds up across imports. Default: [].
Largest local file whose first rows the home screen previews; 0 turns the preview off. Default: "64MiB".

Searching below the working directory as you type on the home screen.

Search below the working directory as you type. Default: true.
How many directories deep the search goes. Default: 8.
Matches listed; the rest are counted. Default: 1000.
How long the search walks before keeping what it found. Default: "1500ms".
Descend into other filesystems, network mounts included. Default: false.
Skip what .gitignore ignores. Default: false.
Directory names never searched. Replaces the defaults; skip_extra adds to them. Default: ["node_modules", "target", "build", "dist", "vendor", "site-packages", "__pycache__", "venv", "env"].
Directory names never searched, besides skip. Default: [].
Extensions searched for; empty means those of the formats datui reads. Default: [].

See Cloud sources for [[cloud.connections]].

Cloud stores to list on the home screen; see Cloud sources. Unset by default.
Cloud source IDs not shown on the home screen. Adds up across imports. Default: [].
Read an Azure account with its access keys when a sign-in has no data role, as the Portal does. Default: true.
Files to read cloud variables from, relative to the working directory, such as .env. Adds up across imports. Default: [].
Use the identity of the cloud VM datui runs on (EC2, GCE, Azure). Default: false.
Logins found on this machine that become home-screen sources: all (unset), none, or kinds from s3, gcs, azure. Unset by default.
List every source's buckets when the home screen opens, not when one is entered. Default: false.

Every request datui makes: HTTP(S) files, cloud stores and their sign-ins.

The User-Agent header on every request. Empty sends datui/VERSION (+https://github.com/derekwisong/datui), which names datui and its version and nothing about you. Default: "".

Queries remembered. Default: 1000.
Remember queries. Default: true.
The language : starts in, until Ctrl+T picks another. Default: "sql".

Apply the best-matching view when a file opens. Default: false.

How the copy dialog (y) reaches the system clipboard.

auto: the display server where one answers, osc52 elsewhere (SSH). osc52 is an escape sequence the terminal applies. Default: "auto".
Longest osc52 copy to attempt, as base64. Terminals cap what they accept. Default: "100KiB".

Where format specs and dictionaries are found.

Directories of format specs and dictionaries, searched after ~/.config/datui/formats and $DATUI_FORMATS_PATH. Adds up across imports. Default: [].

Where the log goes. Unset: datui.log in the cache directory. Unset by default. Flag: --log-file.
How much the log says (default warn). DATUI_LOG beats a config file's; -c and --log-level beat DATUI_LOG. Unset by default. Flag: --log-level.

Which mode's theme to use: theme.dark or theme.light. auto follows the terminal's answer about its background, else its last answer, then COLORFGBG, then dark; it asks again when the terminal regains focus. Unset by default.
The theme used when the terminal is dark: night-market, day-market, or a file's name in the config directory's themes/. A name that cannot be used falls back to night-market, with a warning when dark is in use. Default: "night-market".
The theme used when the terminal is light: night-market, day-market, or a file's name in the config directory's themes/. A name that cannot be used falls back to day-market, with a warning when light is in use. Default: "day-market".

Each slot takes a name (red, bright_blue, default), #rrggbb or indexed(0-255). They lie over the theme in use, theme.dark or theme.light, in either mode; a whole theme of your own goes in a file in themes/.

Keys named in the footer, dialogs, the breadcrumb and the correlation matrix. Default: #7dcfff dark, #2e7de9 light.
Labels beside keys in the footer, and the footer's status. Default: #a9b1d6 dark, #3760bf light.
The busy spinner. Default: #7dcfff dark, #2e7de9 light.
Success. Default: #9ece6a dark, #587539 light.
Errors. Default: #f7768e dark, #f52a65 light.
Warnings. Default: #e0af68 dark, #8c6c3e light.
Dimmed text, nulls and axes. Default: #565f89 dark, #848cb5 light.
Main background. Default: default dark, default light.
Dialog background. Default: default dark, default light.
Count chips and dialogs' key chips. Default: #262a3f dark, #d0d5e3 light.
Text. Default: default dark, default light.
Secondary text. Default: #737aa2 dark, #6172b0 light.
Text on a key chip. Default: #1a1b26 dark, #e1e2e7 light.
Header text. Default: #c0caf5 dark, #3760bf light.
Header fill. Default: #2b3047 dark, #c4c8da light.
The row-number column. Default: #565f89 dark, #848cb5 light.
The rule after frozen columns and beside section titles. Default: #3b4261 dark, #a8aecb light.
Tint under the current row; reversed swaps text and background instead. Default: #283457 dark, #b6bfe2 light.
Tint under the column cursor's cells. Default: #292e42 dark, #cbd3f2 light.
The column cursor's header and the current cell. Default: #3b4261 dark, #a0aef0 light.
Sidebar and dialog borders. Default: #565f89 dark, #6172b0 light.
The focused dialog's border. Default: #7dcfff dark, #2e7de9 light.
An error dialog's border. Default: #f7768e dark, #f52a65 light.
Analysis: a normal distribution. Default: #9ece6a dark, #587539 light.
Analysis: a skewed distribution. Default: #e0af68 dark, #8c6c3e light.
Analysis: other distributions. Default: #c0caf5 dark, #3760bf light.
Analysis: outliers. Default: #f7768e dark, #f52a65 light.
The text caret; default reverses the text under it. Default: default dark, default light.
Text under the caret block; default picks black or white by contrast. Default: default dark, default light.
Every other row; default turns the stripe off. Default: #1e2030 dark, #dcdfea light.
String columns. Default: #9ece6a dark, #587539 light.
Integer columns. Default: #7aa2f7 dark, #2e7de9 light.
Float columns. Default: #2ac3de dark, #007197 light.
Boolean columns. Default: #e0af68 dark, #8c6c3e light.
Date, time and datetime columns. Default: #bb9af7 dark, #9854f1 light.
Binary columns' placeholder. Default: #565f89 dark, #848cb5 light.
Chart series 1; also histogram bars, bar charts and Q-Q points. Default: #7dcfff dark, #2e7de9 light.
Chart series 2. Default: #bb9af7 dark, #9854f1 light.
Chart series 3. Default: #9ece6a dark, #587539 light.
Chart series 4. Default: #e0af68 dark, #8c6c3e light.
Chart series 5. Default: #7aa2f7 dark, #007197 light.
Chart series 6. Default: #f7768e dark, #f52a65 light.
Chart series 7. Default: #ff9e64 dark, #b15c00 light.
Chart series 8. Default: #1abc9c dark, #118c74 light.
Chart series 9. Default: #ff5fd2 dark, #d1188c light.
Chart series 10. Default: #f4ef8a dark, #24357a light.
The chart grid, a shade dimmer than dimmed. Default: #3d4785 dark, #70aabf light.
Key chips, focused titles and the selection rail. Default: #7dcfff dark, #2e7de9 light.
The section the cursor is in. Default: #a4daff dark, #1a6cd0 light.
The wordmark's first stop. Default: #7aa2f7 dark, #2e7de9 light.
The wordmark's last stop. Default: #bb9af7 dark, #9854f1 light.
Behind the cell a find landed on. Default: #e0af68 dark, #f0c35a light.
Hex view: the byte 0x00. Default: #565f89 dark, #848cb5 light.
Hex view: printable ASCII. Default: #7dcfff dark, #007197 light.
Hex view: whitespace bytes. Default: #9ece6a dark, #587539 light.
Hex view: other control bytes. Default: #bb9af7 dark, #9854f1 light.
Hex view: 0x80 to 0xFE. Default: #e0af68 dark, #8c6c3e light.
Hex view: the byte 0xFF. Default: #f7768e dark, #f52a65 light.

A glyph slot from glyphs.rs, replaced when the Unicode set is active. Keeps the width of the glyph it replaces. Unset by default.

The config directory, in place of the platform's (~/.config/datui on Linux). Saved views and format specs live there too.
The log level: error, warn, info, debug, trace or off. Beats log.level in a file; -c and --log-level beat it.

CONFIG is $DATUI_CONFIG_DIR when it is set, else $XDG_CONFIG_HOME/datui (~/.config/datui) on Linux, ~/Library/Application Support/datui on macOS and %APPDATA%\datui on Windows.

The config file: see datui-config(5). datui config path prints the files read.
Your catalog, which Ctrl+D on the home screen adds to: see datui-catalog(1).
More catalogs, one *.toml each, named by its file; examples.toml replaces the bundled one.
Saved views: see datui-views(1).
Format specs and dictionaries, searched first: see datui-formats(7).

Write the config file, every key commented out at its default.

datui config init

The config files read, lowest precedence first.

datui config path

The values a config file in the current directory sets.

config.toml

[display]
row_numbers = true

DATUI_CONFIG_DIR=. datui config keys

datui(1), datui-config(1)

The datui documentation: <https://derekwisong.github.io/datui/>

Report bugs at <https://github.com/derekwisong/datui/issues>.

Derek Wisong and the datui contributors.

Copyright © 2026 Derek Wisong

datui is free software under the MIT License.

2026-10-06 datui 0.4.0