Use persistent (or not) zsh sessions from Python, with near first-party interoperability between the two.