@0xkahi/pi-arsenal
pi arsenal of useful tools
Package details
Install @0xkahi/pi-arsenal from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@0xkahi/pi-arsenal- Package
@0xkahi/pi-arsenal- Version
0.0.3- Published
- Jul 21, 2026
- Downloads
- 235/mo · 235/wk
- Author
- 0xkahi
- License
- unknown
- Types
- extension, prompt
- Size
- 20.1 KB
- Dependencies
- 3 dependencies · 3 peers
Pi manifest JSON
{
"extensions": [
"./index.ts"
],
"prompts": [
"./prompts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-arsenal
A multi-tool Pi extension with opt-in, configurable tools.
Installation
Add @0xkahi/pi-arsenal to your Pi package dependencies and ensure it is listed in your Pi configuration so the extension loads at session start.
pi install npm:@0xkahi/pi-arsenal
Configuration
pi-arsenal reads layered JSON configuration from the following locations:
- Defaults built into the extension.
- Global configuration at
<agent-dir>/extensions/pi-arsenal/config.json. - Trusted project configuration at
<project-root>/.pi/extensions/pi-arsenal/config.json, applied only when the project is trusted.
Feature objects are shallow-merged, so a project override only replaces the fields it specifies.
JSON Schema
The generated schema at assets/config.schema.json documents all supported configuration fields and can be referenced from your configuration file:
{
"$schema": "https://raw.githubusercontent.com/0xKahi/pi-arsenal/main/assets/config.schema.json"
}
tmux_popup tool
Open an existing file in a non-blocking tmux popup editor.
Requirements
- Pi must be running inside a tmux session (
$TMUXmust be set). - The
tmuxexecutable must be available on$PATH.
Configuration
{
"$schema": "https://raw.githubusercontent.com/0xKahi/pi-arsenal/main/assets/config.schema.json",
"tmux_popup": {
"enabled": true,
"width": 50,
"height": 50,
"fileCommand": "nvim"
}
}
enabled(boolean, defaultfalse) — whether the tool is registered and visible to the model.width(number,10–100, default50) — popup width as a percentage.height(number,10–100, default50) — popup height as a percentage.fileCommand(string, defaultnvim) — command prefix used to open the file. May include arguments, e.g."code --wait".
Path contract
The tool accepts a single filePath argument:
- Must resolve to an absolute path.
- Optional leading
@is stripped (@/path/to/file→/path/to/file). - Current-user home paths (
~/...) are expanded. - Relative paths and
~other-userpaths are rejected. - The path must exist and resolve to a file (not a directory).
Trust boundary
The fileCommand prefix is loaded from your trusted global or trusted project configuration and is executed as a shell command prefix. Only enable tmux_popup with commands you trust.
Behavior
The tool spawns tmux display-popup -E as a detached process and returns as soon as tmux starts. It does not wait for the editor to exit, so the popup remains open while the agent continues.