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.
Setting a username and password after joining WiFi is 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, and block their internet access if you can, because any update they get will be bad for you, given they currently work fine totally off line.
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.