- Unified Viewer: Inspect regular text files, binary files (in a hex-dump view), and archive contents all in one interface.
- Plugin Architecture: FAT uses a dynamic plugin system to handle different archive formats. The beta version comes with support for ZIP and TAR archives, as well as GZIP compressed files.
- Customizable Theming: Easily change the look and feel of the application. FAT uses simple
.jsonfiles for theming and comes with several pre-built themes, including Nord, Gruvbox, Monochrome, and Solarized. - User-Friendly TUI: A clean, two-pane layout shows file metadata on the left and content on the right.
- Cross-Platform: Designed to compile and run on Linux, macOS, and
Windows (via MinGW-w64).
NOTE: At the current version, Windows is not available. Linux and macOS are available completely though.
![]() |
![]() |
![]() |
The easiest way to install FAT is from the Snap Store.
Some of the code is still being refactored to make the best out of this mode (Opening external commands is still under improvement)
sudo snap install zuhaitz-fat --betaGo to the project's Releases Page on GitHub and download the file for your system. This contains the AppImage and the default configuration files.
unzip <.dist you have downloaded>tar -xzvf <the .tar.gz>You only need to do this once.
chmod +x <AppImage you downloaded>You can now run the application directly:
./fat-x86_64 /path/to/your/fileDesktop Integration: For the best experience, we recommend installing AppImageLauncher. It will automatically add FAT to your application menu.
- Prerequisites
First, you need to install the necessary development libraries.
sudo apt update
sudo apt install build-essential libncursesw5-dev libmagic-dev libzip-dev libtar-dev zlib1g-devsudo dnf install ncurses-devel file-devel libzip-devel libtar-devel zlib-develUsing Homebrew:
brew install ncurses libmagic libzip libtar zlibThe recommended way is to use MSYS2 with the MinGW-w64 toolchain.
- Install MSYS2.
- From the MSYS2 MinGW 64-bit terminal, install the toolchain and libraries:
pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-ncurses mingw-w64-x86_64-file mingw-w64-x86_64-libzip mingw-w64-x86_64-libtar- Build Commands
Once you have the prerequisites, you can build and install FAT with these simple commands:
# - Build the application and plugins
make
# - Install the application system-wide
sudo make install
# - If you want to make the AppImage
make appimage
# - (Linux only) Update the shared library cache
sudo ldconfigThe fat command will now be available system-wide.
- Cleaning Up
Two cleaning commands are available:
make clean: Removes intermediate object files and binaries from the compilation process.make distclean: Performs a full cleanup. It runscleanfirst and then deletes theAppDir/and any created AppImage files, restoring the project to a pristine state.
To view a file or archive, simply pass it as an argument:
fat my_document.txt
fat project.zip| Key | Actions |
|---|---|
q |
Quit the application |
j/k, KEY_DOWN/KEY_UP |
Scroll line by line |
h/l, KEY_LEFT/KEY_RIGHT |
Scroll horizontally |
KEY_NPAGE/KEY_PPAGE |
Scroll page by page |
gg |
Jump to beginning of content |
G |
Jump to end of content |
gt |
Go to line |
w |
Toggle line wrapping (Text mode) |
/ |
Search for text/hex |
n |
Next search match |
N |
Previous search match |
t |
Toggle Text/Hex View |
O |
Open with external command |
o |
Open with default external command |
KEY_BACKSPACE, KEY_ESC |
Go back (from archive) |
KEY_F(2) |
Change theme |
? |
Show this help screen |
KEY_ENTER, \n |
Confirm action |
FAT is designed to be easily customized. On the first run, it will create a configuration directory at ~/.config/fat/ (on Linux/macOS) or %APPDATA%\fat (on Windows).
This directory is populated with default themes and keybindings. To create your own theme or modify an existing one, simply edit the .json files in the ~/.config/fat/themes/ directory. You can also customize your keybindings by editing ~/.config/fat/keybindings.json. Your personal themes and keybindings will automatically override the system-wide defaults.
Want to add support for another archive format like .7z or .rar? It's easy! The plugin system is designed to be simple.
-
Include the
plugin_api.hheader in your C file. -
Implement the four required functions:
can_handle,list_contents, andextract_entry. -
Export a
plugin_registerfunction that returns a struct of your function pointers. -
Compile your plugin as a shared library (
.so,.dll, or.dylib) and place it in the plugins folder.
For a complete example, see the implementations for zip_plugin.c and tar_plugin.c.
This project is licensed under the GPLv3 License. See the LICENSE file for details. v0.2.0-beta (Onion) and earlier versions are under MIT license.


