@opperai/pi-provider
Opper AI gateway provider and tools for the pi coding agent
Package details
Install @opperai/pi-provider from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@opperai/pi-provider- Package
@opperai/pi-provider- Version
1.0.2- Published
- Apr 23, 2026
- Downloads
- 373/mo · 126/wk
- Author
- gsandahl
- License
- MIT
- Types
- extension
- Size
- 45.1 KB
- Dependencies
- 0 dependencies · 3 peers
Pi manifest JSON
{
"extensions": [
"./extensions/provider.ts",
"./extensions/tools.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@opperai/pi-provider
Opper AI gateway provider and tools for the pi coding agent.
Routes LLM requests through Opper, an AI control plane with:
- 260+ models across 22 providers behind a single
OPPER_API_KEY - European endpoints (AWS EU, Evroc, Berget) for data residency
- Per-session span tracing — every pi session becomes a parent span with all LLM calls linked underneath
- Optional server-side controls: guardrails, approved model governance, budgets, intelligent routing
Install
pi install npm:@opperai/pi-provider
Then set your API key (get one at opper.ai):
export OPPER_API_KEY=your-key
What's included
Two extensions are registered automatically:
provider
Registers an opper provider with 260+ models. Use /model inside pi to switch to any Opper model.
- Streams via Opper's OpenAI-compatible
/v3/compat/chat/completions - Loads models dynamically from
/v3/modelsat startup (hardcoded fallback if unavailable) - Creates a session span on start, closes it on shutdown — all LLM calls are linked under it in Opper's tracing UI
tools
Registers multimodal LLM-callable tools backed by Opper:
| Tool | Description |
|---|---|
opper_generate_image |
Generate images from a text prompt |
opper_analyze_image |
Analyze an image file with a vision model |
opper_text_to_speech |
Convert text to speech, saves audio to disk |
opper_speech_to_text |
Transcribe an audio file |
opper_web_search |
Search the web |
opper_web_fetch |
Fetch a URL as markdown |
opper_embed |
Generate text embeddings |
Load only one extension
Use pi's package filtering to load just the provider or just the tools:
# Provider only
pi install npm:@opperai/pi-provider
# then in .pi/settings.json:
{
"packages": [
{
"source": "npm:@opperai/pi-provider",
"extensions": ["extensions/provider.ts"]
}
]
}
# Tools only
{
"packages": [
{
"source": "npm:@opperai/pi-provider",
"extensions": ["extensions/tools.ts"]
}
]
}
Or try without installing:
OPPER_API_KEY=your-key pi -e npm:@opperai/pi-provider
Environment variables
| Variable | Required | Description |
|---|---|---|
OPPER_API_KEY |
Yes | Auth for all Opper API calls |
OPPER_AGENT_NAME |
No | Override the framework name sent in headers (default: pi-code) |
PI_IMAGE_SAVE_MODE |
No | Default image save mode: tmp, project, global, or custom |
PI_IMAGE_SAVE_DIR |
No | Directory for custom save mode |