If you have fzf installed, it is easy to integrate it with your bash history.
In my .bashrc, I have:
# Introduce fzf-driven functionality as described here: https://wiki.archlinux.org/title/fzf.
source /usr/share/fzf/key-bindings.bash
source /usr/share/fzf/completion.bash
Also, you may be interested in zoxide, which keeps track of paths you have navigated to.
Also from my .bashrc:
# Enable an autojump-like 'j' command. Use 'ji M' to select paths starting with M using fzf.
# This needs to always come last.
eval "$(zoxide init --cmd j bash)"
You can use overleaf for sharing only, and write your document locally.
I am currently writing my thesis using the git integration, using neovim/vimtex/jabref, and then doing git add/commit/push to sync to Overleaf.