pi-tool-duration

内容来源:README.md(说明文档) · 原始地址 · 查看安装指南

原始内容

pi-tool-duration

Appends [duration: Xs] to slow Pi tool results so the model can tell when a tool actually took time.

hi
[duration: 5.0s]

Why

Pi already shows tool timing in the TUI (Took Xs), but that timing is UI-only. This extension adds the elapsed time to the model-visible tool result for slow calls.

How it works

The extension matches Pi tool_execution_start and tool_result events by toolCallId. When elapsed time is at or above the configured threshold, or a result reports a non-zero exit code, it appends one text block:

[duration: 5.0s]

Scope: Pi tools that emit tool_result events, including built-ins and extension tools. Direct ! / !! shell commands and RPC bash command messages are not tool results and are not annotated.

Install

pi install .                         # local, global settings
pi install -l --approve .            # local, project settings
pi install npm:pi-tool-duration      # after npm publish

Try without installing

From this repo:

pi -e .
# or
pi -e ./extensions/tool-duration/index.ts

Configure

Default threshold: 1000 ms.

PI_TOOL_DURATION_THRESHOLD_MS=0 pi -e .        # annotate every tool result
pi -e . --tool-duration-threshold-ms 500       # annotate tools taking >= 500ms

Invalid threshold values fall back to the default.

Verify

In a session running the extension, ask Pi to use bash:

Use bash to run: sleep 5; echo hi

The model sees:

hi
[duration: 5.0s]

A fast successful command below the threshold stays unchanged. A non-zero exit code is always annotated, even below the threshold.

License

MIT