pi-sumopod-provider
A [pi](https://github.com/earendil-works/pi) extension that adds the [SumoPod](https://sumopod.com) provider and models to pi.
Package details
Install pi-sumopod-provider from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-sumopod-provider- Package
pi-sumopod-provider- Version
0.0.5- Published
- Sep 11, 2026
- Downloads
- 301/mo · 301/wk
- Author
- slainless
- License
- MIT
- Types
- extension
- Size
- 33 KB
- Dependencies
- 0 dependencies · 3 peers
Pi manifest JSON
{
"image": "https://raw.githubusercontent.com/slainless/pi-sumopod-provider/master/assets/lucide--box.png",
"extensions": [
"./extensions/sumopod.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-sumopod-provider
A pi extension that adds the SumoPod provider and models to pi.
Catalog
The catalog is a generated snapshot of the SumoPod model list and model metadata required by pi, including pricing, context limits, reasoning support, vision support, and compatibility settings.
By default, the extension downloads catalog.json from the latest release of this repository. It loads the catalog once and caches it in pi's agent directory:
<pi-agent-dir>/sumopod/catalog-data.json
Subsequent starts use the cached copy. Refresh it when needed:
/sumopod-catalog-refresh
You can also:
- Point pi at another catalog with
/sumopod-catalog-url <url>. - Edit
<pi-agent-dir>/sumopod/catalog-data.jsondirectly. - Host your own compatible
catalog.jsonand configure the extension to use its URL.
[!IMPORTANT] The catalog may lag behind SumoPod's currently available models. Automatic generation is not currently possible because SumoPod's model catalog is behind authentication and Cloudflare protection. Releases therefore contain the latest catalog that could be generated and verified manually.
Technical details
Catalog generation
core/catalog.ts combines:
- The authenticated SumoPod model catalog and discounts.
- The public LiteLLM model catalog.
- Local annotations from
data/annotation.jsonc.
It matches SumoPod models to LiteLLM metadata, removes non-chat models, applies annotations, and produces pi ProviderModelConfig entries. Models that cannot be matched are reported as unmatched rather than included silently.
Reasoning probe and annotations
core/reasoning-probe tests how each model behaves through SumoPod's OpenAI-compatible chat endpoint. It checks which reasoning/thinking request formats are accepted, rejected, ignored, or require special handling.
Though, the results are tracked manually to data/annotation.jsonc. The annotation can provide:
- A LiteLLM model reference when the model name does not match directly.
- The compatibility format pi should use.
- Supported reasoning formats and known rejected formats.
- Model-specific constraints, such as always-on reasoning or field overrides.
Since there is no good heuristic for the probe yet, the annotation so far is only manually handcrafted.
Creating a catalog
The intended workflow is:
Add the new model to
data/annotation.jsonc.Run the reasoning probe to check suitable OpenAI-compatible options:
bun run probe.reportAdd the probe findings back to the model's annotation.
Build the catalog when the annotations are complete:
SUMOPOD_BEARER=... bun run catalogUpload
output/catalog.jsonto a repository release ascatalog.json.
The release asset is then used by the default catalog URL.
Commands
| Command | Description |
|---|---|
/sumopod-catalog-refresh |
Download and cache the catalog from the configured URL. |
/sumopod-catalog-url <url> |
Use a different catalog URL and load it immediately. |
The catalog URL can also be entered interactively when the command is run without an argument.
License
MIT
