That's reasonably simple to do with esp-link and an ESP8266 WiFi<>serial module (e.g. ESP-01):
https://github.com/jeelabs/esp-linkUnder Linux, AVRDUDE can connect to a TCP/IP port over your LAN, so with a bit of config file hacking, its possible to add the remote esp-link to the Arduino IDE as a 'programmer' using the 'Arduino' protocol. Unfortunately under Windows, that functionality is borked, so you need some way of mapping a local COM port to a remote one over TCP/Ip as the 'secret sauce'.
The easiest way I have found to do that without payware is using the com0com virtual null modem and its associated com2tcp utility.
https://sourceforge.net/projects/com0com/Install com0com and also copy com2tcp.exe to its program folder.
To connect a COM port to port 2323 of an esp-link TCP/IP<=>serial bridge available on the LAN as 'robot.lan', for use by AVRDUDE under the Arduino IDE1. Create a virtual port pair using com0com. The visible side of the pair should be called COMnn
(set nn to your preference, I suggest a fairly high number so it doesn't conflict with real hardware ports), and have 'emulate baud rate' and 'enable plug-in mode' checked. The hidden side of the pair can be called ROBOT, and have 'emulate baud rate' and 'enable hidden mode ' checked, so that when it is opened the visible side appears.
2. Create a shortcurt to com2tcp.exe called 'Connect to robot', to run minimized:
"C:\Program Files (x86)\com0com\com2tcp.exe" --baud 115200 \\.\ROBOT robot.lan 2323
Change 'robot.lan' and the baud rate to match esp-link settings and whatever LAN suffix your router uses. Do not change the port 2323 as that signals esp-link to reset the target when it is opened (required for AVRDUDE <> bootloader sync).
3. When you start the 'Connect to robot' com2tcp utility, COMnn appears and can be used by the Arduino IDE for programming, and by its terminal utility as-if the Arduino was hard-wired. When you close com2tcp, COMnn goes away. If it doesn't stay open there's probably an issue with your robot's wifi connectivity - run it from a console with the above command line and look at the error messages.