pi-gpt-cache
v0.1.0
Published
Pi extension that adds prompt_cache_key to OpenAI Responses API requests for better prompt caching.
Downloads
40
Maintainers
Readme
pi-gpt-cache
A Pi package that improves OpenAI Responses API prompt caching by adding prompt_cache_key to OpenAI provider requests.
What it does
This package registers a Pi extension that overrides the existing openai provider's openai-responses streaming implementation. It keeps Pi's built-in OpenAI models, delegates request handling to Pi's built-in streamSimpleOpenAIResponses, and injects prompt_cache_key into the final Responses API payload.
The cache key is Pi's options.sessionId, matching the Codex client's default behavior of deriving promptCacheKey from the session ID. Requests from the same Pi session can share OpenAI prompt-cache affinity. If another hook already sets prompt_cache_key, this extension leaves that value unchanged.
Installation
Install as a Pi package:
pi install npm:pi-gpt-cacheFor a project-local install:
pi install -l npm:pi-gpt-cacheTo test directly from a checkout before publishing:
pi -e ./extensions/openai-responses-prompt-cache.ts
# or
pi install ./path/to/pi-gpt-cacheConfiguration
No configuration is required. The prompt cache key always comes from the Pi session id.
Repository layout
extensions/openai-responses-prompt-cache.ts- Pi extension entrypoint included in the published npm package.
How it works
The extension calls:
pi.registerProvider("openai", {
api: "openai-responses",
streamSimple(...) {
// delegates to streamSimpleOpenAIResponses(...)
// and adds prompt_cache_key to the payload
},
});Because the provider override does not define models, Pi preserves its existing OpenAI model list and only replaces the streaming implementation.
Development
Preview the npm package contents:
npm run pack:dry-runPublish when ready:
npm publishMake sure the package name in package.json is available on npm, or rename it before publishing.
License
MIT
