The shell version had to pass the password through a shell variable into
a Python subprocess, which is fragile for special characters.
The Python version uses getpass.getpass() which reads directly from the
terminal at the Python level — no shell variable, no quoting issues, no
risk of special characters being mishandled.
https://claude.ai/code/session_01C4jbd3waXG3eKZYbGUjLUQ