$ cat ~/map/pi-vterm.md
pi-vterm
Runs pi in project-rooted Emacs vterm buffers: session resume, @file insertion via Emacs completion, and Emacs-like copy mode.
tools✓ Sep 14
Facts
- repository
- github.com/snowiow/pi-vterm ↗
- GitHub Stars
- ★ 0
- Forks
- 0
- license
- MIT
- npm / mo
- —
- last push
- Sep 12, 2026
install
use-package with package-vc from https://github.com/snowiow/pi-vterm (or a local checkout via :load-path); requires Emacs 28.1+, emacs-libvterm, and the pi executable on exec-path## TL;DR
Runs pi in project-rooted Emacs vterm buffers, keeping pi's native terminal interface while adding per-project buffer names, @file insertion via Emacs completion, and Emacs-like copy-mode behavior.
## Key points
- $Starts pi in the current project.el project with recognizable per-project buffer names; M-x pi-vterm starts a new session and M-x pi-vterm-resume resumes with pi's resume arguments (-r by default).
- $M-x pi-vterm-insert-file selects a file using Emacs completion and inserts a relative @file mention into pi.
- $vterm-copy-mode improvements: displayed newlines are preserved when copying TUI output, and line movement, the cursor, and the region behave more like a regular Emacs buffer; select text normally and press RET to copy the selection and leave copy mode.
- $M-x pi-vterm-mode enables the copy-mode improvements in an existing vterm buffer that is already running pi.
- $Customizable through customize-group pi-vterm: pi-vterm-executable, pi-vterm-arguments, pi-vterm-resume-arguments, pi-vterm-buffer-name, pi-vterm-project-buffer-name-format, and pi-vterm-remap-region-face.
- $The package intentionally defines no default global bindings.
## FAQ
Q Does pi-vterm replace pi's TUI?
No — pi keeps its native terminal interface inside the vterm buffer; the package improves the surrounding Emacs integration such as project-rooted buffers, file insertion, and copy-mode behavior.
Q Are there default keybindings?
No — the package intentionally defines no default global bindings; the README's use-package example binds pi-vterm, pi-vterm-resume, and pi-vterm-insert-file under the C-c a prefix.
## References
## Related entries
$ dsh-pi-agent
DeepSeek Harness (DSH) AgentFactory that swaps DSH's native agent loop for a headless pi --mode rpc child, so DSH's web UI, sessions, hooks, and presets keep working with pi's minimal prompt and four tools.
$ pi-acp
Community ACP (Agent Client Protocol) adapter that bridges JSON-RPC 2.0 between ACP clients such as the Zed editor and Pi running in RPC mode over stdio.
$ pi-librenms
LibreNMS network-monitoring tools for pi: devices, ports, alerts, and Oxidized configs over the REST API, no MCP layer.
## Guides
Last updated: Sep 14, 2026