Crates.io | xray-tui |
lib.rs | xray-tui |
version | 1.3.1 |
created_at | 2025-05-06 06:45:13.000918+00 |
updated_at | 2025-09-20 09:36:50.567738+00 |
description | A Docker (or any OCI-compliant) image layer inspector |
homepage | |
repository | https://github.com/h33333333/xray |
max_upload_size | |
id | 1661942 |
size | 266,133 |
A blazing fast Docker (or any OCI-compliant) image layer inspector!
Xray helps developers understand and optimize container images by visualizing layers and their contents using a minimalistic but powerful UI with performance in mind.
xray
values your CPU cyclesThis is essentially a beta release at this point, so don't hesitate to open an issue if you find any bugs while using it 🍀
⚠️ Requires the nightly compiler
# If Rust nightly wasn't installed before
$ rustup toolchain install nightly
$ cargo +nightly install --locked xray-tui
Everyone who had to work with container images before knows about the dive tool. It's a great tool, but it doesn't work that well for bigger images, especially the ones that are 5 GB or more in size.
Xray fixes this problem by carefully managing available resources and applying a set of small but important optimizations. All these things make Xray far more responsive when used with large images, while still providing the core functionality and being easy to use.
$ xray --help
Usage: xray [OPTIONS] <IMAGE>
Arguments:
<IMAGE>
Options:
-p, --config-path <CONFIG_PATH>
Override the config directory location.
Default: $HOME/.xray
-d, --docker
Force image resolution using Docker
-f, --fs
Force image resolution using a tarred image
-h, --help
Print help (see a summary with '-h')
-V, --version
Print version
To inspect an image use:
xray <IMAGE>[:tag]
xray
will try to resolve the provided image using the default resolution order:
💡 Please refer to
xray --help
if you want to force a specific image resolver.
💡 You can always use the help popup available by pressing
/
to get the contextualized help for the currently active pane.
Key Sequence | Action |
---|---|
1 |
select the "Image Information" pane |
2 |
select the "Layer Information" pane |
3 |
select the "Layers" pane |
4 |
select the "Layer Changes" pane |
Left , h |
scroll the current entry left (if supported by pane) |
Down , j |
select the next entry in the current pane |
Up , k |
select the previous entry in the current pane |
Right , l |
scroll the current entry right (if supported by pane) |
Tab |
cycle through the panes: next pane |
Shift-Tab |
cycle through the panes: previous pane |
q |
exit the app |
Key Sequence | Action |
---|---|
Enter , Space |
toggle the selected directory (inside the "Layer Changes" pane) |
Ctrl-f |
open the filter popup (inside the "Layer Changes" pane) |
y |
copy the currently selected value to the clipboard (if supported by pane) |
/ |
open/close the help popup |
c |
toggle "show only changed files" filter (inside the "Layer Changes" pane) |
This section contains additional good-to-have things that I plan to add besides fixing everything in the Limitations section.
Xray is distributed under the GNU General Public License version 3. See COPYING for full details.