Record and replay editing sessions in Neovim. Not macros — full keystroke recording with timestamps. Record how you solve a problem, replay it for demos, or review your own workflow.
- Record full editing sessions with keystroke timing
- Replay at original speed, fast-forward, or slow motion
- Named recordings that persist across sessions
- Per-project or global storage
- List, rename, and delete recordings via a picker
- Export recordings as text for sharing
- Neovim 0.9+
Using lazy.nvim:
{
"yourusername/tape.nvim",
config = function()
require("tape").setup()
end,
}:TapeRecord— Start recording the current session:TapeStop— Stop recording and save:TapePlay— Pick a recording and replay it:TapeList— Browse, rename, or delete saved recordings
- Uses
vim.on_key()to capture every keystroke with high-resolution timestamps - Saves recordings as JSON to
~/.local/share/nvim/tape/ - Replays by feeding keys back with
vim.fn.feedkeys()usingvim.defer_fn()for original timing