TLDR: works fine.
https://python-kasa.readthedocs.io/en/latest/cli.html#kasa-help works to provision. No stupid app.
Join to the plugs wifi, then run kasa --host 192.168.0.1 wifi join your-wifi-network-name-here
Use kasa discover
if the IP is wrong.
Set a username and password after joining WiFi. I think this might be optional. I (later) reset one of them (by holding power for ten seconds till LED flashes) and after joining to the main WiFi, it can be discovered in HA - just leave the host name.
If you do set a password, you'll feed the same (fake) email and password to HA - you don't need to give it a working email, 'f@f.com' works fine.
You should probably assign them fixed IPs on your network.
You don't need "HACS > Tapo" as the same things are supported by the built in tplink
integration.
I can't find out to disable firmware updates on them though.