@zerodawn/pi-litellm-discovery
v0.1.2
Published
Pi extension that discovers models from a LiteLLM gateway and registers them as a provider.
Maintainers
Readme
@zerodawn/pi-litellm-discovery
Pi extension that fetches models from a LiteLLM gateway and registers them as a custom provider at startup.
Install
Pi package install:
pi install npm:@zerodawn/pi-litellm-discoveryOptional helper command install via npm:
npm install -g @zerodawn/pi-litellm-discoveryThat exposes:
pi-litellm-devenvLocal development from this monorepo:
pi -e ./packages/litellm-discoveryRepo-local helper script:
./packages/litellm-discovery/bin/pi-litellm-devenvRequired environment
PI_LITELLM_DISCOVERY_BASE_URL: LiteLLM base URL, for examplehttps://litellm.example.com/v1- one of:
PI_LITELLM_DISCOVERY_API_KEYPI_LITELLM_DISCOVERY_API_KEY_CMD
Optional:
PI_LITELLM_DISCOVERY_PROVIDER: provider id shown in Pi, defaultlitellm-discoveryPI_LITELLM_DISCOVERY_NAME: provider label shown in Pi, defaultLiteLLM Discovery
Example
Direct key:
export PI_LITELLM_DISCOVERY_BASE_URL='https://litellm.lan.kappen.io/v1'
export PI_LITELLM_DISCOVERY_API_KEY='...'
pi -e ./packages/litellm-discoveryShell command for the key:
export PI_LITELLM_DISCOVERY_BASE_URL='https://litellm.lan.kappen.io/v1'
export PI_LITELLM_DISCOVERY_PROVIDER='litellm-devenv'
export PI_LITELLM_DISCOVERY_NAME='LiteLLM Devenv'
export PI_LITELLM_DISCOVERY_API_KEY_CMD='infisical run --log-level error --silent --project-config-dir=/data/private/devenv --env=prod --path=/devenv/litellm -- sh -c '\''printf %s "$LITELLM_MASTER_KEY"'\'''
pi -e ./packages/litellm-discoveryHelper script with the same defaults:
./packages/litellm-discovery/bin/pi-litellm-devenvInstalled helper command after npm install -g:
pi-litellm-devenvOverride the devenv repo path if needed:
DEVENV_REPO=/some/other/devenv pi-litellm-devenvAlias
If you want this as your normal shortcut, add this once to your shell profile:
alias pi-dev='pi-litellm-devenv'Then use:
pi-devBehavior
At startup the extension:
- fetches
${PI_LITELLM_DISCOVERY_BASE_URL}/models - reads
data[].id - registers the result as an OpenAI-compatible Pi provider
If discovery fails, Pi continues to start and the extension prints a warning.
Notes
- the discovered models are currently registered with
reasoning: false - model metadata falls back to conservative defaults when LiteLLM does not
expose
context_windowormax_tokens - reopen
/modelor restart/reload Pi after changing environment values
