use new hook architecture for prompt
add pyenv support