A Neovim workspace for local diffs, conflict resolution, commit history, and GitHub reviews.
Requires Neovim 0.12+, Git 2.47+, and a Unix-like environment. GitHub features
also require an already-authenticated gh on PATH. Local features do not require gh.
Native Windows support is not established; use a Linux environment there.
With lazy.nvim:
{
"ochairo/git-dash.nvim",
cmd = "GitDash",
dependencies = { "MunifTanjim/nui.nvim", "nvim-tree/nvim-web-devicons" },
opts = {},
config = function(_, opts)
require("git_dash").setup(opts)
end,
}Or add a local checkout to runtimepath and run :runtime plugin/git_dash.lua.
Run :GitDash in a Git repository and :checkhealth git_dash to inspect prerequisites.
See :help git-dash for commands, workflow, and confirmation requirements.
Nui and devicons improve the sidebar; built-in rendering remains available without them.
No global leader mappings are installed. An optional mapping is:
vim.keymap.set("n", "<leader>gg", "<cmd>GitDash<CR>", { desc = "Git dashboard" })require("git_dash").setup({
limits = {
output_bytes = 4 * 1024 * 1024,
diff_bytes = 16 * 1024 * 1024,
files = 3000,
lines = 200000,
read_timeout_ms = 30000,
},
icons = { git = { conflict = "!" } },
})Setup is optional for default behavior. Repeated setup replaces configuration from
defaults; the plugin never imports your config.icons. Pass shared icons explicitly.
Public Lua entry points are setup, open, command, and complete; other modules
are internal. GitHub access delegates authentication to the selected CLI and retains
its opaque authentication context. The plugin does not read credential files or
initiate authentication. See the GitHub CLI environment contract.
Use the repository-owned pinned development environment. CI builds the same image and runs the complete portable gate offline.
Run from this checkout:
make static # Go packaging and process supervision tests; no Neovim needed
make test # isolated Neovim behavior and launcher tests
make visual # locked dependencies, multigrid, Linux PTY checks
make check # all portable checks, formatting, lint, typing and visual checks
make handoff-test # optional explicit-runtime handoff integration fixturesTools: Go 1.25+, Neovim 0.12+, Git, Make, StyLua, Luacheck, LuaLS, and a Linux
script utility for PTY tests. Select a trusted executable with NVIM=/absolute/path/nvim.
Tests resolve it before creating private HOME/XDG directories. That isolation does not
make a caller-selected executable trustworthy. No test installs tools or contacts GitHub.
For fidelity tests, set GIT_DASH_FIDELITY_SOURCE to a directory containing the five
dependency Git checkouts named in tests/dependencies.json, including those commits.
The suite materializes the locked Git blobs into a private directory; it does not use
personal Neovim configuration or fetch missing revisions.
Architecture · Dotfiles migration · Review handoff packaging
Extracted from the dotfiles revision and file hashes recorded in
docs/extraction-source.json. This starts a new repository history; no unrelated
history, logs, or user data are included. The plugin is licensed under MIT; dependencies retain their own licenses.
The first release requires runtime, native integration, and LuaLS verification.