@uzunkonak/pi_retry

Pi extension that waits out provider rate limits and resumes the interrupted run once the limit window resets

Packages

Package details

extension

Install @uzunkonak/pi_retry from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@uzunkonak/pi_retry
Package
@uzunkonak/pi_retry
Version
0.2.0
Published
Sep 1, 2026
Downloads
268/mo · 27/wk
Author
uzunkonak
License
MIT
Types
extension
Size
69.7 KB
Dependencies
0 dependencies · 1 peer
Pi manifest JSON
{
  "extensions": [
    "extensions/retry-limit.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi_retry

A pi extension that waits out provider rate limits instead of failing the run, then resumes the interrupted work once the limit window reopens.

Pi's own retry budget is deliberately small — 3 attempts, and anything asking for a delay longer than 60s fails immediately. That is right for a blip and wrong for a five-hour usage window. This extension picks up where that budget ends: it works out when the window reopens, sleeps with a live countdown, and restarts the agent from where it stopped.

Install

pi install npm:@uzunkonak/pi_retry

Or install from git, or try it for a single run without installing at all:

pi install git:github.com/uzunkonak/pi_retry
pi -e npm:@uzunkonak/pi_retry

Use

It works with no configuration. When a run hits a rate limit you get a countdown; press Esc to cancel it. The editor and every command stay live while it counts down.

/retry-limit           # status and current configuration
/retry-limit cancel    # stop waiting, drop the pending retry
/retry-limit now       # skip the wait and resume immediately
/retry-limit wait 5m   # change the fallback wait interval

Consumer subscription wording is understood as well as API rate-limit errors — Try again in ~109 min, resets 11:30pm (Europe/Istanbul), will reset at 3pm — including the timezone, so the countdown is right even when it is not your own.

Exhausted credit or billing quota is not retried — that needs a human, so the extension stops and says so rather than sleeping until the end of the month.

Configuration lives in ~/.pi/agent/retry-limit.json or <project>/.pi/retry-limit.json, with PI_RETRY_LIMIT_* environment overrides. See docs/reference.md for every option, how reset times are detected, and the development setup.

Development

npm install
npm run check   # typecheck + unit tests
npm run test:e2e

License

MIT © Caner Uzunkonak