CDargs tem a interface que você descreveu, embora fazê-lo funcionar automaticamente a partir de um shell exigiria um pouco de hacking. Você precisa ligar
cdargs -a 'pwd'
toda vez que você alternar os diretórios e, em seguida, apenas executar cdargs
, será exibida uma lista dos diretórios que você marcou que você pode percorrer com as teclas de seta. Você provavelmente desejaria um arquivo temporário para cada terminal, de modo que vários terminais não são executados um no outro e, portanto, a lista é perdida quando o terminal é fechado, então algo assim no script de inicialização do seu shell funcionaria:
export CDARGS_FILE='mktemp /tmp/cdargs_XXXXXXXX'
function cd() {
pushd $*
cdargs -f $CDARGS_FILE -a 'pwd'
}