Complete example

# ~/.config/ukrop/config.toml

# Commands matching these patterns are never recorded
ignore_patterns = [
    " ",       # commands starting with a space (HISTCONTROL=ignorespace)
    "ls",      # exact match
    "cd *",    # prefix + wildcard — any cd command
    "exit",
]

[scoring]
frecency_weight = 100.0   # scale factor for frecency bonus
substring_bonus = 8000    # bonus for substring matches
prefix_bonus    = 10000   # bonus for prefix matches

[cleanup]
stale_days = 90           # auto-remove missing dirs older than this

confirm_delete = true     # ask before deleting entries (default: true)

[theme]
preset          = "default"   # see list below
selection_bold  = true
match_underline = true
favorite_italic = false

[layout]
left_panel_pct = 25       # left column width (5–50)
cd_panel_pct   = 75       # cd panel height within left column (10–90)
Live preview. Press F9 inside the TUI (or run ukrop config) to open a modal editor. Theme and layout changes update the background panels in real time. Esc reverts; F9 or Ctrl+S saves.
ukrop in-TUI config editor showing scoring, theme, and layout settings
The in-TUI config editor with Gruvbox theme — scoring weights, cleanup, theme presets, and layout ratios.

Scoring

KeyDefaultWhat it does
frecency_weight100.0Multiplier applied to each item's frecency score. Capped at a 5,000-point bonus so very-frequent items can't drown out better matches.
substring_bonus8000Added when the query appears as a contiguous substring. Guarantees substring matches rank above fuzzy-only matches.
prefix_bonus10000Added when the item text starts with the query. Guarantees prefix matches rank first.

See Search & Ranking for the full scoring formula.

Cleanup

stale_days (default 90) — directories that no longer exist on disk and haven't been visited in this many days (with a low score) are removed automatically when the cd panel opens.

Behavior

confirm_delete (default true) — when enabled, pressing F8 / Ctrl+Del asks for confirmation before removing an entry. Set to false to delete immediately.

Ignore patterns

Three types are supported:

Theme presets

default

Yellow borders, cyan highlights, green/white age colors.

light

Blue borders, magenta highlights — for light terminals.

nord

Cool blue/cyan tones from the Nord palette.

solarized

Solarized dark.

monochrome

White and grey only, no colors.

dracula

Purple borders, green highlights, pink headers.

gruvbox

Warm yellow, aqua and green tones.

catppuccin

Mocha mauve / green pastel palette.

tokyo_night

Cool blue borders, yellow highlights.

kanagawa

Crystal blue, autumn yellow, sakura pink.

everforest

Soft green / yellow natural tones.

rose

Rose Pine — love pink + iris purple.

Theme styling toggles

KeyDefaultEffect
selection_boldtrueBold style for the currently selected item
match_underlinetrueUnderline matched characters in results
favorite_italicfalseItalic style for favorited entries

Layout

KeyRangeDefault
left_panel_pct5–5025 — width of the left column (cd + ssh)
cd_panel_pct10–9075 — height of the cd panel inside the left column

Environment variables

VariablePurpose
UKROP_CONFIG_PATHOverride the path to config.toml.
UKROP_DB_PATHOverride the SQLite database location. Useful for tests and sandboxing.

Database location

SQLite with WAL mode. Back it up with ukrop export --file backup.jsonl.

Browse the full docs →