OpenClaw
| Channel | Revision | Published | Runs on |
|---|---|---|---|
| latest/edge | 13 | Yesterday |
juju deploy openclaw --channel edge
Deploy universal operators easily with Juju, the Universal Operator Lifecycle Manager.
Platform:
-
ai-api-key | string
API key for the selected AI provider. Required for most providers:
- anthropic: Anthropic API key
- openai: OpenAI API key
- google: Google Gemini API key
- opencode: OpenCode API key
- github-copilot: GitHub personal access token
- openrouter: OpenRouter API key
- xai: xAI API key
- groq: Groq API key
- cerebras: Cerebras API key
- mistral: Mistral API key
- zai: Z.AI API key
- vercel-ai-gateway: Vercel AI Gateway API key Not required for: ollama (local), bedrock (AWS credentials), openai-codex (OAuth)
Note: API keys are stored securely in auth-profiles.json, not in environment variables.
-
ai-base-url | string
Custom API base URL for OpenAI-compatible providers. Use this to connect to local AI services like LM Studio, vLLM, FastChat, etc. Examples:
- LM Studio: http://localhost:1234/v1
- vLLM: http://localhost:8000/v1
- Text Generation WebUI: http://localhost:5000/v1 Leave empty to use default provider endpoints.
-
ai-model | string
AI model(s) to use. Supports:
- Single model: claude-opus-4-5
- Multiple models (comma-separated): gemini-3-flash-preview,gemini-3-pro-preview,gemini-2.5-pro
When multiple models are provided:
- First model becomes the primary (system default)
- Remaining models are added as fallbacks
- All models use the configured ai-provider
Models are stored as provider/model format (e.g., anthropic/claude-opus-4-5).
For models from different providers, use separate slots (ai0-provider/ai0-model, etc.) with each provider's API key.
Examples:
- Single: claude-opus-4-5
- Multiple same provider: gpt-4,gpt-3.5-turbo,gpt-4o-mini
- GitHub Copilot aggregator: gemini-3-flash-preview,claude-haiku-4.5,gpt-4
-
ai-provider | string
Primary AI model provider. Supported providers:
- anthropic: Anthropic Claude models
- openai: OpenAI GPT models
- openai-codex: OpenAI Codex (requires OAuth)
- google: Google Gemini models
- opencode: OpenCode Zen models
- github-copilot: GitHub Copilot/Models API
- openrouter: OpenRouter aggregator
- xai: xAI models
- groq: Groq models
- cerebras: Cerebras models
- mistral: Mistral AI models
- zai: Z.AI (GLM) models
- vercel-ai-gateway: Vercel AI Gateway
- ollama: Local Ollama models (no API key needed)
- bedrock: AWS Bedrock (uses AWS credentials)
-
ai0-api-key | string
API key for AI model slot 0
-
ai0-base-url | string
Custom API base URL for AI model slot 0 (for OpenAI-compatible local services)
-
ai0-model | string
AI model(s) for slot 0. Supports single or comma-separated models. All models in this slot use ai0-provider. Example: gpt-4,gpt-3.5-turbo,gpt-4o-mini
-
ai0-provider | string
AI provider for model slot 0. See ai-provider for supported providers.
-
ai1-api-key | string
API key for AI model slot 1
-
ai1-base-url | string
Custom API base URL for AI model slot 1 (for OpenAI-compatible local services)
-
ai1-model | string
AI model(s) for slot 1 (supports comma-separated)
-
ai1-provider | string
AI provider for model slot 1. See ai-provider for supported providers.
-
ai2-api-key | string
API key for AI model slot 2
-
ai2-base-url | string
Custom API base URL for AI model slot 2 (for OpenAI-compatible local services)
-
ai2-model | string
AI model(s) for slot 2 (supports comma-separated)
-
ai2-provider | string
AI provider for model slot 2. See ai-provider for supported providers.
-
ai3-api-key | string
API key for AI model slot 3
-
ai3-base-url | string
Custom API base URL for AI model slot 3 (for OpenAI-compatible local services)
-
ai3-model | string
AI model(s) for slot 3 (supports comma-separated)
-
ai3-provider | string
AI provider for model slot 3. See ai-provider for supported providers.
-
ai4-api-key | string
API key for AI model slot 4
-
ai4-base-url | string
Custom API base URL for AI model slot 4 (for OpenAI-compatible local services)
-
ai4-model | string
AI model(s) for slot 4 (supports comma-separated)
-
ai4-provider | string
AI provider for model slot 4. See ai-provider for supported providers.
-
ai5-api-key | string
API key for AI model slot 5
-
ai5-base-url | string
Custom API base URL for AI model slot 5 (for OpenAI-compatible local services)
-
ai5-model | string
AI model(s) for slot 5 (supports comma-separated)
-
ai5-provider | string
AI provider for model slot 5. See ai-provider for supported providers.
-
ai6-api-key | string
API key for AI model slot 6
-
ai6-base-url | string
Custom API base URL for AI model slot 6 (for OpenAI-compatible local services)
-
ai6-model | string
AI model(s) for slot 6 (supports comma-separated)
-
ai6-provider | string
AI provider for model slot 6. See ai-provider for supported providers.
-
ai7-api-key | string
API key for AI model slot 7
-
ai7-base-url | string
Custom API base URL for AI model slot 7 (for OpenAI-compatible local services)
-
ai7-model | string
AI model(s) for slot 7 (supports comma-separated)
-
ai7-provider | string
AI provider for model slot 7. See ai-provider for supported providers.
-
ai8-api-key | string
API key for AI model slot 8
-
ai8-base-url | string
Custom API base URL for AI model slot 8 (for OpenAI-compatible local services)
-
ai8-model | string
AI model(s) for slot 8 (supports comma-separated)
-
ai8-provider | string
AI provider for model slot 8. See ai-provider for supported providers.
-
ai9-api-key | string
API key for AI model slot 9
-
ai9-base-url | string
Custom API base URL for AI model slot 9 (for OpenAI-compatible local services)
-
ai9-model | string
AI model(s) for slot 9 (supports comma-separated)
-
ai9-provider | string
AI provider for model slot 9. See ai-provider for supported providers.
-
auto-update | boolean
Automatically update OpenClaw to latest stable version on upgrade-charm
-
discord-bot-token | string
Discord bot token from Discord Developer Portal. Leave empty to disable Discord messaging.
-
dm-policy | string
Default: pairing
DM access policy: 'pairing' (require pairing code), 'open' (auto-respond), or 'closed' (reject all DMs)
-
dm-scope | string
Default: main
DM session scope for isolating direct message conversations:
- 'main' (default): All DMs share the main session for continuity across devices/channels
- 'per-peer': Isolate sessions by sender ID across channels
- 'per-channel-peer': Isolate by channel + sender (recommended for multi-user inboxes)
- 'per-account-channel-peer': Isolate by account + channel + sender (recommended for multi-account inboxes)
Security Warning: If your agent receives DMs from multiple people, use 'per-channel-peer' or 'per-account-channel-peer' to prevent conversation context leakage between users.
-
gateway-bind | string
Default: loopback
Gateway bind mode: 'loopback' (127.0.0.1 only), 'lan' (all interfaces), or specific IP address.
IMPORTANT: Multi-unit deployments REQUIRE 'lan' mode for Node connectivity. The charm will block deployment if loopback mode is used with multiple units.
-
gateway-port | int
Default: 18789
Port for the OpenClaw Gateway WebSocket/HTTP server
-
install-method | string
Default: npm
Installation method: 'npm' (global npm install), 'pnpm' (uses npm), 'bun' (global bun install), or 'source' (build from git source)
-
line-channel-access-token | string
LINE Messaging API channel access token from LINE Developers Console. Leave empty to disable LINE messaging.
-
line-channel-secret | string
LINE Messaging API channel secret from LINE Developers Console. Required when line-channel-access-token is configured.
-
log-level | string
Default: info
Log level (debug, info, warn, error)
-
manual | boolean
Manual configuration mode. When enabled (manual=true):
- Charm will NOT auto-generate openclaw.json or node.json
- User is responsible for creating and managing OpenClaw configuration
- Charm only installs OpenClaw and manages systemd services
- Peer relations still work for multi-unit deployments
- Environment file (.openclaw/environment) is still created for systemd
When disabled (manual=false, default):
- Charm auto-generates configuration from Juju config options
- AI providers, channels, and settings are managed by the charm
- Configuration updates on 'juju config' changes
-
node-version | string
Default: 24
Node.js major version to install (minimum 22 required)
-
sandbox-mode | string
Default: non-main
Sandbox mode for non-main sessions: 'all' (sandbox everything), 'non-main' (sandbox groups/channels), or 'none' (no sandboxing)
-
slack-app-token | string
Slack app token (xapp-...) from Slack App settings. Required when slack-bot-token is configured.
-
slack-bot-token | string
Slack bot token (xoxb-...) from Slack App settings. Leave empty to disable Slack messaging.
-
telegram-bot-token | string
Telegram bot token from @BotFather (e.g., 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11). Leave empty to disable Telegram messaging.
-
use-browser | string
Browser to install for browser automation. OpenClaw's browser tool enables web browsing, screenshots, and automation via Playwright. Supported values: 'chrome', 'chromium', 'firefox', or empty string to disable. Can be changed post-deployment via 'juju config'.
-
version | string
Default: latest
OpenClaw version to install (e.g., 'latest', '2026.1.29', or git commit)