Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Install datui

datui runs on Linux, macOS and Windows. Pick one method, check it with datui --version, then go on to the quick start.

SystemNeeds
Linuxglibc 2.28 or newer, on x86_64 or arm64: Debian 10, Ubuntu 20.04, RHEL 8 and later, and their derivatives. Alpine and other musl systems: build from source
macOS10.12 on Intel, 11 on Apple silicon
WindowsWindows 10 or newer, x64

Linux and macOS, one line

curl -fsSL https://raw.githubusercontent.com/derekwisong/datui/main/scripts/install/install.sh | sh

The script installs the latest release for your platform:

SystemWhat it does
Debian, UbuntuAdds the apt repository and its signing key with sudo, then installs the package with apt; apt upgrade keeps it current
Fedora, RHEL, Amazon LinuxDownloads the release’s .rpm and installs it with dnf
Arch Linux and derivatives, x86_64Asks, then installs datui-bin from the AUR with yay or paru; pacman owns it and the helper upgrades it. With neither, it says how and offers the archive
Other Linux, macOSUnpacks the release archive: datui into /usr/local/bin, the manual pages into /usr/local/share/man

It checks each download against the release’s SHA256SUMS, asks before it changes apt or runs an AUR helper (with no terminal to ask on, it goes ahead), and runs the installed binary before it reports success. Options go after sh -s --:

OptionEffect
--userInstall into ~/.local/bin (or $XDG_BIN_HOME) without root; the default where there is no sudo
-y, --yesAnswer yes to every question
--no-verifyInstall without checking the download against SHA256SUMS
-h, --helpPrint the options and exit without installing

Package-manager and binary-download options are below; Uninstall says how to remove each.

Without root

Where there is no sudo, as in Azure Cloud Shell, the script installs the binary into ~/.local/bin (or $XDG_BIN_HOME) instead, and says how to put that on your PATH if it is not there. Pass --user to do the same on a machine that has sudo:

curl -fsSL https://raw.githubusercontent.com/derekwisong/datui/main/scripts/install/install.sh | sh -s -- --user

Package managers

PlatformCommand
Windows, WinGetwinget install derekwisong.datui
macOS, Homebrewbrew tap derekwisong/datui && brew trust derekwisong/datui && brew install datui
Python, PyPIpip install datui
Rust, crates.iocargo install datui --locked
Arch Linux, AURyay -S datui-bin # or: paru -S datui-bin
Debian, UbuntuApt repository
BinariesLinux, macOS and Windows binaries, .deb, .rpm and Arch tarballs on the latest release

On Fedora and RHEL, the one-line script installs the .rpm; or install it from the release, as below.

Homebrew needs brew trust before it will install from a third-party tap. The pip package installs the datui command and the Python module. cargo install compiles datui, which takes a C compiler and some minutes; with cargo-binstall installed, cargo binstall datui fetches the release archive for your platform instead.

Apt repository

Add the signing key and source once:

curl -fsSL https://derekwisong.github.io/datui-apt/public.key | sudo gpg --dearmor -o /usr/share/keyrings/datui-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/datui-archive-keyring.gpg] https://derekwisong.github.io/datui-apt/ ./" | sudo tee /etc/apt/sources.list.d/datui.list
sudo apt update
sudo apt install datui

After that, apt upgrade keeps datui current.

Pre-built binaries

Every release on GitHub carries these, with a SHA256SUMS file and its Sigstore signature. <VERSION> is the release’s version, such as 0.4.0:

AssetFor
datui-v<VERSION>-x86_64-unknown-linux-gnu.tar.gzLinux x86_64, glibc 2.28 or newer
datui-v<VERSION>-aarch64-unknown-linux-gnu.tar.gzLinux arm64, glibc 2.28 or newer
datui_<VERSION>-1_amd64.deb, datui_<VERSION>-1_arm64.debDebian, Ubuntu
datui-<VERSION>-1.x86_64.rpm, datui-<VERSION>-1.aarch64.rpmFedora, RHEL
datui-v<VERSION>-aarch64-apple-darwin.tar.gzmacOS, Apple silicon
datui-v<VERSION>-x86_64-apple-darwin.tar.gzmacOS, Intel
datui-v<VERSION>-x86_64-pc-windows-msvc.zipWindows
PKGBUILDThe AUR package’s build file
datui-<VERSION>-cp38-abi3-*.whlThe Python wheels PyPI serves

An archive holds datui, LICENSE, man/ and completions/. Unpack one and put datui somewhere on your PATH, or install a package:

sudo apt install ./datui_<VERSION>-1_amd64.deb
sudo dnf install https://github.com/derekwisong/datui/releases/download/v<VERSION>/datui-<VERSION>-1.x86_64.rpm

From source

Needs a Rust toolchain, 1.95 or newer.

git clone https://github.com/derekwisong/datui.git
cd datui
cargo build --release --locked

The binary is target/release/datui. To build a specific release, check out its tag first (git tag --list, then git checkout vX.Y.Z). To install into ~/.cargo/bin instead, run cargo install --path . --locked from the checkout.

Five features are on by default. --no-default-features leaves them all out; add back the ones you want with --features:

cargo build --release --locked --no-default-features --features sql,streaming
FeatureWithout it
cloudS3, GCS and Azure URLs fail to open; no cloud sources on the home screen
httpHTTP(S) URLs fail to open
sqlThe command line has no sql:; a view saved with SQL fails to apply
sqliteSQLite databases fail to open
streamingNo Polars streaming engine: an export reads the whole view first, and a Data Quality read runs to its end on Esc

Example datasets lists only what the build can open.

Manual pages

The .deb, .rpm, AUR package, Homebrew formula and release archives install the manual pages: man datui, man datui-config, man 5 datui-config, man datui-keys. pip install datui puts them in the environment’s share/man, which man searches while its bin is on your PATH.

After cargo install or a build from source, datui man shows them, and this installs them where man finds them for your user:

datui man --dir ~/.local/share/man

datui man --list lists the pages.

Shell completions

The packages, Homebrew and the release archives (completions/) install the completion scripts for bash, zsh and fish. Otherwise datui completions SHELL prints the script for the flags, commands and format names. Set it up once per shell:

ShellSetup
bashsource <(datui completions bash) in ~/.bashrc
zshsource <(datui completions zsh) in ~/.zshrc, after compinit
fishdatui completions fish > ~/.config/fish/completions/datui.fish
PowerShelldatui completions powershell | Out-String | Invoke-Expression in your $PROFILE
elvisheval (datui completions elvish | slurp) in ~/.config/elvish/rc.elv

Windows

winget install derekwisong.datui
On Windows
TerminalWindows Terminal and the classic console window draw 24-bit color; with “Use legacy console” checked, 16 colors. Windows Terminal draws datui’s glyphs; the classic console draws ASCII unless its code page is UTF-8 (chcp 65001). [display] unicode overrides either way (Glyphs or ASCII)
Config file%APPDATA%\datui\config.toml
Format specs%APPDATA%\datui\formats (Format specs)
Cache and log%LOCALAPPDATA%\datui
~datui ~\data\a.csv opens from your user folder in cmd and PowerShell too
MouseShift+drag selects text in Windows Terminal while datui has the mouse (Mouse and text selection)
Globscmd and PowerShell pass *.csv to datui as typed; quote it in Git Bash, as on Linux
A file open in another programA spreadsheet app or database that holds a file exclusively stops datui reading it: datui says so. Close it there and reopen
A file datui has opendatui reads files through memory maps, and Windows lets no program truncate, rename or delete a file while it is mapped. A program rotating a log datui has open can fail; close it in datui first (Ctrl+O or q)

Uninstall

Installed byRemove with
The script, on Debian or Ubuntusudo apt remove datui; then sudo rm /etc/apt/sources.list.d/datui.list /usr/share/keyrings/datui-archive-keyring.gpg drops the repository
The script, on Fedora, RHEL or Amazon Linuxsudo dnf remove datui
The script, elsewheresudo rm /usr/local/bin/datui /usr/local/share/man/man*/datui*
The script with --userrm ~/.local/bin/datui ~/.local/share/man/man*/datui*
A .deb or .rpmsudo apt remove datui or sudo dnf remove datui
WinGetwinget uninstall derekwisong.datui
Homebrewbrew uninstall datui, then brew untap derekwisong/datui
pippip uninstall datui
cargocargo uninstall datui
AURsudo pacman -R datui-bin
An archiveDelete datui from where you put it

None of these touch your config, themes, saved views, cache or log. datui config path names the config files; the directories are:

ConfigCache and log
Linux~/.config/datui~/.cache/datui
macOS~/Library/Application Support/datui~/Library/Caches/datui
Windows%APPDATA%\datui%LOCALAPPDATA%\datui