Eu faço algo semelhante ao que o OP parece precisar. Eu tenho verificação alpina para ver se estou usando localmente ou remotamente via tela. Se for remoto, eu uso a tela para abrir um script que chama elinks e, se for local (ou seja, qualquer outra coisa), eu uso o firefox para abrir a URL.
No .pinerc:
url-viewers=_TEST("test '${TERM}' = screen-bce")_ "/usr/bin/screen screlinks _URL_", "/usr/bin/firefox _URL_"
O script que eu chamo de "screlinks" verifica se já existe um elinks em execução e, em caso afirmativo, usa a opção -remote para abrir uma nova guia.
running='elinks -remote ping()'
if $running
then # echo "elinks running"
/usr/bin/elinks -remote $@
else # echo "elinks not running"
/usr/bin/elinks $@
fi
O resultado final é que quando estou usando alpine na tela e abro uma URL, recebo um novo processo de tela que executa elinks. Posso mudar para lá usando o comando ^ A apropriado e fechá-lo quando eu terminar ou deixá-lo aberto e adicionar URLs extras como guias.