{"skill":{"slug":"model-catalog-updater","displayName":"Api Model list updater","summary":"Query available models from your configured providers and add them to OpenClaw config","description":"---\nname: model-catalog-updater\nversion: 1.2.0\ndescription: Query available models from your configured providers and add them to OpenClaw config\nhomepage: https://github.com/openclaw/skills/model-catalog\nmetadata:\n  model-catalog-updater:\n    emoji: \"📊\"\n    category: \"developer-tools\"\n    config_path: \"C:\\\\Users\\\\zebuM\\\\.openclaw\\\\openclaw.json\"\n    backup_name: \"openclawworking.json\"\n    defaults:\n      contextWindow: 128000\n      maxTokens: 8192\n      reasoningModelPatterns:\n        - \"deepseek-r1\"\n        - \"qwq\"\n        - \"o1\"\n        - \"o3\"\n        - \"reasoning\"\n        - \"think\"\ncommands:\n  - name: model-catalog-updater\n    description: Fetch and add models from a provider to your config\n    options:\n      - name: provider\n        description: Select a provider to fetch models from\n        type: string\n        required: true\n        choices:\n          - name: qwen-portal\n            value: qwen-portal\n          - name: lmstudio\n            value: lmstudio\n          - name: minimax-portal\n            value: minimax-portal\n          - name: xai\n            value: xai\n          - name: openrouter\n            value: openrouter\n          - name: modal-direct\n            value: modal-direct\n          - name: minimax\n            value: minimax\n          - name: google\n            value: google\n          - name: openai-codex\n            value: openai-codex\n          - name: github-copilot\n            value: github-copilot\n          - name: groq\n            value: groq\n          - name: opencode\n            value: opencode\n          - name: zai\n            value: zai\n---\n\n# Model Catalog Updater\n\nFetch available models from your configured API providers and add them to your OpenClaw config.\n\n## How It Works\n\nWhen invoked, this skill:\n\n1. **Reads your config** → Loads providers from `openclaw.json`\n2. **Presents choices** → Shows numbered list of your configured providers\n3. **User selects provider** → Queries `/v1/models` from that provider\n4. **Shows available models** → Lists models with IDs\n5. **User picks models** → Select which to add (comma-separated or 'all')\n6. **Creates backup** → Saves `openclawworking.json` before any edits\n7. **Updates config** → Adds models to both:\n   - `models.providers.{provider}.models[]` — model definitions\n   - `agents.defaults.models.{provider/model-id}` — alias entries\n\n## Usage\n\n**Slash command:**\n- `/model-catalog-updater provider:<dropdown>`\n\n**Natural language:**\n- \"show me available models\"\n- \"add models from openrouter\"\n- \"what models are on lmstudio\"\n\n## Configuration\n\n| Setting | Value |\n|---------|-------|\n| Config path | `C:\\Users\\zebuM\\.openclaw\\openclaw.json` |\n| Backup file | `openclawworking.json` (same directory) |\n| Default context window | 128000 |\n| Default max tokens | 8192 |\n\n## Reasoning Detection\n\nModels are auto-detected as reasoning models if their ID contains:\n- `deepseek-r1`\n- `qwq`\n- `o1`\n- `o3`\n- `reasoning`\n- `think`\n\n## Model Entry Format\n\nAdded to `models.providers.{provider}.models`:\n\n```json\n{\n  \"id\": \"model-id\",\n  \"name\": \"Display Name\",\n  \"reasoning\": false,\n  \"input\": [\"text\"],\n  \"cost\": { \"input\": 0, \"output\": 0, \"cacheRead\": 0, \"cacheWrite\": 0 },\n  \"contextWindow\": 128000,\n  \"maxTokens\": 8192\n}\n```\n\n## Alias Entry Format\n\nAdded to `agents.defaults.models`:\n\n```json\n\"provider/model-id\": {}\n```\n\n(Empty object — user can add `\"alias\": \"short-name\"` manually if desired)\n\n## Example Session\n\n```\n📊 Model Catalog\n\nYour configured providers:\n1. qwen-portal (https://portal.qwen.ai/v1)\n2. lmstudio (http://192.168.56.1:1234/v1)\n3. xai (https://api.x.ai/v1)\n4. openrouter (https://openrouter.ai/api/v1)\n5. modal-direct (https://api.us-west-2.modal.direct/v1)\n6. cloudflare-ai-gateway\n7. minimax\n\nSelect provider [1-7]: 3\n\nFetching models from xai...\n\nAvailable models:\n1. grok-4\n2. grok-4-vision\n3. grok-2-1212\n\nSelect models to add (comma-separated, or 'all'): 1,2\n\n✅ Backup created: openclawworking.json\n✅ Added to models.providers.xai.models:\n   - grok-4\n   - grok-4-vision\n✅ Added to agents.defaults.models:\n   - xai/grok-4\n   - xai/grok-4-vision\n```\n\n## Notes\n\n- Some providers don't expose `/v1/models` (e.g., Cloudflare AI Gateway)\n- Vision models get `\"input\": [\"text\", \"image\"]` automatically if ID contains \"vision\" or \"multimodal\"\n- Restart OpenClaw after adding models to apply changes\n","tags":{"latest":"0.0.1"},"stats":{"comments":0,"downloads":186,"installsAllTime":7,"installsCurrent":0,"stars":0,"versions":1},"createdAt":1773126442499,"updatedAt":1778491803852},"latestVersion":{"version":"0.0.1","createdAt":1773126442499,"changelog":"Update model list (mainly for lmstudio models)","license":"MIT-0"},"metadata":{"setup":[],"os":null,"systems":null},"owner":{"handle":"da-kaine","userId":"s172e83zjdwqhyey8e98qrs0g983h97r","displayName":"Kein-Ayed","image":"https://avatars.githubusercontent.com/u/152936220?v=4"},"moderation":null}