From fd2b2ec7703d769be7df46d00c799ed2e7ffb3c0 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Sun, 16 Nov 2025 21:01:31 +0100 Subject: [PATCH] Filter model selector by API keys and add user-facing documentation - Model selector now only shows models with configured API keys - Added yellow hint in model selector UI explaining the filtering - Updated README.md to document the filtering behavior in both API Keys and /model sections - Bumped version to 0.7.11 --- package-lock.json | 14 +++++++------- packages/agent/package.json | 6 +++--- packages/ai/package.json | 2 +- packages/coding-agent/CHANGELOG.md | 6 ++++++ packages/coding-agent/README.md | 4 ++++ packages/coding-agent/package.json | 6 +++--- packages/coding-agent/src/tui/model-selector.ts | 6 ++++++ packages/pods/package.json | 4 ++-- packages/proxy/package.json | 2 +- packages/tui/package.json | 2 +- packages/web-ui/package.json | 6 +++--- 11 files changed, 37 insertions(+), 21 deletions(-) diff --git a/package-lock.json b/package-lock.json index 37888a50a..947994f1f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3193,7 +3193,7 @@ }, "packages/agent": { "name": "@mariozechner/pi-agent", - "version": "0.7.10", + "version": "0.7.11", "license": "MIT", "dependencies": { "@mariozechner/pi-ai": "^0.7.10", @@ -3223,7 +3223,7 @@ }, "packages/ai": { "name": "@mariozechner/pi-ai", - "version": "0.7.10", + "version": "0.7.11", "license": "MIT", "dependencies": { "@anthropic-ai/sdk": "^0.61.0", @@ -3270,7 +3270,7 @@ }, "packages/coding-agent": { "name": "@mariozechner/pi-coding-agent", - "version": "0.7.10", + "version": "0.7.11", "license": "MIT", "dependencies": { "@mariozechner/pi-agent": "^0.7.10", @@ -3317,7 +3317,7 @@ }, "packages/pods": { "name": "@mariozechner/pi", - "version": "0.7.10", + "version": "0.7.11", "license": "MIT", "dependencies": { "@mariozechner/pi-agent": "^0.7.10", @@ -3343,7 +3343,7 @@ }, "packages/proxy": { "name": "@mariozechner/pi-proxy", - "version": "0.7.10", + "version": "0.7.11", "dependencies": { "@hono/node-server": "^1.14.0", "hono": "^4.6.16" @@ -3359,7 +3359,7 @@ }, "packages/tui": { "name": "@mariozechner/pi-tui", - "version": "0.7.10", + "version": "0.7.11", "license": "MIT", "dependencies": { "@types/mime-types": "^2.1.4", @@ -3398,7 +3398,7 @@ }, "packages/web-ui": { "name": "@mariozechner/pi-web-ui", - "version": "0.7.10", + "version": "0.7.11", "license": "MIT", "dependencies": { "@lmstudio/sdk": "^1.5.0", diff --git a/packages/agent/package.json b/packages/agent/package.json index 501a2d6bb..9ce3bc943 100644 --- a/packages/agent/package.json +++ b/packages/agent/package.json @@ -1,6 +1,6 @@ { "name": "@mariozechner/pi-agent", - "version": "0.7.10", + "version": "0.7.11", "description": "General-purpose agent with transport abstraction, state management, and attachment support", "type": "module", "main": "./dist/index.js", @@ -18,8 +18,8 @@ "prepublishOnly": "npm run clean && npm run build" }, "dependencies": { - "@mariozechner/pi-ai": "^0.7.10", - "@mariozechner/pi-tui": "^0.7.10" + "@mariozechner/pi-ai": "^0.7.11", + "@mariozechner/pi-tui": "^0.7.11" }, "keywords": [ "ai", diff --git a/packages/ai/package.json b/packages/ai/package.json index d6abdacc6..9d047cd63 100644 --- a/packages/ai/package.json +++ b/packages/ai/package.json @@ -1,6 +1,6 @@ { "name": "@mariozechner/pi-ai", - "version": "0.7.10", + "version": "0.7.11", "description": "Unified LLM API with automatic model discovery and provider configuration", "type": "module", "main": "./dist/index.js", diff --git a/packages/coding-agent/CHANGELOG.md b/packages/coding-agent/CHANGELOG.md index daaf283a3..a77cccdbe 100644 --- a/packages/coding-agent/CHANGELOG.md +++ b/packages/coding-agent/CHANGELOG.md @@ -2,6 +2,12 @@ ## [Unreleased] +## [0.7.11] - 2025-11-16 + +### Changed + +- The `/model` selector now filters models based on available API keys. Only models for which API keys are configured in environment variables are shown. This prevents selecting models that would fail due to missing credentials. A yellow hint is displayed at the top of the selector explaining this behavior. ([#19](https://github.com/badlogic/pi-mono/pull/19)) + ## [0.7.10] - 2025-11-14 ### Added diff --git a/packages/coding-agent/README.md b/packages/coding-agent/README.md index cdebfd7c8..be74e9a5e 100644 --- a/packages/coding-agent/README.md +++ b/packages/coding-agent/README.md @@ -62,6 +62,8 @@ export ZAI_API_KEY=... If no API key is set, the CLI will prompt you to configure one on first run. +**Note:** The `/model` command only shows models for which API keys are configured in your environment. If you don't see a model you expect, check that you've set the corresponding environment variable. + ## Slash Commands The CLI supports several commands to control its behavior: @@ -70,6 +72,8 @@ The CLI supports several commands to control its behavior: Switch models mid-session. Opens an interactive selector where you can type to search (by provider or model name), use arrow keys to navigate, Enter to select, or Escape to cancel. +The selector only displays models for which API keys are configured in your environment (see API Keys section). + ### /thinking Adjust thinking/reasoning level for supported models (Claude Sonnet 4, GPT-5, Gemini 2.5). Opens an interactive selector where you can use arrow keys to navigate, Enter to select, or Escape to cancel. diff --git a/packages/coding-agent/package.json b/packages/coding-agent/package.json index 640de7e65..60b3ec458 100644 --- a/packages/coding-agent/package.json +++ b/packages/coding-agent/package.json @@ -1,6 +1,6 @@ { "name": "@mariozechner/pi-coding-agent", - "version": "0.7.10", + "version": "0.7.11", "description": "Coding agent CLI with read, bash, edit, write tools and session management", "type": "module", "bin": { @@ -21,8 +21,8 @@ "prepublishOnly": "npm run clean && npm run build" }, "dependencies": { - "@mariozechner/pi-agent": "^0.7.10", - "@mariozechner/pi-ai": "^0.7.10", + "@mariozechner/pi-agent": "^0.7.11", + "@mariozechner/pi-ai": "^0.7.11", "chalk": "^5.5.0", "diff": "^8.0.2", "glob": "^11.0.3" diff --git a/packages/coding-agent/src/tui/model-selector.ts b/packages/coding-agent/src/tui/model-selector.ts index d9eabd6a6..b6bd1704e 100644 --- a/packages/coding-agent/src/tui/model-selector.ts +++ b/packages/coding-agent/src/tui/model-selector.ts @@ -35,6 +35,12 @@ export class ModelSelectorComponent extends Container { this.addChild(new Text(chalk.blue("─".repeat(80)), 0, 0)); this.addChild(new Spacer(1)); + // Add hint about API key filtering + this.addChild( + new Text(chalk.yellow("Only showing models with configured API keys (see README for details)"), 0, 0), + ); + this.addChild(new Spacer(1)); + // Create search input this.searchInput = new Input(); this.searchInput.onSubmit = () => { diff --git a/packages/pods/package.json b/packages/pods/package.json index c01bfaa3a..cd738dda1 100644 --- a/packages/pods/package.json +++ b/packages/pods/package.json @@ -1,6 +1,6 @@ { "name": "@mariozechner/pi", - "version": "0.7.10", + "version": "0.7.11", "description": "CLI tool for managing vLLM deployments on GPU pods", "type": "module", "bin": { @@ -34,7 +34,7 @@ "node": ">=20.0.0" }, "dependencies": { - "@mariozechner/pi-agent": "^0.7.10", + "@mariozechner/pi-agent": "^0.7.11", "chalk": "^5.5.0" }, "devDependencies": {} diff --git a/packages/proxy/package.json b/packages/proxy/package.json index aaabb188d..f3abf1eb3 100644 --- a/packages/proxy/package.json +++ b/packages/proxy/package.json @@ -1,6 +1,6 @@ { "name": "@mariozechner/pi-proxy", - "version": "0.7.10", + "version": "0.7.11", "type": "module", "description": "CORS and authentication proxy for pi-ai", "main": "dist/index.js", diff --git a/packages/tui/package.json b/packages/tui/package.json index 0906e2aa1..3f17b2a15 100644 --- a/packages/tui/package.json +++ b/packages/tui/package.json @@ -1,6 +1,6 @@ { "name": "@mariozechner/pi-tui", - "version": "0.7.10", + "version": "0.7.11", "description": "Terminal User Interface library with differential rendering for efficient text-based applications", "type": "module", "main": "dist/index.js", diff --git a/packages/web-ui/package.json b/packages/web-ui/package.json index c53c9d6df..f88b23908 100644 --- a/packages/web-ui/package.json +++ b/packages/web-ui/package.json @@ -1,6 +1,6 @@ { "name": "@mariozechner/pi-web-ui", - "version": "0.7.10", + "version": "0.7.11", "description": "Reusable web UI components for AI chat interfaces powered by @mariozechner/pi-ai", "type": "module", "main": "dist/index.js", @@ -18,8 +18,8 @@ }, "dependencies": { "@lmstudio/sdk": "^1.5.0", - "@mariozechner/pi-ai": "^0.7.10", - "@mariozechner/pi-tui": "^0.7.10", + "@mariozechner/pi-ai": "^0.7.11", + "@mariozechner/pi-tui": "^0.7.11", "docx-preview": "^0.3.7", "jszip": "^3.10.1", "lucide": "^0.544.0",