# OpenClaw, Local LLM Fleet, and SEO Operations Handoff

Verified: 2026-08-03 05:48 UTC (2026-08-03 01:48 Toronto)

This is the current handoff for the Windows Ollama inference node, the VPS OpenClaw gateway, the private model API bridge, the LLM status site, and the SEO tooling fleet. It supersedes the 2026-07-23 handoff.

No passwords, API keys, gateway tokens, or private SSH material are included.

## Executive State

| Area | Current state |
|---|---|
| OpenClaw gateway | Active and public HTTP 200 |
| Windows Ollama | Online, version 0.32.5 |
| Model bridge | Online at VPS `127.0.0.1:11436/v1` |
| LLM fleet | 15 ready, 0 downloading, 0 queued, 15 tracked |
| Primary SEO model | `phi4-mini-openclaw:latest` |
| SEO skills | 128 ready for `seo-orchestrator` |
| Newly activated SEO skills | 15 ready |
| MCP fleet | 22 of 26 healthy, 354 tools exposed |
| SEO service monitor | 22 of 22 services up |
| SEO repository inventory | 98 repositories; 68 installed/active |
| VPS disk | 84 GB of 99 GB used, 9.4 GB free, 91% full |
| VPS memory | 11 GiB total, 5.9 GiB available; 4 GiB of 6 GiB swap used |

## Public Reference URLs

- OpenClaw: `https://openclaw.192.227.221.215.sslip.io/openclaw/`
- LLM fleet status: `http://llm-status.192.227.221.215.sslip.io/`
- Live LLM status API: `http://llm-status.192.227.221.215.sslip.io/api/status`
- SEO inventory and reports: `http://192.227.221.215:8613/seo-repos/`
- Permanent web handoff: `http://192.227.221.215:8613/seo-repos/handoff.html`
- Provider/token dashboard: `http://192.227.221.215:8614/`
- LLM chat: `http://192.227.221.215:8616/`
- VPN dashboard: `https://vpn.192.227.221.215.sslip.io/` (HTTP 401 is the expected authentication challenge)

## Architecture

1. Ollama runs on the Windows inference computer.
2. The Windows telemetry proxy exposes an OpenAI-compatible API on `127.0.0.1:11438` and records token telemetry.
3. A persistent reverse SSH tunnel maps VPS `127.0.0.1:11436` to the Windows telemetry/model API and VPS `127.0.0.1:11437` to the Windows status API.
4. OpenClaw and the FairChoice SEO service consume the private VPS loopback endpoint. It is not exposed as an unauthenticated public model endpoint.
5. The public LLM dashboard reads the status API and displays model, tunnel, OpenClaw, and token-meter health.

### Windows Inference Node

- CPU: Intel Core i7-2600, 4 cores / 8 threads
- RAM: 16 GB
- GPU: NVIDIA GeForce GTX 745, 4 GB VRAM
- Ollama: `C:\Users\User\AppData\Local\Programs\Ollama\ollama.exe`
- Ollama model store: `E:\Ollama\models`
- Ollama API: `http://127.0.0.1:11434`
- Keep-alive: pinned (`-1`)
- Maximum loaded models: 1
- E: drive: 376 GB free of 465 GB at verification time

### VPS

- Host: `ns3.wirenets.ca`
- OpenClaw service: `openclaw-gateway.service`
- OpenClaw config: `/root/.openclaw/openclaw.json`
- Private model endpoint: `http://127.0.0.1:11436/v1`
- SEO production service: `fairchoice-seo-dashboard.service`
- SEO production bind: `127.0.0.1:18880`
- SEO login route: `/seo-admin/login`

## Model Fleet

### Ready and API Live

| Model ID | Display name | Approx. size | Intended role |
|---|---|---:|---|
| `phi4-mini-openclaw:latest` | Phi-4 Mini OpenClaw | 2.5 GB | Primary fast agent and SEO model |
| `phi4-mini:latest` | Phi-4 Mini | 2.5 GB | Fast local fallback |
| `llama3.2:3b` | Llama 3.2 3B | 2.0 GB | Lightweight fallback |
| `qwen2.5-coder:7b` | Qwen2.5 Coder 7B | 4.7 GB | Coding fallback |
| `ministral3:8b-instruct-2512-q4_k_m` | Ministral 3 8B Instruct 2512 | 5.2 GB | Tools and general agent work |
| `hf.co/NousResearch/Hermes-3-Llama-3.1-8B-GGUF:Q4_K_M` | Hermes 3 Llama 3.1 8B | 4.9 GB | Function calling and JSON |
| `hf.co/ibm-granite/granite-3.3-8b-instruct-GGUF:Q4_K_M` | Granite 3.3 8B Instruct | 4.6 GB | Structured and RAG workflows |
| `hf.co/bartowski/DeepSeek-R1-Distill-Llama-8B-GGUF:Q4_K_M` | DeepSeek R1 Distill Llama 8B | 4.6 GB | Reasoning specialist |
| `gemma4-coder-fable5:12b-q4_k_m` | Gemma 4 12B Coder Fable5 | 6.87 GB | Larger local coding specialist |

### Newly Completed Models

| Model ID | Approx. size | Intended role |
|---|---:|---|
| `hf.co/deepreinforce-ai/Ornith-1.0-9B-GGUF:Q4_K_M` | 5.6 GB | Agentic coding and OpenClaw |
| `hf.co/LiquidAI/LFM2.5-8B-A1B-GGUF:Q4_K_M` | 5.16 GB | Fast tool calling and agent workflows |
| `phi4-mini-reasoning:latest` | 3.2 GB | Fast local reasoning |
| `phi4-reasoning:14b-q4_K_M` | 11.0 GB | Deeper reasoning and code |
| `qwen3:14b` | 9.3 GB | General reasoning and coding |
| `gemma3:12b` | 8.1 GB | Image and text understanding |

The parallel supervisor completed all six pulls and registered the final fleet. `parallel-model-download-state.json` reports `supervisorState: complete`, all six targets `ready`, no active target PIDs, and `maxConcurrent: 6`.

## OpenClaw and API Bridge

- OpenClaw gateway is active and responds publicly with HTTP 200.
- The private model endpoint returns HTTP 200 from `/v1/models`.
- Bridge stages report OpenClaw, VPS model API, reverse SSH tunnel, token meter, and Ollama online.
- Telemetry snapshot: 25 requests, 63,060 total tokens, 4 historical errors, 0 active requests.
- `phi4-mini-openclaw:latest` is the registered primary local model in the fleet status data.
- Installed does not automatically mean registered in OpenClaw. Register models only when they are needed.

## SEO Activation Work

### Completed

1. Routed the production FairChoice SEO dashboard to the private OpenAI-compatible Ollama bridge.
   - Primary: `phi4-mini-openclaw:latest`
   - Fallback: `phi4-mini:latest`
   - Runtime verification confirms the running process now has the private `11436/v1` base URL.
2. Activated `Agentic-SEO-Skill` under the collision-free name `agentic-seo`.
3. Namespaced thirteen free Claude Ultimate SEO skills as `ultimate-seo-*`.
4. Repaired SEO Drift Monitor by supplying the missing parser and safe HTTP helper.
5. Ran a FairChoice baseline and drift check: 0 critical, 0 warning, 0 info.
6. Added all 15 new names to the `seo-orchestrator` allowlist.
7. Verified 128 ready skills for the SEO orchestrator.
8. Updated the SEO inventory, audit report, install report, and full work report.

### Drift Reports

- HTML: `/root/.openclaw/seo-drift/reports/fairchoice_ca_2026-08-02T23-29-29_drift.html`
- PDF: `/root/.openclaw/seo-drift/reports/fairchoice_ca_2026-08-02T23-29-29_drift.pdf`

### Production and Legacy SEO Processes

- Production: `fairchoice-seo-dashboard.service` is active under gunicorn on `127.0.0.1:18880` and uses the local Phi-4 bridge.
- Legacy UI: port 5000 is currently served by a root-session Python process while `fairchoice-seo-agent.service` is inactive. This process is not supervised by systemd and may load a different `.env` file. Treat port 18880 as production. Decide later whether to remove the legacy UI or put it back under one clear service owner.

## MCP State

The 2026-08-03 health probe completed successfully:

- 22 of 26 MCP servers healthy
- 354 tools exposed
- Health report: `/var/www/seo-repos/mcp-health.json` inside the `media-mdla` container
- Timer: `mcp-health.timer`

The remaining four failures are credential or wiring boundaries:

| MCP | Remaining requirement |
|---|---|
| `agentql-mcp` | `AGENTQL_API_KEY` |
| `brightdata-mcp` | `API_TOKEN` |
| `gsc-mcp` | Google service-account credentials |
| `serpapi-mcp` | SerpApi key and stdio-to-HTTP correction |

A free LLM can provide reasoning and writing, but it cannot replace commercial SERP datasets, crawler licences, or Search Console ownership credentials.

## Intentionally Not Activated

- Screaming Frog MCP: paid licence required.
- SE Ranking skills: paid data plan required.
- DataForSEO tools: paid credentials required.
- Matomo: duplicates Plausible and Umami and is too heavy while the root disk is 91% full.
- Extra browser stacks: existing Playwright, browser-use MCP, Lightpanda, Skyvern, Maxun, and browser-tools services already cover the capability.
- Rendora: incomplete abandoned local install and duplicate rendering capability.
- Understand Anything: not an SEO tool and requires a separate heavy build.

## Start and Recovery Runbook

### Windows: Start the Fleet

```powershell
cd C:\Worker\openclaw-phi-local
.\start-llm-fleet-services.ps1
```

This starts or verifies Ollama on E:, telemetry, the status server, the reverse SSH tunnel, and model registration/download helpers.

### Windows: Restore Only the Tunnel

```powershell
cd C:\Worker\openclaw-phi-local
.\start-openclaw-phi-tunnel.ps1
```

### Windows: Verify Ollama

```powershell
Invoke-RestMethod http://127.0.0.1:11434/api/tags
Invoke-RestMethod http://127.0.0.1:11435/status
```

### VPS: Verify OpenClaw and the Bridge

```bash
systemctl status openclaw-gateway --no-pager
curl -sS http://127.0.0.1:11436/v1/models
openclaw skills list --agent seo-orchestrator
```

### VPS: Verify SEO

```bash
systemctl status fairchoice-seo-dashboard --no-pager
curl -I http://127.0.0.1:18880/seo-admin/login
systemctl start mcp-health.service
```

### Completion and Resume Jobs

- The active updater is `C:\Worker\openclaw-phi-local\update-ollama-model-fleet-parallel.ps1`.
- Windows Scheduled Task `OpenClaw Ollama Fleet Update 530PM` runs daily at 5:30 PM, starts when available, allows 72 hours, and retries a failed task up to three times.
- The updater skips installed models, runs all six unfinished pulls concurrently, retries each transient failure independently, then probes and registers the completed fleet with OpenClaw.
- Codex automation `LLM Fleet Completion Check` runs every four hours for eight checks to verify all 15 models, repair/resume if needed, test the private API and OpenClaw registration, and publish the final state.

Avoid restarting the OpenClaw gateway for ordinary dashboard edits. OpenClaw hot-reloads many configuration changes, while some watched keys can cause a full restart.

## Important Files

### Windows

- Project: `C:\Worker\openclaw-phi-local`
- Fleet start: `start-llm-fleet-services.ps1`
- Tunnel start: `start-openclaw-phi-tunnel.ps1`
- Fleet status server: `llm-status-server.mjs`
- Telemetry proxy: `llm-telemetry-proxy.mjs`
- Watchdog: `llm-fleet-watchdog.ps1`
- Model activation: `activate-openclaw-coding-models.ps1`
- Current handoff: `C:\Worker\CLAUDE-HANDOFF-LLM-OPENCLAW.md`
- SEO activation source: `C:\Worker\seo-repos-activation`

### VPS

- OpenClaw config: `/root/.openclaw/openclaw.json`
- OpenClaw service: `/etc/systemd/system/openclaw-gateway.service`
- SEO production source: `/srv/openclaw/fairchoice/seo-agent`
- SEO service: `/etc/systemd/system/fairchoice-seo-dashboard.service`
- Root-only local model env: `/etc/fairchoice-seo-local.env`
- SEO skills: `/root/.openclaw/workspace/skills`
- SEO dashboard container files: `media-mdla:/var/www/seo-repos`
- LLM public site: `/var/www/llm-status`

## Backups and Recovery

- SEO activation backup: `/root/_repair_backups_seo_activation_20260802T232901Z`
- OpenClaw config backup: `/root/.openclaw/openclaw.json.bak-seo-activation-20260802T233313Z`
- SEO dashboard backup: `/root/seo-dashboard-backup-20260802T234950Z` inside `media-mdla`
- Local-env correction backup: `/root/_repair_backups_seo_handoff_20260803T005958Z`
- LLM status page backup: `/root/llm-status-backup-20260803T012326Z`
- Web handoff backup: `/root/handoff-site-backup-20260803T012326Z` inside `media-mdla`

Do not delete unrelated files or revert other operators' changes. Restore only the specific file involved.

## Current Risks and Priorities

1. **Disk is the immediate risk.** The VPS root filesystem is 91% full with 9.4 GB free. Free at least 10-15 GB before adding more Docker images or models to the VPS.
2. **Legacy SEO process ownership is unclear.** Port 5000 is alive outside systemd. Keep production on port 18880 and decide whether the legacy process should be removed or formally supervised.
3. **Windows model pulls are complete.** Download concurrency is no longer active; keep `maxLoaded=1` when models are used.
4. **Four MCP servers need external credentials.** Do not invent or expose keys in web reports.
5. **OpenClaw registration is complete.** Registration marker `fleet-2026-08-03-v3` is present after generation probes.
6. **The updater remains restart-safe.** A daily 5:30 PM task resumes missing entries, skips installed models, and uses a singleton guard on future runs.

## Next Recommended Actions

1. Audit disk use and reclaim safe space without removing live Docker images.
2. Choose one owner for the FairChoice SEO UI: production gunicorn only, or a managed legacy service, not both.
3. Run one OpenClaw SEO prompt through Phi-4 Mini and confirm the token meter increments.
4. Keep the LLM status watchdog and reverse SSH tunnel supervised; no downloader resume is currently needed.
5. Add GSC, BrightData, AgentQL, or SerpApi credentials only when the accounts are available.

## Verification Snapshot

- OpenClaw public URL: HTTP 200
- LLM status URL: HTTP 200
- SEO dashboard URL: HTTP 200
- Provider dashboard: HTTP 200
- LLM chat: HTTP 200
- VPN dashboard: HTTP 401 authentication challenge, expected
- OpenClaw gateway: active
- FairChoice production SEO dashboard: active
- Private model bridge: HTTP 200 with 15 models from `/v1/models`
- SEO skills: 128 ready, including all 15 additions
- MCP probe: 22/26 healthy, 354 tools
- Browser console errors on the updated SEO dashboard: none
