migrate cc-config to chezmoi: add all skills, agents, and openclaw installer
- Add 4 missing skills: chromedp-alpine-container, claude-memory-api, openclaw-custom-model-provider, webrtc-turn-shared-secret - Add 9 custom agents: sre, dba, devops-engineer, platform-engineer, security-engineer, network-engineer, observability-engineer, home-automation-engineer, cluster-health-checker - Add openclaw-install.sh: standalone script to clone dotfiles and install skills/agents/hooks/settings to OpenClaw's home directory Replaces the cc-config NFS volume + sync.sh approach
This commit is contained in:
parent
ba3ec6ced5
commit
c95ffa03c5
16 changed files with 1013 additions and 2 deletions
155
dot_claude/skills/openclaw-custom-model-provider/SKILL.md
Normal file
155
dot_claude/skills/openclaw-custom-model-provider/SKILL.md
Normal file
|
|
@ -0,0 +1,155 @@
|
|||
---
|
||||
name: openclaw-custom-model-provider
|
||||
description: |
|
||||
Configure custom model providers in OpenClaw (openclaw.ai). Use when:
|
||||
(1) adding a new LLM provider (Llama API, LM Studio, custom proxy) to OpenClaw,
|
||||
(2) changing the default model in OpenClaw, (3) enabling/disabling tools and
|
||||
commands in OpenClaw, (4) user mentions openclaw.json or openclaw configuration.
|
||||
Covers the models.providers JSON structure, agent defaults, and tool permissions.
|
||||
author: Claude Code
|
||||
version: 1.0.0
|
||||
date: 2026-02-16
|
||||
---
|
||||
|
||||
# OpenClaw Custom Model Provider Configuration
|
||||
|
||||
## Problem
|
||||
OpenClaw supports custom OpenAI-compatible model providers, but the configuration
|
||||
structure requires checking multiple documentation pages to assemble correctly.
|
||||
|
||||
## Context / Trigger Conditions
|
||||
- User wants to add a new LLM provider to OpenClaw
|
||||
- User has an API key for Llama API, OpenRouter, LM Studio, or another OpenAI-compatible service
|
||||
- User wants to change the default model OpenClaw uses
|
||||
- User wants to enable all tools/commands (remove denyCommands restrictions)
|
||||
|
||||
## Solution
|
||||
|
||||
### Config File Location
|
||||
`~/.openclaw/openclaw.json`
|
||||
|
||||
### Adding a Custom Provider
|
||||
|
||||
Add to the `models.providers` object:
|
||||
|
||||
```json
|
||||
{
|
||||
"models": {
|
||||
"mode": "merge",
|
||||
"providers": {
|
||||
"my-provider": {
|
||||
"baseUrl": "https://api.example.com/compat/v1",
|
||||
"apiKey": "YOUR_API_KEY",
|
||||
"api": "openai-completions",
|
||||
"models": [
|
||||
{
|
||||
"id": "model-id",
|
||||
"name": "Display Name",
|
||||
"reasoning": false,
|
||||
"input": ["text"],
|
||||
"cost": {
|
||||
"input": 0,
|
||||
"output": 0,
|
||||
"cacheRead": 0,
|
||||
"cacheWrite": 0
|
||||
},
|
||||
"contextWindow": 200000,
|
||||
"maxTokens": 8192
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Key fields:**
|
||||
- `api`: Protocol — `"openai-completions"` | `"openai-responses"` | `"anthropic-messages"` | `"google-generative-ai"`
|
||||
- `mode`: `"merge"` (default, keeps built-in providers) or `"replace"` (only custom)
|
||||
- `cost`: Set all to `0` for free/self-hosted models
|
||||
- Model reference format: `provider-name/model-id` (e.g., `llama-as-openai/Llama-4-Maverick-17B-128E-Instruct-FP8`)
|
||||
|
||||
### Setting Default Model
|
||||
|
||||
```json
|
||||
{
|
||||
"agents": {
|
||||
"defaults": {
|
||||
"model": {
|
||||
"primary": "my-provider/model-id",
|
||||
"fallbacks": ["ollama/local-model"]
|
||||
},
|
||||
"models": {
|
||||
"my-provider/model-id": {},
|
||||
"ollama/local-model": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Enabling All Tools/Commands
|
||||
|
||||
To remove tool restrictions:
|
||||
|
||||
```json
|
||||
{
|
||||
"commands": {
|
||||
"native": true,
|
||||
"nativeSkills": true
|
||||
},
|
||||
"gateway": {
|
||||
"nodes": {
|
||||
"denyCommands": []
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Default `denyCommands` blocks: `camera.snap`, `camera.clip`, `screen.record`,
|
||||
`calendar.add`, `contacts.add`, `reminders.add`.
|
||||
|
||||
### Common Provider Examples
|
||||
|
||||
**Llama API:**
|
||||
```json
|
||||
"llama-as-openai": {
|
||||
"baseUrl": "https://api.llama.com/compat/v1",
|
||||
"apiKey": "LLM|...",
|
||||
"api": "openai-completions"
|
||||
}
|
||||
```
|
||||
|
||||
**Local Ollama:**
|
||||
```json
|
||||
"ollama": {
|
||||
"baseUrl": "http://127.0.0.1:11434/v1",
|
||||
"apiKey": "none",
|
||||
"api": "openai-completions"
|
||||
}
|
||||
```
|
||||
|
||||
**LM Studio:**
|
||||
```json
|
||||
"lmstudio": {
|
||||
"baseUrl": "http://127.0.0.1:1234/v1",
|
||||
"apiKey": "lmstudio",
|
||||
"api": "openai-responses"
|
||||
}
|
||||
```
|
||||
|
||||
## Verification
|
||||
- Restart OpenClaw after config changes
|
||||
- Run `openclaw` and check that the new model appears in model selection
|
||||
- Send a test message to verify the provider responds
|
||||
|
||||
## Notes
|
||||
- `mode: "merge"` is the default and recommended — it keeps built-in providers alongside custom ones
|
||||
- Optional fields: `authHeader` (boolean), `headers` (object for custom HTTP headers)
|
||||
- Set `reasoning: true` for models that support chain-of-thought (e.g., DeepSeek R1)
|
||||
- OpenClaw docs: https://docs.openclaw.ai/gateway/configuration-reference.md
|
||||
|
||||
## References
|
||||
- [OpenClaw Configuration Reference](https://docs.openclaw.ai/gateway/configuration-reference.md)
|
||||
- [OpenClaw Configuration Examples](https://docs.openclaw.ai/gateway/configuration-examples.md)
|
||||
- [OpenClaw Model Providers](https://docs.openclaw.ai/concepts/model-providers.md)
|
||||
Loading…
Add table
Add a link
Reference in a new issue