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.
- size
- A number and a unit: 512MiB, 2GiB, 100KiB (MB,
GB are powers of 1000). 0 needs none
- duration
- A number and a unit: 250ms, 1.5s, 2m
- list
- In a file, a TOML array; with -c, a,b or the array
- color
- A name (red, bright_blue, default), #rrggbb or
indexed(0-255)
- bool
- true or false.
- path
- A path; ~ and $VAR expand.
- import
(list)
- 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:
[].
- catalogs
(list of path | { path, id, label })
- 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.infer_types
(bool | list of columns)
- 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.
- read.parquet_schema
(union | first)
- 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".
- read.decompress_in_memory
(bool)
- Decompress a compressed CSV, TSV or PSV into memory instead of to a temp
file. Default: false.
- read.temp_dir
(path)
- Directory for decompression temp files. Unset: the system's. Unset by
default. Flag: --temp-dir.
- read.follow_interval
(duration)
- 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".
- read.exact_count_files
(integer)
- 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.
- read.memory_warning
(size)
- 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".
- read.audio_float
(bool)
- 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:
" ".
- csv.skip_initial_space
(bool)
- Ignore the spaces after a delimiter, so padded numbers are numbers and a
cell of spaces is null. Default: false. Flag:
--skip-initial-space.
- csv.null_values
(list)
- Values read as null: VAL in every column, COL=VAL in column COL only.
--null is repeatable and replaces this list. Default: []. Flag:
--null.
- csv.infer_rows
(integer)
- Rows read to infer column types. Default: 1000. Flag:
--infer-rows.
- csv.ignore_errors
(bool)
- Skip rows that do not parse instead of failing. Default: false.
Flag: --ignore-errors.
- display.unicode
(auto | always | never)
- Box-drawing and arrow glyphs, or plain ASCII. auto uses them when the
locale is UTF-8, or on Windows when no locale is set. Default:
"auto".
- display.row_numbers
("auto" | bool)
- 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.
- display.row_numbers_start
(integer)
- The number of the source's first row. Default: 1.
- display.cell_padding
("comfortable" | "compact" | integer)
- Space between columns: comfortable (2 cells), compact (1) or a number of
cells. Default: "comfortable".
- display.column_colors
(bool)
- Color cells by column type. Default: true.
- display.type_row
(bool)
- A second header row naming each column's type (D toggles). Default:
true.
- display.notes_accent
(bool)
- Accent the i key when datui has noticed something about the data. Default:
true.
- display.mouse
(bool)
- 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.
- display.right_align_numbers
(bool)
- Right-align numeric columns and their headers. Default: true.
- display.number_format
(preset | table)
- Digit grouping: none, thousands, european, si, swiss, indian, underscore
or system, or a [display.number_format] table (, toggles). Default:
"none". Flag: --number-format.
Charts exported to a file (e in the chart view).
- chart.export_recipe
(bool)
- 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.
- home.desktop_recents
(bool)
- Also list directories from the desktop's recently-used files; never the
file names. Default: true.
- home.show_unreadable
(bool)
- List files datui cannot read, dimmed (Ctrl+A toggles). Default:
false.
- home.hide
(list)
- 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: [].
- home.preview_max
(size)
- 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.
- home.search.enabled
(bool)
- Search below the working directory as you type. Default: true.
- home.search.max_depth
(integer)
- How many directories deep the search goes. Default: 8.
- home.search.max_results
(integer)
- Matches listed; the rest are counted. Default: 1000.
- home.search.time_budget
(duration)
- How long the search walks before keeping what it found. Default:
"1500ms".
- home.search.cross_filesystems
(bool)
- Descend into other filesystems, network mounts included. Default:
false.
- home.search.follow_gitignore
(bool)
- Skip what .gitignore ignores. Default: false.
- home.search.skip
(list)
- 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: [].
- home.search.extensions
(list)
- Extensions searched for; empty means those of the formats datui reads.
Default: [].
See Cloud sources for [[cloud.connections]].
- cloud.connections
(tables)
- Cloud stores to list on the home screen; see Cloud sources. Unset by
default.
- cloud.hide
(list)
- Cloud source IDs not shown on the home screen. Adds up across imports.
Default: [].
- cloud.use_azure_account_keys
(bool)
- Read an Azure account with its access keys when a sign-in has no data
role, as the Portal does. Default: true.
- cloud.env_files
(list)
- Files to read cloud variables from, relative to the working directory,
such as .env. Adds up across imports. Default: [].
- cloud.instance_identity
(bool)
- Use the identity of the cloud VM datui runs on (EC2, GCE, Azure). Default:
false.
- cloud.discover
(bool | "all" | "none" | list)
- Logins found on this machine that become home-screen sources: all (unset),
none, or kinds from s3, gcs, azure. Unset by default.
- cloud.list_on_start
(bool)
- 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.
- http.user_agent
(string)
- 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: "".
How the copy dialog (y) reaches the system clipboard.
- clipboard.backend
(auto | native | osc52)
- auto: the display server where one answers, osc52 elsewhere (SSH). osc52
is an escape sequence the terminal applies. Default:
"auto".
- clipboard.osc52_limit
(size)
- Longest osc52 copy to attempt, as base64. Terminals cap what they accept.
Default: "100KiB".
Where format specs and dictionaries are found.
- formats.path
(list)
- Directories of format specs and dictionaries, searched after
~/.config/datui/formats and $DATUI_FORMATS_PATH. Adds up across imports.
Default: [].
- theme.mode
(auto | dark | light)
- 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.
- theme.dark
(string)
- 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".
- theme.light
(string)
- 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/.
- theme.colors.chip_key
(color)
- Keys named in the footer, dialogs, the breadcrumb and the correlation
matrix. Default: #7dcfff dark, #2e7de9 light.
- theme.colors.chip_label
(color)
- Labels beside keys in the footer, and the footer's status. Default:
#a9b1d6 dark, #3760bf light.
- theme.colors.throbber
(color)
- The busy spinner. Default: #7dcfff dark, #2e7de9 light.
- theme.colors.success
(color)
- Success. Default: #9ece6a dark, #587539 light.
- theme.colors.error
(color)
- Errors. Default: #f7768e dark, #f52a65 light.
- theme.colors.warning
(color)
- Warnings. Default: #e0af68 dark, #8c6c3e light.
- theme.colors.dimmed
(color)
- Dimmed text, nulls and axes. Default: #565f89 dark, #848cb5
light.
- theme.colors.background
(color)
- Main background. Default: default dark, default light.
- theme.colors.surface
(color)
- Dialog background. Default: default dark, default
light.
- theme.colors.controls_bg
(color)
- Count chips and dialogs' key chips. Default: #262a3f dark,
#d0d5e3 light.
- theme.colors.text_primary
(color)
- Text. Default: default dark, default light.
- theme.colors.text_secondary
(color)
- Secondary text. Default: #737aa2 dark, #6172b0 light.
- theme.colors.text_inverse
(color)
- Text on a key chip. Default: #1a1b26 dark, #e1e2e7
light.
- Header text. Default: #c0caf5 dark, #3760bf light.
- Header fill. Default: #2b3047 dark, #c4c8da light.
- theme.colors.table_row_numbers
(color)
- The row-number column. Default: #565f89 dark, #848cb5
light.
- theme.colors.table_column_separator
(color)
- The rule after frozen columns and beside section titles. Default:
#3b4261 dark, #a8aecb light.
- theme.colors.table_selected
(color)
- Tint under the current row; reversed swaps text and background instead.
Default: #283457 dark, #b6bfe2 light.
- theme.colors.table_column_cursor
(color)
- Tint under the column cursor's cells. Default: #292e42 dark,
#cbd3f2 light.
- theme.colors.table_cell_cursor
(color)
- The column cursor's header and the current cell. Default: #3b4261
dark, #a0aef0 light.
- Sidebar and dialog borders. Default: #565f89 dark, #6172b0
light.
- theme.colors.modal_border_active
(color)
- The focused dialog's border. Default: #7dcfff dark, #2e7de9
light.
- theme.colors.modal_border_error
(color)
- An error dialog's border. Default: #f7768e dark, #f52a65
light.
- theme.colors.distribution_normal
(color)
- Analysis: a normal distribution. Default: #9ece6a dark,
#587539 light.
- theme.colors.distribution_skewed
(color)
- Analysis: a skewed distribution. Default: #e0af68 dark,
#8c6c3e light.
- theme.colors.distribution_other
(color)
- Analysis: other distributions. Default: #c0caf5 dark,
#3760bf light.
- theme.colors.outlier_marker
(color)
- Analysis: outliers. Default: #f7768e dark, #f52a65
light.
- theme.colors.input_cursor
(color)
- The text caret; default reverses the text under it. Default:
default dark, default light.
- theme.colors.input_cursor_text
(color)
- Text under the caret block; default picks black or white by contrast.
Default: default dark, default light.
- theme.colors.table_alternate_row
(color)
- Every other row; default turns the stripe off. Default: #1e2030
dark, #dcdfea light.
- theme.colors.type_str
(color)
- String columns. Default: #9ece6a dark, #587539 light.
- theme.colors.type_int
(color)
- Integer columns. Default: #7aa2f7 dark, #2e7de9 light.
- theme.colors.type_float
(color)
- Float columns. Default: #2ac3de dark, #007197 light.
- theme.colors.type_bool
(color)
- Boolean columns. Default: #e0af68 dark, #8c6c3e light.
- theme.colors.type_temporal
(color)
- Date, time and datetime columns. Default: #bb9af7 dark,
#9854f1 light.
- theme.colors.type_binary
(color)
- Binary columns' placeholder. Default: #565f89 dark, #848cb5
light.
- theme.colors.chart_1
(color)
- Chart series 1; also histogram bars, bar charts and Q-Q points. Default:
#7dcfff dark, #2e7de9 light.
- theme.colors.chart_2
(color)
- Chart series 2. Default: #bb9af7 dark, #9854f1 light.
- theme.colors.chart_3
(color)
- Chart series 3. Default: #9ece6a dark, #587539 light.
- theme.colors.chart_4
(color)
- Chart series 4. Default: #e0af68 dark, #8c6c3e light.
- theme.colors.chart_5
(color)
- Chart series 5. Default: #7aa2f7 dark, #007197 light.
- theme.colors.chart_6
(color)
- Chart series 6. Default: #f7768e dark, #f52a65 light.
- theme.colors.chart_7
(color)
- Chart series 7. Default: #ff9e64 dark, #b15c00 light.
- theme.colors.chart_8
(color)
- Chart series 8. Default: #1abc9c dark, #118c74 light.
- theme.colors.chart_9
(color)
- Chart series 9. Default: #ff5fd2 dark, #d1188c light.
- theme.colors.chart_10
(color)
- Chart series 10. Default: #f4ef8a dark, #24357a light.
- theme.colors.chart_grid
(color)
- The chart grid, a shade dimmer than dimmed. Default: #3d4785 dark,
#70aabf light.
- theme.colors.accent
(color)
- Key chips, focused titles and the selection rail. Default: #7dcfff
dark, #2e7de9 light.
- theme.colors.accent_bright
(color)
- The section the cursor is in. Default: #a4daff dark, #1a6cd0
light.
- theme.colors.gradient_start
(color)
- The wordmark's first stop. Default: #7aa2f7 dark, #2e7de9
light.
- theme.colors.gradient_end
(color)
- The wordmark's last stop. Default: #bb9af7 dark, #9854f1
light.
- theme.colors.find_match
(color)
- Behind the cell a find landed on. Default: #e0af68 dark,
#f0c35a light.
- theme.colors.hex_null
(color)
- Hex view: the byte 0x00. Default: #565f89 dark, #848cb5
light.
- theme.colors.hex_printable
(color)
- Hex view: printable ASCII. Default: #7dcfff dark, #007197
light.
- theme.colors.hex_whitespace
(color)
- Hex view: whitespace bytes. Default: #9ece6a dark, #587539
light.
- theme.colors.hex_control
(color)
- Hex view: other control bytes. Default: #bb9af7 dark,
#9854f1 light.
- theme.colors.hex_high
(color)
- Hex view: 0x80 to 0xFE. Default: #e0af68 dark, #8c6c3e
light.
- theme.colors.hex_ff
(color)
- Hex view: the byte 0xFF. Default: #f7768e dark, #f52a65
light.
- glyphs.*
(string | list)
- A glyph slot from glyphs.rs, replaced when the Unicode set is active.
Keeps the width of the glyph it replaces. Unset by default.
- DATUI_CONFIG_DIR
- The config directory, in place of the platform's (~/.config/datui
on Linux). Saved views and format specs live there too.
- DATUI_LOG
- 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.
- CONFIG/config.toml
- The config file: see datui-config(5). datui config path prints the
files read.
- CONFIG/catalog.toml
- Your catalog, which Ctrl+D on the home screen adds to: see
datui-catalog(1).
- CONFIG/catalogs/
- More catalogs, one *.toml each, named by its file; examples.toml replaces
the bundled one.
- CONFIG/views/
- Saved views: see datui-views(1).
- CONFIG/formats/
- Format specs and dictionaries, searched first: see datui-formats(7).
Write the config file, every key commented out at its default.
The config files read, lowest precedence first.
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.