Gitless seems to check your boxes. I haven’t tried it myself as nowadays I end up doing most of my git operations through VSCode keybindings. But it has always seemed interesting and I’ve considered bringing it into Code as an alternative git interface.
https://gitless.com/