@matheusbbarni/pi-run-timer
A Pi extension that shows how long the current run has been going.
Package details
Install @matheusbbarni/pi-run-timer from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@matheusbbarni/pi-run-timer- Package
@matheusbbarni/pi-run-timer- Version
0.1.3- Published
- Aug 26, 2026
- Downloads
- 601/mo · 25/wk
- Author
- matheusbbarni
- License
- MIT
- Types
- extension
- Size
- 14.8 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"extensions": [
"index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@matheusbbarni/pi-run-timer
Live elapsed time for the current Pi run.
A compact timer sits above the editor:
Running • 3m9s
Worked • 3m9s
The clock starts when you submit a prompt, keeps ticking across retries and compaction, and holds the last duration when the run finishes. The next prompt starts it over.
Features
- Shows
Running • 3m9swhile a run is in progress - Switches off the live widget when the run settles and leaves
Worked • 3m9sin the transcript - Keeps running while async pi-subagents are still working, then records the full wall time
- Also writes the same label to Pi's working message and footer status
- Stays visible with themes such as amp-themes that hide the built-in working row
- Writes a
Worked • 3m9sline into the transcript when a run settles - Also records the time if you quit mid-run
- No-ops the live widget in print/JSON mode; still prints the duration on stderr
Install
pi install npm:@matheusbbarni/pi-run-timer
From this repo:
pi -e ./pi-run-timer
Or as a local package:
pi install ./pi-run-timer
[!TIP] If Pi is already open, run
/reload.
How it works
This is a widget, not Pi's built-in working row. Themes that replace the streaming chrome still show the timer because it renders above the editor.
Vanilla Pi also gets the same label on the working message and in the footer, so the duration is visible even without the widget.
When a run finishes, a muted Worked • 3m9s line is appended to the session. That entry is not sent to the model, so you can scroll back and compare run times.
Development
npm install
npm test
npm run typecheck