3DShell - (Pronounced 3D Shell) is a multi purpose file manager for the Nintendo 3DS. Heavily inspired by the CyanogenMod/LineageOS file manager.
Clone or download
joel16 No need to hold destination archive
We already know it's the current working archive.

Also renamed OSK_GetString -> Keyboard_GetText to match NX-Shell
Latest commit a403465 Jan 4, 2019


3DShell Build Status Github latest downloads

3DShell Banner


3DShell (pronounced 3D-Shell) - is a multi-purpose file manager GUI for the Nintendo 3DS. The program is currently in its early stages and lacks many features that are currently in development. More information will be given once the program matures. This program's design elements are clearly inspired by CyanogenMod's built in file manager, and so I take no credit for that.

Current features:

  • Storage bar (at the very top, just beneath the current working directory).
  • Precise battery percentage using mcu::hwc.
  • Creating new folders and files.
  • Renaming files/folders.
  • File/folder deletion.
  • Copy/Move files and folders.
  • Multi-select items for delete/cut/copy (using Y button).
  • FTP server (Press select or tap the ftp icon to toggle).
  • Image preview (If the image is around 400 * 480 which is the size of both screens, the image will be split in half and displayed. Support for the following image formats. PNG, JPG, TGA (untested ->) HDR, PIC, PNM, PSD)
  • ZIP/RAR file extraction.
  • Searching for directories (allows you to quickly visit a directory by clicking the search icon on the top right (bottom screen).)
  • File properties - lets you view info on current file/folder.
  • Screenshots - Press (L + R) -> (/screenshots/Screenshot_YearMonthDay-Num.bmp)
  • Fast scroll - Use analog stick.
  • File timestamps.
  • Browsing CTRNAND and copying data to/from CTRNAND.
  • MP3, vorbis (ogg), flac and wav playback support. (All thanks to deltabeard/MaK11-12)
  • Dir list Sorting (alphabetical - ascending, alphabetical - descending, size - largest to smallest, and size - smallest to largest).
  • Online updater (nightly/releases)

Building from source:

  1. Ensure you have the devkitPro, ctrulib and citro3D installed correctly. Make sure you have makerom and bannertool in your path as well.

  2. Install the following dependecies from devkitPro's pacman:

  • sudo dkp-pacman -Syu 3ds-dev --noconfirm --needed
  • sudo dkp-pacman -Syu 3ds-curl --noconfirm --force
  • sudo dkp-pacman -Syu 3ds-libogg --noconfirm
  • sudo dkp-pacman -Syu 3ds-libvorbisidec --noconfirm
  • sudo dkp-pacman -Syu 3ds-mpg123 --noconfirm
  • sudo dkp-pacman -Syu 3ds-opusfile --noconfirm
  1. Recursively clone the repo:
git clone --recursive https://github.com/joel16/3DShell.git
  1. Open the project diretory:
cd 3DShell/
  1. Update the submodules:
git submodule foreach git pull origin master
  1. Build the binary using make:


  • deltabeard/MaK11-12 for sound support.
  • mtheall for ftpd.
  • Steveice10 for allowing me to use his screen.c C3D code as a template to build and make modifications on.
  • preetisketch for the banner.
  • FrozenFire for the boot logo.