LarsVader

Termcontrol.Nvim — Git skill for Claude Code

Git community

Drive any running terminal in Neovim — send text, send keystrokes, scroll — without focusing it.

How to install Termcontrol.Nvim

This entry records only its repository, not the path inside it, so there is no exact command to give. Open LarsVader/termcontrol.nvim and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Termcontrol.Nvim does

Drive any running terminal in Neovim — send text, send keystrokes, scroll — without focusing it. Detects [folke/sidekick.nvim](https://github.com/folke/sidekick.nvim) sessions and adds nvim-cmp prompt-template completion when sending to a Claude/Copilot CLI.

Alternatives in Git

  • Merger — 增量 Merge Prompt 24k ★
  • 40+ Claude Code Tips — Tips for getting the most out of Claude Code, including a custom status line script, cutting the system prompt 5.8k ★
  • Claude Composer — by Mike Bannister - A tool that adds small enhancements to Claude Code 680 ★

README

termcontrol.nvim

Drive any running terminal in Neovim — send text, send keystrokes, scroll — without focusing it. Detects [folke/sidekick.nvim](https://github.com/folke/sidekick.nvim) sessions and adds nvim-cmp prompt-template completion when sending to a Claude/Copilot CLI.

Why

Switching focus to a terminal split to scroll the latest output, answer a "1/2/3" prompt, or type a quick message means leaving your current cursor position. `termcontrol.nvim` keeps you in your editing buffer:

  • / / / / — scroll the active terminal
  • — answer the active terminal's number-driven TUI prompt
  • — pop an input prompt, send the text into the terminal
  • — restart the active sidekick CLI (only bound if sidekick is loaded)
  • — cycle which terminal the above bindings target (works in normal, terminal, and inside the input prompt)

With more than one terminal open the plugin auto-targets the most-recently-used one; cycle between them with ``. With none it notifies.

Scroll keys (``/``/``/``/``) need a *visible* window. If your cycled target is hidden, scroll silently falls through to the most-recent terminal whose window is visible — no notify (it would spam on every keypress). `` / `..` / `` ignore visibility and always hit the cycled target.

Install

lazy.nvim

{
  "LarsVader/termcontrol.nvim",
  event = "VeryLazy",
  opts = {},
}

`opts = {}` reproduces the default keymaps shown above. No external dependencies; integrations (sidekick, nvim-cmp) activate automatically when present.

Configuration

require("termcontrol").setup({
  keys = {
    send_message      = "",
    new_chat          = "",
    scroll_bottom     = "",
    scroll_down_line  = "",
    scroll_up_line    = "",
    scroll_down_half  = "",
    scroll_up_half    = "",
    send_digit_prefix = "", -- "?" e