Run the ghui TUI (a keyboard-driven
interface for your GitHub pull requests) in a floating window inside Neovim, a
single reusable instance you toggle open and closed. Zero runtime dependencies.
Inspired by lazygit.nvim and lazydocker.nvim.
- Neovim >= 0.11
- The
ghuiexecutable in yourPATH - The GitHub CLI (
gh), installed and authenticated withgh auth login; ghui uses it to talk to GitHub
Run :checkhealth ghui to verify.
With lazy.nvim:
{
"Christopherbilg/ghui.nvim",
cmd = "Ghui",
keys = {
{ "<leader>gh", "<cmd>Ghui<cr>", desc = "ghui" },
},
opts = {},
}opts = {} calls setup() for you. The plugin also works with zero config.
:Ghuitoggles the window.- Lua API:
require("ghui").open() / .close() / .toggle().
Hiding the window keeps the ghui process running; quitting the TUI itself
closes the window.
Defaults:
require("ghui").setup({
cmd = "ghui",
args = {},
window = {
width = 0.9,
height = 0.9,
border = "rounded",
relative = "editor",
title = " ghui ",
title_pos = "center",
zindex = 50,
winblend = 0,
},
start_insert = true,
keymaps = { close = false },
on_open = nil,
on_exit = nil,
})| Option | Default | Description |
|---|---|---|
cmd |
"ghui" |
Command (string or list) used to launch the TUI. |
args |
{} |
Extra arguments appended to cmd. |
window.width / .height |
0.9 |
<= 1 = fraction of the editor; > 1 = absolute size. |
window.border |
"rounded" |
Any nvim_open_win() border value. |
window.title / .title_pos |
" ghui " / "center" |
Float title. |
window.zindex / .winblend |
50 / 0 |
Float z-index / transparency. |
start_insert |
true |
Enter terminal-mode on open. |
keymaps.close |
false |
Buffer-local "hide window" mapping, or false. |
on_open / on_exit |
nil |
Lifecycle hooks. |
MIT
