Visualize and review your Neovim configuration activity with stats, insights, history, and heatmaps.
- Progress Bars: Track commits, plugins, total ever installed, and total lines.
- Commit Heatmap: A GitHub-style contribution graph with year cycling, month-colored columns, and intensity levels.
- Plugin Insights: Oldest/newest plugin age, total ever installed count, and a plugin growth chart over time.
- File Statistics: Biggest/smallest files, top 5 file types, top 5 files by line count.
- Git Analytics: Commit streaks, highest/lowest activity days, config lifetime, last change, and config size over time chart.
- Config Changes Frequency: A dot graph showing monthly commit frequency.
- Visual Dashboard: A beautiful, component-based UI powered by
nvzone/volt.
Important
This plugin is in it's early stage so I'd love to hear any feedbacks, issues, and contributions if you have any!~
Requirements:
- Neovim >= 0.10.0
nvzone/volt(UI framework dependency)- A Nerd Font (for icons)
{
"aikhe/wrapped.nvim",
dependencies = { "nvzone/volt" },
cmd = { "WrappedNvim" },
opts = {},
}Run the following command to open the dashboard:
:WrappedNvim| Key | Action |
|---|---|
< |
prev year |
> |
next year |
require("wrapped").setup({
path = vim.fn.stdpath("config"), -- path to your neovim configuration
border = false,
size = {
width = 120,
height = 40,
},
exclude_filetype = {
".gitmodules",
},
cap = {
commits = 1000,
plugins = 100,
plugins_ever = 200,
lines = 10000,
},
})All data collection is fully async via vim.system callbacks and runs concurrently across three tasks. A loading screen is displayed until all tasks resolve, then the dashboard renders in a single pass.
- Git (
core/git.lua): Runs 5 concurrentgitcommands —rev-list --countfor total commits,git log --reversefor first commit date,git log --format=%adfor config stats (streak calculation, highest/lowest day, monthly commit frequency, lifetime & last change), commit activity grouped byddmmyyyykeys for the heatmap, and a sequentialgit diff --shortstatchain against the empty tree across ~50 sampled commits for the config size history. - Files (
core/files.lua): Usesgit diff --numstatagainst the empty tree hash for per-file line counts of tracked files, plusgit ls-files --otherswithio.openfor untracked files. Aggregates total lines, biggest/smallest file, lines by extension, and top files. - Plugins (
core/plugins.lua): Scansgit log -ppatches foruser/repopatterns in added lines to count total ever installed plugins and build a growth timeline. Querieslazy.nvimfor current plugin list, then sequentially runsgit log -1 --format=%atin each plugin directory to find the oldest and newest plugins.

