pi-experientiallabs

Pi extension for the Experiential Labs inference provider

Packages

Package details

extension

Install pi-experientiallabs from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-experientiallabs
Package
pi-experientiallabs
Version
0.1.4
Published
Sep 18, 2026
Downloads
484/mo · 227/wk
Author
xyenon
License
MIT
Types
extension
Size
37.4 KB
Dependencies
0 dependencies · 2 peers
Pi manifest JSON
{
  "extensions": [
    "./src/index.ts"
  ]
}

Security note

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

README

pi-experientiallabs

npm version

A Pi extension that registers Experiential Labs as an inference provider, using the OpenAI Responses API, dynamic model discovery, and showing your remaining credit balance in the status line while an Experiential Labs model is active.

# via NPM
pi install npm:pi-experientiallabs

[!IMPORTANT] As of v83, Pi only creates and updates provider extensions' model caches when launched interactively. If you mostly use Pi in headless or non-interactive environments, open the TUI whenever you want to get new models or updated metadata.

Usage

  • Mint an xpl_… key at API Keys.
  • Set EXPLABS_API_KEY, then open pi. You can also send /login and pick Experiential Labs.
  • For a self-hosted gateway, set EXPLABS_BASE_URL (with or without /v1). The default is https://api.experientiallabs.ai/v1.

Pick an Experiential Labs model by sending /model and filtering by either provider name explabs or a slug like claude-fable-5.1.

After credentials are configured, Pi discovers available models and persists the latest successful catalog in its standard model store. A previously discovered catalog remains available when a later refresh fails. The catalog is the public tool-capable text models, plus your organization's custom and local models when a key is present. Batch slugs are omitted.

Pi restores the session model by requiring both the catalog entry and a configured-auth snapshot, but that snapshot is filled in asynchronously. When a session recorded on explabs loses that race — and other extensions doing startup work make it more likely — Pi falls back to its default model and warns Could not restore model explabs/<slug>. On session_start this extension waits briefly for the provider to become available again and re-selects the recorded model, so resuming such a session keeps you on the model you left off with.

While an Experiential Labs model is active, your remaining credit balance is shown in the status line (total_credits − total_usage from GET /api/v1/credits). It refreshes after each turn. The line is cleared if there is no key, the request fails, or you switch away from explabs.

Inference uses POST /v1/responses. Do not write the raw key into models.json; Pi interpolates EXPLABS_API_KEY at request time.

License

MIT