@jayteelabs/pi-nous-portal-provider
Pi provider package for Nous Research Portal inference.
Package details
Install @jayteelabs/pi-nous-portal-provider from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@jayteelabs/pi-nous-portal-provider- Package
@jayteelabs/pi-nous-portal-provider- Version
0.2.3- Published
- Jun 5, 2026
- Downloads
- 335/mo · 16/wk
- Author
- jtaningco
- License
- MIT
- Types
- extension
- Size
- 68.4 KB
- Dependencies
- 0 dependencies · 2 peers
Pi manifest JSON
{
"extensions": [
"./extensions/nous-portal/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@jayteelabs/pi-nous-portal-provider
Pi package that registers the nous-portal provider for Nous Research Portal.
Install
pi install npm:@jayteelabs/pi-nous-portal-provider
Usage
# Export NOUS_API_KEY from your shell or secrets manager before running Pi.
pi -p nous-portal -m openai/gpt-5.5
pi -e ./pi-nous-portal-provider --list-models
For Portal OAuth, run Pi and choose the subscription flow:
/login → Use a subscription → Nous Research Portal
For a direct inference key, choose the API-key flow:
/login → Use an API key → Nous Research Portal
Without NOUS_API_KEY or stored Portal OAuth credentials, the provider
registers its static fallback catalog under a direct-key provider alias so Pi
can discover Nous in the API-key /login flow. After an interactive Portal
OAuth login, Pi refreshes its model registry and this extension re-registers
the cached Portal catalog. Interactive sessions also refresh the Portal catalog
registration on session_start.
Configuration
NOUS_API_KEY: direct inference API key.NOUS_PORTAL_BASE_URL: defaults tohttps://portal.nousresearch.com.NOUS_INFERENCE_BASE_URL: defaults tohttps://inference-api.nousresearch.com/v1.NOUS_CLIENT_ID: defaults tohermes-clibecause it doesn't accept anything else currently.NOUS_MIN_KEY_TTL_SECONDS: defaults to1800.
Models
Nous Portal /models is the model allowlist. Matching OpenRouter /models
entries enrich that allowlist with context, pricing, image input, and reasoning
metadata. The static fallback catalog is registered when live discovery is
unavailable with usable credentials, and during unauthenticated startup/session
registration so Pi's API-key login provider discovery can list Nous. Pi filters
custom OAuth provider IDs out of the API-key picker, so this package uses the
internal nous-portal-api-key provider ID for the direct-key login entry while
displaying it as Nous Research Portal. Expired or invalid OAuth credentials
still keep the OAuth provider model list blank. When both stored Portal OAuth
credentials and a direct API key exist, the OAuth catalog takes precedence and
the direct-key alias is cleared so /model shows one Nous model set. See
docs/models.md.
Testing
Run the offline unit tests with npm test. Live provider compatibility checks
are isolated behind npm run test:compat and skip unless the required Nous
model/API-key environment variables are set. See docs/testing.md.