# Fully Local OpenClaw: Run Your AI Assistant With Zero Cloud Dependencies

> 📌 **Note (2026-05-12):** This post documents Dream Server's OpenClaw-based agent stack. As of 2026-05-12, OpenClaw has been deprecated in favor of [Hermes Agent](https://github.com/NousResearch/hermes-agent), which now ships as Dream Server's default agent. The story below — fully-local, no cloud — is unchanged; only the agent implementation has been swapped. See [docs/HERMES.md](../../dream-server/docs/HERMES.md) and [docs/MIGRATION-OPENCLAW-TO-HERMES.md](../../dream-server/docs/MIGRATION-OPENCLAW-TO-HERMES.md). This post is kept for historical context and will move to `resources/legacy/blog/` in the removal release.

*Finally: A personal AI assistant that never phones home.*

## The Problem

Every AI assistant today requires an internet connection. Claude, ChatGPT, Gemini — they all send your prompts to distant servers. For privacy-conscious users, air-gapped environments, or anywhere with spotty connectivity, this is a non-starter.

We set out to change that.

## The Breakthrough: M1 "Fully Local"

Today we're announcing **M1** — OpenClaw running completely on your own hardware, with zero cloud dependencies.

### What Works Offline

| Feature | Status | Details |
|---------|--------|---------|
| **LLM Inference** | ✅ | vLLM with Qwen 32B AWQ |
| **Memory Search** | ✅ | GGUF embeddings (328MB, auto-downloads) |
| **Conversation History** | ✅ | SQLite + FTS5 local search |
| **Tools & Skills** | ✅ | File operations, shell commands |
| **Channels** | ✅ | Local interfaces, Discord, Telegram |

### The Key Discovery: Local Embeddings Just Work

The hardest part was `memory_search` — OpenClaw's semantic memory feature. It needs an embedding model to index your files.

We tried:
- TEI (Text Embeddings Inference) — worked but required extra setup
- Cloud APIs — defeats the purpose

Then we found: **OpenClaw already has a bundled GGUF embedding model**. Just enable it:

```yaml
memorySearch:
  enabled: true
```

That's it. OpenClaw auto-downloads a 328MB embedding model (`embeddinggemma-300M`) and indexes your workspace locally. No API keys, no external services.

## Hardware Requirements

### Minimum (7B models)
- 8GB GPU (RTX 3070, 4060)
- 16GB RAM
- 50GB SSD

### Recommended (32B models)
- 24GB GPU (RTX 4090, RTX 6000 Ada)
- 32GB RAM
- 100GB SSD

### Our Test Setup
- 2x RTX PRO 6000 Blackwell (96GB each) via vLLM
- 100 concurrent sessions at 6300 tok/s
- Full memory search with local embeddings

## Quick Start

### Option A: Automated Setup (Recommended)

```bash
# Download and run our deployment script
curl -O https://raw.githubusercontent.com/Light-Heart-Labs/DreamServer/main/tools/m1-deploy.sh
chmod +x m1-deploy.sh
./m1-deploy.sh

# For quick start with smaller model (2 min setup):
./m1-deploy.sh --bootstrap
```

### Option B: Manual Setup

```bash
# 1. Start vLLM with your chosen model
docker run --gpus all -p 8000:8000 vllm/vllm-openai:latest \
  --model Qwen/Qwen2.5-Coder-32B-Instruct-AWQ

# 2. Configure OpenClaw
cat > ~/.openclaw/openclaw.json << 'EOF'
{
  "model": {
    "default": "local-vllm/Qwen/Qwen2.5-Coder-32B-Instruct-AWQ",
    "provider": "openai-responses",
    "baseUrl": "http://localhost:8000/v1"
  },
  "memorySearch": {
    "enabled": true
  }
}
EOF

# 3. Start OpenClaw
openclaw gateway start

# 4. Chat completely offline
```

## What's Still Online-Only

Let's be honest about what still needs the internet:

| Feature | Why | Workaround |
|---------|-----|------------|
| `web_search` | Calls Brave/Perplexity API | Use local RAG with Qdrant |
| Model downloads | One-time HuggingFace pull | Pre-download + cache |
| Channel bridges | Discord/Telegram need auth | Local interfaces work offline |

For truly air-gapped environments, pre-download all models and use local-only interfaces.

## Performance Numbers

From our cluster testing (2x RTX PRO 6000 Blackwell via vLLM):

| Concurrent Users | Response Time | Throughput |
|------------------|---------------|------------|
| 10 | ~200ms | 5000 tok/s |
| 50 | ~530ms | 5000 tok/s |
| 100 | ~860ms | 6300 tok/s |
| 200 | ~1.5s | 6900 tok/s (queuing starts) |

**Recommendation:** Stay under 100 concurrent for smooth latency.

## Why This Matters

1. **Privacy**: Your prompts never leave your network
2. **Reliability**: Works in bunkers, on planes, during outages
3. **Cost**: After hardware, inference is free
4. **Control**: No rate limits, no TOS changes, no surprise shutdowns

## What's Next

- **M2**: Fully local voice agents with LiveKit + Whisper + TTS
- **M5**: "Dream Server" — turnkey local AI package anyone can deploy
- **M6**: Optimization guides for consumer GPUs (8GB-48GB)

## Try It Today

M1 is part of OpenClaw's open-source release. Get started:

- **GitHub**: https://github.com/openclaw/openclaw
- **Docs**: https://docs.openclaw.ai
- **Community**: https://discord.gg/clawd

The future of AI is local. Welcome to M1.

---

*Light Heart Labs — February 2026*
*Research by Todd (.143) and Android-17 (.122)*
