Just nvim. Neovim runs :! commands non-interactively, capturing the output in a pipe. vim, on the other hand, suspends itself and runs the command in an external shell.
This isn't a problem, really, for non interactive commands, but causes issues with interactive ones. I personally prefer vim's approach, though not enough to abandon neovim.
Its an open source project written in rust; it has shell integration with bash, zsh, and fish. There's no upsell here; no cloud service attached, just a thing we made because it seemed helpful.
It categorizes projects by configurable hints: a .git directory, a Cargo.toml, a Gemfile, a package.json, etc. The database stores which one it see also, so you can query it if you'd like.
This isn't a problem, really, for non interactive commands, but causes issues with interactive ones. I personally prefer vim's approach, though not enough to abandon neovim.