Xplr allows you explore tree-based file formats as an interactive TUI tree. This currently supports JSON, YAML, and TOML files.
Can be installed using Go 1.23+ via:
go install github.com/crosleyzack/xplr@latestXplr can take in data by providing a data file:
xplr -f foo.tomlor by passing it as the first argument:
xplr "{\"foo\": \"bar\"}"or finally via stdin:
cat bar.yml | xplr -x 1Xplr will search for a configuration toml file at:
- $XPLR_CONFIG
- $XDG_CONFIG_HOME/xplr/config.toml
Configuration options include:
# format
ExpandedShape = "╰─"
ExpandableShape = "❭"
LeafShape = "└─"
SpacesPerLayer = 2
HideSummaryWhenExpanded = false
# colors
ExpandedShapeColor = "#d99c63"
ExpandableShapeColor = "#d19359"
LeafShapeColor = "#d19359"
SelectedForegroundColor = "#fffffb"
SelectedBackgroundColor = "#63264A"
UnselectedForegroundColor = "#fffffd"
HelpColor = "#fffffe"
# keys
BottomKeys = ["bottom", "G"]
TopKeys = ["top", "g"]
DownKeys = ["down","j"]
UpKeys = ["up","k"]
CollapseToggleKeys = ["tab", "h", "l"]
CollapseAllKeys = ["<", "H"]
ExpandAllKeys = [">", "L"]
HelpKeys = ["?"]
QuitKeys = ["esc","q"]
SearchKeys = ["/"]
SubmitKeys = ["enter"]
NextKeys = ["n"]Xplr tree view can be embedded in your own application by:
- Convert your data to a
map[string]anytype. Examples exist in thepkg/formatpackage for JSON, YAML, and TOML. - Call
pkg/nodes.Newto convert yourmap[string]anyto a[]nodes.Nodestree. - Call
pkg/modules/tree.Newwith the[]nodes.Nodestree as well as your desiredpkg/modules/tree.TreeFormat,pkg/keys.KeyMap, andpkg/style.Styleto create the tree view bubbletea tree module. - Create a new bubbletea program with the tree module, or add the tree module to your existing bubbletea program.

