Thanks Tom Maybe the following could work, it seems to do what you want when I try > it here. > > (progn > (let ((default-directory "path1")) > (eshell t) > (rename-buffer "b1")) > (let ((default-directory "path2")) > (eshell t) > (rename-buffer "b2"))) > > This is a working solution for me. > (progn > (eshell t) > (eshell/cd "path1") > (eshell-send-input) > (eshell t) > (eshell/cd "path2") > (eshell-send-input)) > > The above snippet does not seem to work for me. Could you please explain the below lines ? (eshell t) -> This opens up a new eshell (eshell/cd "path1") - ????? (eshell-send-input) - I am guessing the command in the previous step gets passed on using this command. > Hope it helps in some small way. > Absolutely helps!!! Regards, Kashyap