@0xkahi/pi-vim-keys

Vim style input editor for Pi

Packages

Package details

extension

Install @0xkahi/pi-vim-keys from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@0xkahi/pi-vim-keys
Package
@0xkahi/pi-vim-keys
Version
1.0.5
Published
Jun 12, 2026
Downloads
887/mo · 353/wk
Author
0xkahi
License
MIT
Types
extension
Size
1.5 MB
Dependencies
1 dependency · 3 peers
Pi manifest JSON
{
  "extensions": [
    "./src/index.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

@0xkahi/pi-vim-keys

A Vim modal input editor for Pi. Replaces Pi's default input editor with full normal, insert, visual, and visual-line modes, plus configurable leader keybindings and per-mode cursor shapes.

Supports: Insert, Normal, Visual and Visual-line modes

Demo

Custom LeaderKey Keybinds -> AppKeybinds

KeybindDemo

Install

Install globally (writes to ~/.pi/agent/settings.json):

pi install npm:@0xkahi/pi-vim-keys

Or install into the current project only (writes to .pi/settings.json, shareable with your team):

pi install npm:@0xkahi/pi-vim-keys -l

✨ Features

  • Vim modes: insert, normal, visual, and visual-line modes.
  • Mode-aware cursor and colors: configurable mode label colors, plus block cursor in normal/visual modes and bar cursor in insert mode when terminal hardware cursor is enabled.
  • Configurable insert-to-normal mapping: use escape by default, or configure sequences like jj or kj.
  • Normal-mode leader keybindings: bind leader mappings to Pi app actions or extension commands.
  • supports both single char and multichar sequence: keybinds can be <leader>e or <leader>oe
  • Surround in visual modes: wrap a selection with brackets or quotes via s (e.g. sab, siq).

For custom extension keybind registration, see Extension Keybindings.

Example:

{
  "keybinds": {
    "<leader>oe": "app.editor.external",
    "<leader>p": "app.clipboard.pasteImage",
    "<leader>l": "app.session.resume",
    "<leader>g": "app.session.tree",
    "ctrl+t": "app.thinking.cycle"
  }
}

📚 Documentation

Doc What it covers
Configuration Config file locations, merge order, colors, insert-to-normal remaps, leader keybinds, extension keybinding registration, and schema usage
Normal Mode Insert/visual mode entry, movement, word motions, find character, editing, and configured keybindings
Visual Mode Character-range selections, mode switching, movement, word motions, find character, selection editing, and surround
Visual Line Mode Whole-line selections, mode switching, movement, word motions, find character, line editing, and surround