Catalog npm
Back to packageRELEASE DETAILS

1.1.0

npm

@0xkahi/pi-model-select

Pi extension that adds /select-model with favourites and provider-filtered model search

model-managementpi-extensionpi-package
Published9 Jun 2026
Direct dependencies8
Transitive dependenciesNot calculated

README

Current package documentation

pi-model-select

Pi extension that adds /select-model: a model picker with favourites plus provider-filtered fuzzy search. By default it renders inline like Pi's built-in /model; it can optionally render as a centered overlay.

Install

Install globally (writes to ~/.pi/agent/settings.json):

pi install npm:@0xkahi/pi-model-select

Or install into the current project only (writes to .pi/settings.json, shareable with your team):

pi install npm:@0xkahi/pi-model-select -l

Pin a specific version:

pi install npm:@0xkahi/pi-model-select@1.0.0

Install directly from GitHub instead of npm:

pi install git:github.com/0xKahi/pi-model-select
pi install git:github.com/0xKahi/pi-model-select@v1.0.0   # pinned

Try without installing

Use -e / --extension to load for a single run without modifying settings:

pi -e .                          # from inside this repo

Manage

pi list                                       # show installed packages
pi update npm:@0xkahi/pi-model-select         # update this package
pi remove npm:@0xkahi/pi-model-select         # uninstall

The package manifest exposes ./src/index.ts as a Pi extension.

Command

/select-model
  • Tab switches between Favourites and Search.
  • ↑/↓ navigates, Enter selects, Esc cancels.
  • Selecting a model calls Pi's model setter, matching /model behavior.
  • Optional direct form: /select-model provider/modelId.

Config files

ScopePath
Global~/.pi/agent/extensions/pi-model-select/config.json (respects PI_CODING_AGENT_DIR)
Project<cwd>/.pi/extensions/pi-model-select/config.json

The extension accepts JSON with comments and trailing commas.

Project config overrides global provider_filter and layout when those keys are present. Favourites are combined from global then project and de-duplicated.

{
  "$schema": "https://raw.githubusercontent.com/0xKahi/pi-model-select/main/config.schema.json",
  "favourite": [
    {
      "provider": "openai-codex",
      "modelId": "gpt-5.5"
    },
    {
      "provider": "anthropic",
      "modelId": "claude-opus-4-7"
    },
    {
      "provider": "opencode-go",
      "modelId": "kimi-k2.6"
    }
  ],
  // Optional. Defaults to "inline", which replaces the editor at the bottom like Pi's /model.
  // Use "overlay" for the previous centered floating card behavior.
  "layout": "inline",
  // Empty array means no filter: all authorized providers are shown.
  "provider_filter": ["openai-codex", "anthropic", "opencode-go", "openrouter"]
}

Config options

KeyTypeDefaultDescription
favourite{ provider: string, modelId: string }[][]Models shown in the Favourites tab. Alias keys favourites, favorite, and favorites are also accepted.
provider_filterstring[][]Provider names shown in Search. Empty means all authorized providers. Project config overrides global when present.
layout"inline" | "overlay""inline"inline replaces the editor at the bottom; overlay shows the centered floating card.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 11

Native requirements
8 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
bun-types
Environment
{
  "local_name": "bun-types",
  "alias": false,
  "peer_metadata": null
}
latestdevelopment
typescript
Environment
{
  "local_name": "typescript",
  "alias": false,
  "peer_metadata": null
}
^5development
@types/node
Environment
{
  "local_name": "@types/node",
  "alias": false,
  "peer_metadata": null
}
^24.0.0development
@biomejs/biome
Environment
{
  "local_name": "@biomejs/biome",
  "alias": false,
  "peer_metadata": null
}
^2.4.15development
@changesets/cli
Environment
{
  "local_name": "@changesets/cli",
  "alias": false,
  "peer_metadata": null
}
^2.31.0development
@earendil-works/pi-ai
Environment
{
  "local_name": "@earendil-works/pi-ai",
  "alias": false,
  "peer_metadata": null
}
^0.79.0development
@earendil-works/pi-tui
Environment
{
  "local_name": "@earendil-works/pi-tui",
  "alias": false,
  "peer_metadata": null
}
^0.79.0development
@earendil-works/pi-coding-agent
Environment
{
  "local_name": "@earendil-works/pi-coding-agent",
  "alias": false,
  "peer_metadata": null
}
^0.79.0development
@earendil-works/pi-ai
Environment
{
  "local_name": "@earendil-works/pi-ai",
  "alias": false,
  "peer_metadata": null
}
*peer
@earendil-works/pi-tui
Environment
{
  "local_name": "@earendil-works/pi-tui",
  "alias": false,
  "peer_metadata": null
}
*peer
@earendil-works/pi-coding-agent
Environment
{
  "local_name": "@earendil-works/pi-coding-agent",
  "alias": false,
  "peer_metadata": null
}
*peer

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "shasum": "cd38c534f8e20e32a84d8a13d116c17912a1f0c7",
  "tarball": "https://registry.npmjs.org/@0xkahi/pi-model-select/-/pi-model-select-1.1.0.tgz",
  "fileCount": 10,
  "integrity": "sha512-LRR7ViQs+FA00yO5+5KPJIr1FtogW5nGDb8i9B+Z4z5rUQXYOZDqTTWZQJv9aUP3MIZwcRMT7Dz1sA32WCMkug==",
  "signatures": [
    {
      "sig": "MEQCIFA0NN40Jbd6vwuCzrScSBPhvrNciYKIHPzkvHZEIC+UAiB+mebrEOg+r+RzxP8rlfQ9X701GTaZjR5thacDmaz6hg==",
      "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
    }
  ],
  "unpackedSize": 32353
}

Repository

PENDING
0xkahi/pi-model-select

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 08:58 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:c7d1345f2f16c5222ef6fece7722e3e6aa32ae25f812ae565e18cc9a4bbfb6ed

Other collected versions

1.1.113 Jun1.0.131 May1.0.029 MayView all collected versions →