You could negate the need for a --bash or --zsh flag by checking $SHELL:
echo $SHELL | egrep -o '[a-z]+$'
It might also make sense to bundle everything under one file as well. While I'd normally advocate separating code into smaller and more manageable files, a single file shell script would be more convenient to install and would require less disk reads per every prompt call.
Looks good though. I'm definitely going to use this on my dev boxes.
Some don't, but $SHELL is generally accurate enough for Bash and Zsh.
You can also check the shell by checking the PID:
ps -p $$
But then you need to do extra output parsing plus, obviously, ps each time you output $PS1. Which is going to be a little overkill for this project since it's only Zsh and Bash you're wanting to capture and you can always have fallback support for those flags when automatic detection fails.
Looks good though. I'm definitely going to use this on my dev boxes.