That could be a feasible workflow once the ESP8266 is already in a WiFi we can access from our laptop, but sometimes that is not the case. And, of course, the first time we need to connect the board to the WiFi, which needs to be done over the serial connection.
In order to use it, just install it (preferably inside a virtualenv):
pip install adafruit-ampy
For ease of use, we will define an environment variable with the serial port:
And then we can use the
$ ampy Usage: ampy [OPTIONS] COMMAND [ARGS]... ampy - Adafruit MicroPython Tool Ampy is a tool to control MicroPython boards over a serial connection. Using ampy you can manipulate files on the board's internal filesystem and even run scripts. Options: -p, --port PORT Name of serial port for connected board. Can optionally specify with AMPY_PORT environemnt variable. [required] -b, --baud BAUD Baud rate for the serial connection (default 115200). Can optionally specify with AMPY_BAUD environment variable. --version Show the version and exit. --help Show this message and exit. Commands: get Retrieve a file from the board. ls List contents of a directory on the board. mkdir Create a directory on the board. put Put a file or folder and its contents on the... reset Perform soft reset/reboot of the board. rm Remove a file from the board. rmdir Forcefully remove a folder and all its... run Run a script and print its output.
We can list the contents of the filesystem, create directories, upload and download files, and even run scripts directly. The latter creates a very interesting interactive workflow for rapid iterations. Kudos to @tdicola for the tool!