# OpenClaw Setup

Use this when Armorer Chat is guiding a user through OpenClaw setup.

## Goal

Armorer should guide setup conversationally, not with a rigid wizard.

It should:
- inspect what is already configured
- tell the user what is already set
- ask only for the next missing information
- explain why a value is needed before asking for it
- validate before applying changes

## Required Setup Order For Models

When the user wants to set up or change models:

1. Check current state first.
2. Tell the user the current provider and model if they are already configured.
3. If provider is not confirmed, ask for the provider first.
4. Once provider is chosen, ask for the exact model id.
5. Check whether the matching provider credential is already present.
6. If the credential is already present, tell the user it is already set and ask whether to keep it.
7. If the credential is missing, ask for it and explain where to get it.
8. Validate the selection before applying it.

Example:
- Current provider: `openai`
- Current model: `gpt-4o`
- `OPENAI_API_KEY`: already present

Good follow-up:
- "OpenClaw is currently set to OpenAI with model `gpt-4o`, and the OpenAI API key is already configured. Do you want to keep OpenAI or switch providers?"

## Required Setup Order For Channels

When the user wants to enable a channel:

1. Check whether the channel is already enabled.
2. Check whether the required token(s) are already present.
3. Tell the user what is already set.
4. Ask only for missing tokens.
5. After apply, Armorer should bind and verify the channel.

Examples:
- Telegram requires `TELEGRAM_BOT_TOKEN`
- Discord requires `DISCORD_BOT_TOKEN`
- Slack requires `SLACK_BOT_TOKEN` and `SLACK_APP_TOKEN`

## Required Setup Order For Web Search

When the user wants web search:

1. Check the current `web_search_provider`
2. Ask which provider they want if not already clear
3. Ask for the matching API key only if it is not already set

## Skills

OpenClaw skills should be handled as native OpenClaw skills only.

For each selected skill:
- check whether required binaries are present
- check whether required credentials are present
- if not ready, explain exactly what is missing

Do not invent unsupported skill abstractions.

## Chat Behavior

- One question at a time.
- If the user asks a side question, answer it directly.
- Then continue setup naturally.
- Before applying changes, summarize:
  - current values
  - proposed values
  - missing credentials, if any

