Visualize and review your Neovim configuration activity with stats, insights, history, and heatmaps.
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:
nvzone/volt (UI framework dependency){
"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.
core/git.lua): Runs 5 concurrent git commands — rev-list --count for total commits, git log --reverse for first commit date, git log --format=%ad for config stats (streak calculation, highest/lowest day, monthly commit frequency, lifetime & last change), commit activity grouped by ddmmyyyy keys for the heatmap, and a sequential git diff --shortstat chain against the empty tree across ~50 sampled commits for the config size history.core/files.lua): Uses git diff --numstat against the empty tree hash for per-file line counts of tracked files, plus git ls-files --others with io.open for untracked files. Aggregates total lines, biggest/smallest file, lines by extension, and top files.core/plugins.lua): Scans git log -p patches for user/repo patterns in added lines to count total ever installed plugins and build a growth timeline. Queries lazy.nvim for current plugin list, then sequentially runs git log -1 --format=%at in each plugin directory to find the oldest and newest plugins.