Skip to content

Repository files navigation

git-dash.nvim

A Neovim workspace for local diffs, conflict resolution, commit history, and GitHub reviews.

Install

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" })

Configuration

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.

Development

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 fixtures

Tools: 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

Provenance and release status

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.

Typing contracts · Verification status

About

A Neovim Git Dashboard

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages