# Claw Models · Aliases · Commands · Configurations

| Field | Value |
|--------|--------|
| **Local Mac path** | `/Users/khaledahmedmohamed/designs-content/vip/setting/claw-models-aliases-and-configurations.md` |
| **OpenClaw server (ai-developer)** | `/root/.openclaw/claw-models-aliases-and-configurations.md` |
| **ZeroClaw server (contabo2)** | `/root/zeroclaw/claw-models-aliases-and-configurations.md` |
| **Updated** | 2026-07-15 |

---

## 0. OpenClaw vs ZeroClaw (same product family)

| | **OpenClaw** | **ZeroClaw** |
|--|--------------|--------------|
| **What it is** | OpenClaw Control UI + gateway | **Same OpenClaw engine**, different brand/instance |
| **Public URL** | https://openclaw.addict.best/ | https://zeroclaw.addict.best/ |
| **Chat** | https://openclaw.addict.best/chat | https://zeroclaw.addict.best/chat?session=main |
| **Server** | `213.199.36.17` (ai-developer) | `149.102.150.185` (contabo2) |
| **SSH** | `ssh -i ~/.ssh/ai_developer_key root@213.199.36.17` | `ssh -i ~/.ssh/contabo2_new1 root@149.102.150.185` |
| **Systemd unit** | `openclaw-gateway` | `zeroclaw-gateway` |
| **State / config** | `/root/.openclaw/` · `openclaw.json` | `/root/zeroclaw/` · `openclaw.json` |
| **CLI** | `/usr/local/bin/openclaw` | same binary path |
| **Port** | `127.0.0.1:18789` | `127.0.0.1:18789` |
| **Node package** | `/opt/openclaw` | `/opt/openclaw` |

**Rule:** Commands are the same shape; only **host, unit name, and config path** change.

---

## 1. Shell aliases (add to Mac `~/.zshrc` or server `~/.bashrc`)

```bash
# ── SSH ──────────────────────────────────────────
alias claw-ssh-open='ssh -i ~/.ssh/ai_developer_key root@213.199.36.17'
alias claw-ssh-zero='ssh -i ~/.ssh/contabo2_new1 root@149.102.150.185'

# ── Status / logs (run AFTER ssh, or as remote one-liners) ──
alias claw-status-open='ssh -i ~/.ssh/ai_developer_key root@213.199.36.17 "systemctl status openclaw-gateway openclaw-healthcheck.timer --no-pager"'
alias claw-status-zero='ssh -i ~/.ssh/contabo2_new1 root@149.102.150.185 "systemctl status zeroclaw-gateway zeroclaw-healthcheck.timer --no-pager"'
alias claw-logs-open='ssh -i ~/.ssh/ai_developer_key root@213.199.36.17 "journalctl -u openclaw-gateway -f"'
alias claw-logs-zero='ssh -i ~/.ssh/contabo2_new1 root@149.102.150.185 "journalctl -u zeroclaw-gateway -f"'

# ── Restart ──────────────────────────────────────
alias claw-restart-open='ssh -i ~/.ssh/ai_developer_key root@213.199.36.17 "systemctl restart openclaw-gateway"'
alias claw-restart-zero='ssh -i ~/.ssh/contabo2_new1 root@149.102.150.185 "systemctl restart zeroclaw-gateway"'

# ── Safe update (stop → npm → start) ─────────────
alias claw-update-open='ssh -i ~/.ssh/ai_developer_key root@213.199.36.17 "/usr/local/sbin/openclaw-safe-update.sh"'
alias claw-update-zero='ssh -i ~/.ssh/contabo2_new1 root@149.102.150.185 "/usr/local/sbin/zeroclaw-safe-update.sh"'

# ── Health probe ─────────────────────────────────
alias claw-health-open='ssh -i ~/.ssh/ai_developer_key root@213.199.36.17 "/usr/local/sbin/openclaw-healthcheck.sh; curl -sS -o /dev/null -w \"%{http_code}\\n\" http://127.0.0.1:18789/"'
alias claw-health-zero='ssh -i ~/.ssh/contabo2_new1 root@149.102.150.185 "/usr/local/sbin/zeroclaw-healthcheck.sh; curl -sS -o /dev/null -w \"%{http_code}\\n\" http://127.0.0.1:18789/"'

# ── Public curl ──────────────────────────────────
alias claw-pub-open='curl -sS -o /dev/null -w "%{http_code}\n" https://openclaw.addict.best/'
alias claw-pub-zero='curl -sS -o /dev/null -w "%{http_code}\n" https://zeroclaw.addict.best/'
```

On **server** (after SSH), shorter local aliases:

```bash
# OpenClaw host
alias oc='openclaw'
alias oc-status='systemctl status openclaw-gateway --no-pager'
alias oc-logs='journalctl -u openclaw-gateway -f'
alias oc-restart='systemctl restart openclaw-gateway'
alias oc-doctor='openclaw doctor'
alias oc-models='grep -E "OPENCLAW_|PRODIA_|MUAPI_|GEMINI_" /etc/openclaw-media.env | sed "s/=.*/=***/"'

# ZeroClaw host (same binary; different unit)
alias zc-status='systemctl status zeroclaw-gateway --no-pager'
alias zc-logs='journalctl -u zeroclaw-gateway -f'
alias zc-restart='systemctl restart zeroclaw-gateway'
alias zc-doctor='OPENCLAW_CONFIG_PATH=/root/zeroclaw/openclaw.json OPENCLAW_STATE_DIR=/root/zeroclaw openclaw doctor'
```

---

## 2. Core CLI commands (both products)

| Purpose | OpenClaw (ai-developer) | ZeroClaw (contabo2) |
|---------|-------------------------|---------------------|
| Version | `openclaw --version` | same |
| Doctor / repair | `openclaw doctor` · `openclaw doctor --fix` | prefix env: `OPENCLAW_CONFIG_PATH=/root/zeroclaw/openclaw.json OPENCLAW_STATE_DIR=/root/zeroclaw openclaw doctor` |
| Gateway status | `openclaw gateway status` | same + env above |
| Gateway run (fg) | `openclaw gateway run --port 18789 --bind loopback` | same + env |
| Config validate | `openclaw config validate` | same + env |
| Agent one-shot | `openclaw agent -m "hello"` | same + env |
| Service start/stop | `systemctl start\|stop\|restart openclaw-gateway` | `... zeroclaw-gateway` |

**Always prefer systemd** for production. Do **not** use raw `openclaw update` — use safe-update scripts.

---

## 3. Model aliases by purpose

### 3.1 Chat · coding · planning (LLM)

| Alias / role | Model ID | Cost | Use when |
|--------------|----------|------|----------|
| `chat-free-open` (OpenClaw primary) | `openrouter/nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free` | Free | Default chat on openclaw.addict.best |
| `chat-free-zero` (ZeroClaw primary) | `openrouter/qwen/qwen3-coder:free` | Free | Default chat/coding on zeroclaw |
| `chat-gemini-flash` | `google/gemini-2.5-flash` | Low paid / free tier quota | Fast reasoning, fallback |
| `chat-gemini-fallback` | `openrouter/nvidia/nemotron-nano-9b-v2:free` | Free | ZeroClaw secondary fallback |
| `chat-openrouter-free-pool` | any `:free` on OpenRouter | Free | Rotate if rate-limited |

**In Control UI:** pick model from dropdown if listed, or set agent primary in config.

**Env-driven chat fallbacks** (already in `openclaw.json`):  
- OpenClaw: primary Nemotron free → fallback Gemini 2.5 Flash  
- ZeroClaw: primary Qwen3 Coder free → Gemini 2.5 Flash → Nemotron nano free  

---

### 3.2 Image generation

| Alias | Env var / model | Provider | Quality / cost | Purpose |
|-------|-----------------|----------|----------------|---------|
| `img-primary` | `OPENCLAW_IMAGE_MODEL=gemini-2.5-flash-image` | Google | HQ native · quota via Gemini API / Pro | **Nano Banana** — best default images + edit |
| `img-cheap-prodia` | `OPENCLAW_IMAGE_CHEAP_PRODIA=flux-schnell` | Prodia | Cheap · fast | Bulk / drafts |
| `img-mid-prodia` | `OPENCLAW_IMAGE_MID_PRODIA=flux-dev` | Prodia | Mid cost · strong quality | Production stills |
| `img-cheap-muapi` | `OPENCLAW_IMAGE_CHEAP_MUAPI=flux-schnell` | MuAPI | Cheap · fast | Bulk via MuAPI |
| `img-mid-muapi` | `OPENCLAW_IMAGE_MID_MUAPI=flux-kontext-pro` | MuAPI | Mid · edit/context unique | Product edits, consistency |
| `img-mid-seedream` | `seedream` (MuAPI) | MuAPI | Mid · aesthetic | Style-heavy images |
| `img-mid-qwen` | `qwen-image` (MuAPI) | MuAPI | Mid · text-in-image | Posters with readable text |

**Nano Banana note:**  
`gemini-2.5-flash-image` **is** Nano Banana. Google **Pro** improves **limits**, not the model name.

**Plain `gemini-2.5-flash` does not replace image model** for high-quality generation.

---

### 3.3 Video generation

| Alias | Env / model | Provider | Quality / cost | Purpose |
|-------|-------------|----------|----------------|---------|
| `vid-cheap` | `OPENCLAW_VIDEO_CHEAP=muapi:wan2.1-text-to-video` | MuAPI | Cheap · good open video | Default cheap T2V |
| `vid-mid` | `OPENCLAW_VIDEO_MID=muapi:seedance-pro-t2v` | MuAPI | Mid · strong features | Best mid all-rounder |
| `vid-mid-motion` | `OPENCLAW_VIDEO_MID_MOTION=muapi:kling-v2.1-master-t2v` | MuAPI | Mid-high motion/physics | Action / body motion |
| `vid-mid-hailuo` | `minimax-hailuo-02-pro-t2v` | MuAPI | Mid · natural humans | People-centric clips |
| `vid-cheap-draft-prodia` | `pruna-p-video-draft` (if on Prodia) | Prodia | Cheapest draft | Storyboard tests only |
| `vid-avoid-unless-needed` | Veo 3 / Veo 3 Fast | MuAPI | Upper-mid cost | Max quality when budget allows |

**Do not use Gemini Flash chat for HQ video.** Use MuAPI/Prodia/Veo.

---

## 4. Purpose → recommended alias cheat sheet

| Purpose | Use this first | Then fallback |
|---------|----------------|---------------|
| Daily chat / agent | `chat-free-open` or `chat-free-zero` | `chat-gemini-flash` |
| Coding | ZeroClaw `qwen3-coder:free` | Gemini Flash |
| Long reasoning | Nemotron free / Gemini Flash | — |
| **Best images (API)** | `img-primary` (Nano Banana) | `img-mid-prodia` / `img-mid-muapi` |
| **Cheap bulk images** | `img-cheap-prodia` or `img-cheap-muapi` | — |
| **Images with text** | `img-mid-qwen` | Nano Banana |
| **Cheap video** | `vid-cheap` (Wan 2.1) | seedance-lite |
| **Mid quality video** | `vid-mid` (Seedance Pro) | `vid-mid-motion` (Kling) |
| **Human motion video** | `vid-mid-hailuo` or Kling | — |

---

## 5. How to “use” a model (commands & agent prompts)

### A) Chat model (inside gateway / Control UI)
1. Open UI → select model if available.  
2. Or set in config (build-on, don’t wipe other keys):

```bash
# On server after SSH
# Example: set chat primary to Gemini Flash (backup first)
cp -a /root/.openclaw/openclaw.json /root/.openclaw/openclaw.json.bak-$(date +%s)
# Prefer: openclaw config set ... if CLI supports; else edit JSON carefully
```

OpenClaw agent one-shot (if installed CLI works with your profile):

```bash
openclaw agent --model google/gemini-2.5-flash -m "Summarize X"
# ZeroClaw:
OPENCLAW_CONFIG_PATH=/root/zeroclaw/openclaw.json OPENCLAW_STATE_DIR=/root/zeroclaw \
  openclaw agent --model openrouter/qwen/qwen3-coder:free -m "Write a Python function..."
```

*(Flags may vary by OpenClaw version — use Control UI model picker when unsure.)*

### B) Image via Gemini Nano Banana (env already set)
Agent prompt example:

```text
Generate a high-quality image using OPENCLAW_IMAGE_MODEL (gemini-2.5-flash-image / Nano Banana).
Use GEMINI_API_KEY from environment. Subject: ...
```

Or HTTP-style (agent/exec):

```bash
# Conceptual — use Google Gemini generateContent with model gemini-2.5-flash-image
# Key: $GEMINI_API_KEY or $GOOGLE_API_KEY
echo "Model: $OPENCLAW_IMAGE_MODEL"
```

### C) Image via Prodia (cheap / mid)

```bash
export PRODIA_KEY="$PRODIA_API_KEY"   # already in gateway env
# Cheap:
# model = $OPENCLAW_IMAGE_CHEAP_PRODIA   # flux-schnell
# Mid:
# model = $OPENCLAW_IMAGE_MID_PRODIA     # flux-dev
# Auth: Authorization: Bearer $PRODIA_API_KEY
# Base: $PRODIA_BASE_URL  (https://api.prodia.com)
```

Agent prompt:

```text
Generate image with Prodia model flux-schnell (cheap) or flux-dev (mid).
Use PRODIA_API_KEY; rotate PRODIA_API_KEY_2 / _3 on 401/429.
```

### D) Image / video via MuAPI

```bash
# Base: $MUAPI_BASE_URL  (https://api.muapi.ai)
# Auth: Bearer $MUAPI_API_KEY  (rotate _2, _3)
# Image mid: $OPENCLAW_IMAGE_MID_MUAPI   # flux-kontext-pro
# Video cheap: $OPENCLAW_VIDEO_CHEAP     # wan2.1-text-to-video
# Video mid: $OPENCLAW_VIDEO_MID         # seedance-pro-t2v
# Video motion: $OPENCLAW_VIDEO_MID_MOTION  # kling-v2.1-master-t2v
```

Agent prompt:

```text
Create a 5s video using MuAPI model wan2.1-text-to-video (cheap) or seedance-pro-t2v (mid).
Keys: MUAPI_API_KEY. Docs: https://muapi.ai/docs/introduction
```

### E) Key rotation (if one key fails)

| Order | Prodia | MuAPI |
|-------|--------|-------|
| 1 | `PRODIA_API_KEY` | `MUAPI_API_KEY` |
| 2 | `PRODIA_API_KEY_2` | `MUAPI_API_KEY_2` |
| 3 | `PRODIA_API_KEY_3` | `MUAPI_API_KEY_3` |

Source vault (Mac):  
`/Users/khaledahmedmohamed/designs-content/vip/setting/api-new.md`

---

## 6. Configuration file map

| File | OpenClaw host | ZeroClaw host |
|------|---------------|---------------|
| Main config | `/root/.openclaw/openclaw.json` | `/root/zeroclaw/openclaw.json` |
| Media env (systemd) | `/etc/openclaw-media.env` | `/etc/openclaw-media.env` |
| Media guide | `/root/.openclaw/MEDIA_MODELS.md` · `workspace/` | `/root/zeroclaw/MEDIA_MODELS.md` · `workspace/` |
| This aliases doc | `/root/.openclaw/claw-models-aliases-and-configurations.md` | `/root/zeroclaw/claw-models-aliases-and-configurations.md` |
| Permanent ops | `/root/OPENCLAW_PERMANENT.md` | `/root/ZEROCLAW_PERMANENT.md` |
| Gateway unit | `openclaw-gateway.service` | `zeroclaw-gateway.service` |
| Health timer | `openclaw-healthcheck.timer` | `zeroclaw-healthcheck.timer` |
| Safe update | `/usr/local/sbin/openclaw-safe-update.sh` | `/usr/local/sbin/zeroclaw-safe-update.sh` |

**Auth (public reverse proxy):** `gateway.auth.mode = none` + Control UI insecure flags (loopback only; Caddy terminates TLS).

---

## 7. One-liner “purpose → command” (remote)

```bash
# OpenClaw — show configured media aliases
ssh -i ~/.ssh/ai_developer_key root@213.199.36.17 \
  'grep -E "OPENCLAW_IMAGE|OPENCLAW_VIDEO|PRODIA_BASE|MUAPI_BASE" /etc/openclaw-media.env'

# ZeroClaw — same
ssh -i ~/.ssh/contabo2_new1 root@149.102.150.185 \
  'grep -E "OPENCLAW_IMAGE|OPENCLAW_VIDEO|PRODIA_BASE|MUAPI_BASE" /etc/openclaw-media.env'

# Restart after config edit
ssh -i ~/.ssh/ai_developer_key root@213.199.36.17 'systemctl restart openclaw-gateway'
ssh -i ~/.ssh/contabo2_new1 root@149.102.150.185 'systemctl restart zeroclaw-gateway'
```

---

## 8. Agent system prompts (copy-paste)

**Images (best):**
```text
Use image model gemini-2.5-flash-image (Nano Banana). API key env GEMINI_API_KEY.
If Google fails, use Prodia flux-dev (PRODIA_API_KEY) or MuAPI flux-kontext-pro (MUAPI_API_KEY).
```

**Images (cheap bulk):**
```text
Use Prodia or MuAPI flux-schnell. Keys PRODIA_API_KEY / MUAPI_API_KEY. Prefer cheap over quality.
```

**Video (cheap):**
```text
Use MuAPI wan2.1-text-to-video (OPENCLAW_VIDEO_CHEAP). Do not use Gemini Flash for video gen.
```

**Video (mid quality):**
```text
Use MuAPI seedance-pro-t2v (OPENCLAW_VIDEO_MID). For motion/physics use kling-v2.1-master-t2v.
```

**Coding chat:**
```text
Use openrouter/qwen/qwen3-coder:free (ZeroClaw) or keep current primary; fallback google/gemini-2.5-flash.
```

---

## 9. Do / Don’t

| Do | Don’t |
|----|--------|
| Use systemd + healthcheck | Run PM2 + systemd on same port 18789 |
| Use `*-safe-update.sh` | Raw `openclaw update` on prod without restart |
| Rotate Prodia/MuAPI keys on 429 | Hardcode keys in chat transcripts |
| Nano Banana = `gemini-2.5-flash-image` | Assume `gemini-2.5-flash` generates HQ video |
| Build-on JSON (append env) | Wipe entire `openclaw.json` |
| Validate: `openclaw doctor` | Deploy invalid schema keys |

---

## 10. Quick public checks

```bash
curl -sS -o /dev/null -w "%{http_code}\n" https://openclaw.addict.best/
curl -sS -o /dev/null -w "%{http_code}\n" https://zeroclaw.addict.best/chat?session=main
```

Expect **200** when healthy.

---

*End of claw-models-aliases-and-configurations.md*
