Observed since 21 Oct, 09:00 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
@0xkahi/pi-vim-keys
Vim style input editor for Pi
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

Custom LeaderKey Keybinds -> AppKeybinds

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
pi.vimKeys.altScreenMode in keybinds to scroll and search Pi's fullscreen transcript with Vim-style keys, entered only from normal mode. There is no default binding. Its bottom-border label is ALT-S, colored by colors.altScreen (default #ED7892).r<char> and a persistent REPLACE mode (R) that overtypes until escape, recorded as a single undo step.escape by default, or configure sequences like jj or kj.<leader>e or <leader>oes (e.g. sab, siq).For custom extension keybind registration, see Extension Keybindings.
Example:
{
"keybinds": {
"ctrl+w": "pi.vimKeys.altScreenMode",
"<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"
}
}
| 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 |
| Alt-Screen Mode | Fullscreen transcript navigation, search, entry and exit keys, and Pi keybinding limitations |
| 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 |
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
zodEnvironment{
"local_name": "zod",
"alias": false,
"peer_metadata": null
} | ^4.4.3 | runtime |
bun-typesEnvironment{
"local_name": "bun-types",
"alias": false,
"peer_metadata": null
} | latest | development |
@types/bunEnvironment{
"local_name": "@types/bun",
"alias": false,
"peer_metadata": null
} | latest | development |
typescriptEnvironment{
"local_name": "typescript",
"alias": false,
"peer_metadata": null
} | ^5 | development |
@types/nodeEnvironment{
"local_name": "@types/node",
"alias": false,
"peer_metadata": null
} | ^24.0.0 | development |
@biomejs/biomeEnvironment{
"local_name": "@biomejs/biome",
"alias": false,
"peer_metadata": null
} | ^2.4.15 | development |
@changesets/cliEnvironment{
"local_name": "@changesets/cli",
"alias": false,
"peer_metadata": null
} | ^2.31.0 | development |
@earendil-works/pi-aiEnvironment{
"local_name": "@earendil-works/pi-ai",
"alias": false,
"peer_metadata": null
} | ^0.79.0 | development |
@earendil-works/pi-tuiEnvironment{
"local_name": "@earendil-works/pi-tui",
"alias": false,
"peer_metadata": null
} | ^0.79.0 | development |
@earendil-works/pi-coding-agentEnvironment{
"local_name": "@earendil-works/pi-coding-agent",
"alias": false,
"peer_metadata": null
} | ^0.79.0 | development |
@earendil-works/pi-aiEnvironment{
"local_name": "@earendil-works/pi-ai",
"alias": false,
"peer_metadata": null
} | * | peer |
@earendil-works/pi-tuiEnvironment{
"local_name": "@earendil-works/pi-tui",
"alias": false,
"peer_metadata": null
} | * | peer |
@earendil-works/pi-coding-agentEnvironment{
"local_name": "@earendil-works/pi-coding-agent",
"alias": false,
"peer_metadata": null
} | * | peer |
Source distribution
{
"shasum": "62a4b86307c89bf64c86deae49f121a17b3829a8",
"tarball": "https://registry.npmjs.org/@0xkahi/pi-vim-keys/-/pi-vim-keys-1.0.0.tgz",
"fileCount": 33,
"integrity": "sha512-ud+sudxIWsJfD9/IHfHg9gB8+gL/jZTLvg3Tl8zmQ+RVJx52ubk7SsgCkUe8xEFerTOEVsVFOfoO7hoF3N9krA==",
"signatures": [
{
"sig": "MEYCIQCmthD7j4cYlfd6qF62SFd7ULGXYl3pYpvV+Sn8WmwoeAIhANKJbpHfByj3UaXkHOHxNAcLPJrKeKP/PV5A+wYGz3M1",
"keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
}
],
"unpackedSize": 1569536
}Shared repository data · GitHub
Public sponsor counts have not been collected. These signals belong to the repository owner.
github · 1 observations shown. Missing days are unknown.
| Date / source period | Value | Observed at |
|---|---|---|
| 2026-10-22 | 1 | 2026-10-22T16:31:25.9343490Z |
Observed since 21 Oct, 09:00 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:b7a79c9c5e268c8b59fd40668d4e99570dcc3a9a98e00e648ba374becb8ca9cc