@0xkahi/pi-arsenal

pi arsenal of useful tools

Packages

Package details

extensionprompt

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:

  1. Defaults built into the extension.
  2. Global configuration at <agent-dir>/extensions/pi-arsenal/config.json.
  3. 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 ($TMUX must be set).
  • The tmux executable 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, default false) — whether the tool is registered and visible to the model.
  • width (number, 10100, default 50) — popup width as a percentage.
  • height (number, 10100, default 50) — popup height as a percentage.
  • fileCommand (string, default nvim) — 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-user paths 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.