A Shell Type Micropython File Explorer⛺


PyPI version

The lite version of this mpfshell is an aggressive development version. The stable version is available at mpfshell.


  1. Compact, full-featured MicroPython management tools, such as: put\get\cat\rm\execfile and so on.

  2. Fixed the problem of massive use of Windows, such as path, garbled code, etc., but some problems are still being solved in succession.

  3. Green single file under Windows, out of the box, or using Python for cross-platform operation.

System requirements

  • Python 3.5.4 +
  • requirements.txt


1. into releases download mpfs.exe.

Find the version of the system you are using and download it.

2. Install using PIP

Using the Python PIP tool to download and install, in the console input pip insrall mpfshell-lite, then enter mpfs can run.

pip install mpfshell-lite


Connect your hardware

Connect to your hardware and the port number of the current hardware will appear.

looking for all port...
serial name : USB-SERIAL CH340 (COM5)  :  COM5
input ' open COM5 ' and enter connect your board.

Enter 'open COM5' as shown in the figure to connect.

You can see Connected to esp32 already Connected.

Run micropython code.

1.Run the code directly

mpfs [/]> view
looking for all port...
serial name : USB-SERIAL CH340 (COM5)  :  COM5
current open_args ser:COM5
mpfs [/]> open COM5
Connected to esp32
mpfs [/]> exec print('hello world!')
hello world!
mpfs [/]>

2.Run the code file

Prepare a Python code file (.py) on your desktop

print('hello world!')

  • use the exe version

Put exe with .py and follow these commands.

looking for all port...
serial name : USB-SERIAL CH340 (COM5)  :  COM5
input ' open COM5 ' and enter connect your board.

** Micropython File Shell v0.9.1, sw@kaltpost.de & juwan@banana-pi.com **
-- Running on Python 3.5 using PySerial 3.3 --

mpfs [/]> open com5
Connected to esp32
mpfs [/]> runfile ts.py
hello world!
Connected to esp32
mpfs [/]>

  • use the PIP version

In CMD console mode, you need to use the following command to locate the folder path (LCD) and then run the file (runfile).

You can use the LCD location to run a file path, such as lcd C:/Users/Juwan/Desktop (note that is / is not \, this let a person tired)

mpfs [/]> open com5
Connected to esp32
mpfs [/]> lcd Desktop
mpfs [/]> lls

Local files:

 <dir> blog

mpfs [/]> runfile ts.py
hello world!
Connected to esp32
mpfs [/]>

Use help

In the program, you can also get the details of the corresponding command description or parameters by using the help + command.

For example: help cd, returns the cd <TARGET DIR> ​ Change current remote directory to given target.

You can see that it is used to change the current file directory starting point in the target board, equivalent to setting the default path of the folder in the board.

Common mistakes

If there is a dead loop without any delay in the connection process, it will affect the success of the software connection board, especially the dead loop of main.py without delay, which will lead to the failure to connect to the hardware after power on. You can reset the connection rm main.py, which needs to be noted.

Dissection tool

0. Supported version of the system

system type system version running condition notes
Windows win7-win10 normal native CMD does not support TAB
Linux luubuntu normal native Shell supports TAB
Mac Darwin normal is consistent with Unix

1. Important functional operations

operation method different system tools support run effect notes
Enter something and complete it with the TAB key Only the shell, repl, powershell support. If you want to type "import", you only need to input "i" and then press the TAB key to complete it automatically. For example, in Linux, you can input "ttyUSB0" and only need "i + TAB". It can only input completion history.
Left copy selection, right paste selection Windows only system support. Open the CMD console program attributes in the quick edit function, can let the program supports the mouse to click suspended after some drag copying the text content. Are generally choose a line.
Up, down, left and right buttons and backspace all supports. You can modify what you've typed. Fixes were made for Windows

2. All of the use of the command

Command the braces for short, easy to use.

command type USES method to run the result note
open (o) opens the current device. Format: a serial port cable open com3, wireless ws:, 1234 connection after a successful return to Connected to esp32 control board before, need to open the connection first. The parentheses are shorthand.
close closes the current device.
quit (q) enters exit the program
EOF enters exit the program
cat (c) Enter the file name, such as cat boot.py Prints out the contents of the specified file on the board for quick viewing.
put Push files from the current directory to the board, for example put boot.py Failure returns an error message
get Gets the files in the current directory of the board, for example get boot.py Boot.py is added to the directory where the program is running (lpwd)
mput Opposite to put
mget Opposite to put
repl (e) Enter python's repl control interface You can execute python code directly.
exec (e) input Python Code, for example exec print('hello') Returns the run result of print('hello') Only one line of python code can be executed.
execfile (ef) Python files that exist in the execution board, for example execfile main.py Execute the effect of main.py
lexecfile (lef) A python file that exists under the execution program, for example lexecfile main.py Execute the effect of main.py Unlike runfile will enter repl mode, so support input() operations.
runfile (rf) It combines the put and execfile commands
cd input Specify the directory in the board, for example cd /cd D:/Users Modify the program to access the board of the directory To / separate Linux path.
md input Directory name Create a new directory on the board
lcd input Specifies the current directory in the program, for example cd / Modify the directory in which the program accesses the board To / separate Linux path.
pwd inputpwd Returns the directory on the current board
lpwd input lpwd Returns the directory in which the current program resides
mpyc input Python files in the current directory, for example mpyc main.py Pyc python code static compilation code processing, generate main.pyc need to have mpy-cross command in the system
mrm Enter the specified directory or file name rm Directory or file name Removes the directory or file name from the system
rm Enter the specified directory or file name rm Directory or file name Removes the directory or file name from the board
ls inputls / View all files in the board's current directory
lls input lls / View all files in the program's current directory
view input view View the possible serial ports on the machine, and the current open configuration
help View the help command, for example : help lls


  1. create mpfs.exe

pyinstaller -F mpfs -i logo.ico

uplaod pypi

python setup.py sdist build
# pip install twine
twine upload dist/* --verbose