UEFI File Manager (UFM)

A dual pane file manager with a text based user interface for UEFI Shell environment (requires v2.0 or higher). The application is based on the TianoCore EDK II development environment. Distributed under the BSD-2-Clause Plus Patent License.


  • Support all available text-modes on standard output
  • Work with devices that support the Simple File System Protocol
  • Execute an application
  • Use internal edit and hexedit editors
  • Copy, create, move/rename, remove files/directories


1) Move all files from Library to ShellPkg/Library

2) Add the following line to ShellPkg/ShellPkg.dsc, section "Components":


If you want to integrate UFM in Shell:

1) Add the following line to ShellPkg/ShellPkg.dsc, section "LibraryClasses", in build of any version of the shell:

ShellPkg/Application/Shell/Shell.inf {
        NULL|ShellPkg/Library/UefiShellUfmCommandLib/UefiShellUfmCommandLib.inf # <- add this line

If you want standalone application:

1) Move all files from Application, Include to ShellPkg/Application and ShellPkg/Include

2) Add the following lines to ShellPkg/ShellPkg.dsc:

Section LibraryClasses.common:


Section Components:


3) Add the following line to ShellPkg/ShellPkg.dec, section "LibraryClasses":


Binary release

Compiling programs for UEFI is not always convenient, especially for an application. Therefore, precompiled application is distributed. You can find binaries (for x86_64) at joursoir.net/storage/binaries/ufm.


Shell> ufm

This example of launching an application is possible if it's integrated in the Shell. In other case, go to the desired file system and run UfmApp.efi

The app doesn't currently support command line arguments


There is no mouse support.

Keyboard Inputs:

- UP ARROW / DOWN ARROW: move to the next / prev item or scroll a line up / down
- TAB: move to the next panel
- ENTER: follow the current link
- SPACE: select the file
- F1-F10: special commands


Useful resources & documentation:

UEFI Shell Specification Version 2.2

EDK II Documentation