Bresson is an EXIF Metadata Processing TUI (Terminal User Interface) built in Rust using the Ratatui immediate-mode TUI library.
Bresson was initially conceived as an exploration of terminal interfaces and immediate-mode rendering during my Winter 2' 2024 Batch at the Recurse Center.
Bresson allows you to inspect & modify the Exif metadata for a given image inside your terminal.
Within TUI Mode, all of the metadata is displayed inside a table and with the appropriate units for relevant fields.
If the provided image has any GPS data, an ASCII rendering of Earth will be shown with the GPS co-ordinates highlighted!
There is also support for rendering the image thumbnail via ratatui-image but this is highly dependent on what image backends are supported by your terminal. Recommended terminals are -
- XTerm
- Foot
- kitty
- Wezterm
- iTerm2
- Ghostty
Here is a list of Keybinds for TUI mode -
Keybind | Description |
---|---|
r |
Randomize the highlighted field |
R |
Randomize all fields |
c |
Clear selected metadata |
C |
Clear all metadata |
u |
Undo change |
U |
Undo all changes / Restore |
t | T |
Toggle between displaying Thumbnail and Globe |
s | S |
Save a copy of the modified metadata |
g | G |
Toggle Globe Visibility |
<Spc> |
Toggle Globe Rotation |
? |
Show/Dismiss Keybind Info |
q | <Esc> |
Exit the app |
Make
Model
DateTime
DateTimeOriginal
DateTimeDigitized
ExposureTime
FNumber
PhotographicSensitivity
MeteringMode
ColorSpace
GPSLatitude
GPSLongitude
GPSLatitudeRef
GPSLongitudeRef
Currently Bresson is in alpha development. To build Bresson, please clone the repository to your local environment and then running the following command -
$ cargo run -- <PATH_TO_IMAGE>
This will build Bresson locally and then run it (in debug mode).
- Randomizing more metadata fields
- Editing metadata directly
- Displaying the Thumbnail
- Configuration File
- Alternate Stylesheets
- DSL for defining modifications
- Batch processing a directory containing multiple images
- File Picker interface