A lightweight, terminal-native Git interface floating window for Neovim. Inspect diffs, manage branches, stage modified files, manage stashes, and handle merges or commits without leaving your neovim editor.
- Multi-View Interface: Fast cycling across Branches, Files Changed, and Stashes views.
- Live Code Changes Panel: Instant diff previewing for commits, staged/unstaged changes, and stashes.
- Streamlined Branch Operations: Create, checkout, merge (regular, squash), pull, and push branches directly from floating UI modals.
- Commit & Stash Workflows: Built-in title/description commit dialogs and quick stash creation/popping.
- Keyboard-First Navigation: Standard Vim motions (
j,k,h,l) and explicit hotkeys for quick execution. - Help Modal: Instant keymap reference available anywhere via
?.
View staged/unstaged files and preview line diffs in real time.
Inspect saved stash items alongside their code modifications.
Dedicated floating modal to write commit titles and detailed descriptions.
Create new branches or launch regular/squash merge workflows seamlessly.
| Branch Creation | Interactive Merging |
|---|---|
![]() |
![]() |
Press ? inside any window to toggle the interactive cheat sheet.
Using lazy.nvim
{
'Darkskittlz/GitCompanion',
dependencies = {
'nvim-lua/plenary.nvim', -- Optional: include if your plugin relies on plenary utilities
},
keys = {
{ '<leader>gc', '<cmd>GitCompanion<cr>', desc = 'Toggle GitCompanion' },
},
opts = {},
}





