Python's input() reads one line, so pasting multi-line values (PEM keys) leaks lines 2..N into the shell buffer. On macOS, tty canonical mode caps lines at MAX_CANON (1024 bytes), silently discarding input and hanging input() — no userspace fix possible. Solution: add --from-file (path or - for stdin) flags that bypass the prompt entirely, keeping the interactive path unchanged. Store file content verbatim (no newline stripping), matching docker secret create/kubectl --from-file semantics. Use face framework's flag→parameter mapping (--from-file → from_file) and check if from_file is not None to distinguish "not passed" from empty file.