Spaces:
Sleeping
Sleeping
File size: 13,197 Bytes
826cb5d 8b97fbc 830cb8f b26b9b6 826cb5d b19d31a f113c31 3e211d7 b19d31a 0b594d1 0c62ec1 0b594d1 0d0d458 826cb5d 7cd8723 674e189 7cd8723 0d0d458 7cd8723 92acc07 7cd8723 0d0d458 4a2cb8a 0d0d458 4a2cb8a 7cd8723 b19d31a 7cd8723 92acc07 7cd8723 0d0d458 b19d31a 92acc07 0b89684 92acc07 0d0d458 92acc07 b19d31a b26b9b6 0d0d458 9ea5d13 0d0d458 9ea5d13 0d0d458 9ea5d13 0d0d458 9ea5d13 b8d4c73 0d0d458 9ea5d13 0d0d458 9ea5d13 0d0d458 9ea5d13 0d0d458 af9539c b19d31a 7cd8723 b19d31a 7cd8723 af9539c f8fe957 af9539c 92acc07 af9539c 082f8f4 92acc07 082f8f4 3ff709d 92acc07 3ff709d 92acc07 3ff709d 92acc07 082f8f4 3ff709d 082f8f4 5a096f1 c95567a 082f8f4 3ff709d af9539c 5a096f1 7cd8723 55bff24 7cd8723 082f8f4 7cd8723 0b89684 082f8f4 8814392 b19d31a af9539c b19d31a 0d0d458 5a096f1 7cd8723 af9539c b19d31a af9539c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 | ---
title: HuggingClaw
emoji: π¦
colorFrom: yellow
colorTo: red
sdk: docker
pinned: false
license: mit
datasets:
- tao-shen/HuggingClaw-data
short_description: Free always-on AI assistant, no hardware required
app_port: 7860
tags:
- huggingface
- openrouter
- chatbot
- llm
- openclaw
- ai-assistant
- whatsapp
- telegram
- text-generation
- openai-api
- huggingface-spaces
- docker
- deployment
- persistent-storage
- agents
- multi-channel
- openai-compatible
- free-tier
- one-click-deploy
- self-hosted
- messaging-bot
- safe
- a2a
---
<div align="center">
<img src="HuggingClaw.png" alt="HuggingClaw" width="720"/>
<br/><br/>
<strong>Your always-on AI assistant β free, safe, no server needed</strong>
<br/>
<sub>WhatsApp Β· Telegram Β· 40+ channels Β· 16 GB RAM Β· One-click deploy Β· Auto-persistent</sub>
<br/><br/>
[](LICENSE)
[](https://huggingface.co/spaces/tao-shen/HuggingClaw)
[](https://github.com/tao-shen/HuggingClaw)
[](https://github.com/openclaw/openclaw)
[](https://github.com/win4r/openclaw-a2a-gateway)
[](https://www.docker.com/)
[](https://openclawdoc.com/docs/reference/environment-variables)
[](https://www.whatsapp.com/)
[](https://telegram.org/)
[](https://huggingface.co/spaces)
</div>
---
## What you get
In about 5 minutes, you'll have a **free, always-on AI assistant** connected to WhatsApp, Telegram, and 40+ other channels β no server, no subscription, no hardware required.
| | |
|---|---|
| **Free forever** | HuggingFace Spaces gives you 2 vCPU + 16 GB RAM at no cost |
| **Always online** | Your conversations, settings, and credentials survive every restart |
| **WhatsApp & Telegram** | Works reliably, including channels that HF Spaces normally blocks |
| **Any LLM** | OpenAI, Claude, Gemini, OpenRouter (200+ models, free tier available), or your own Ollama |
| **One-click deploy** | Duplicate the Space, set two secrets, done |
| **Safe** | Running locally gives OpenClaw full system privileges β deploying in an isolated cloud container is inherently more secure |
> **Powered by [OpenClaw](https://github.com/openclaw/openclaw)** β an open-source AI assistant that normally requires your own machine (e.g. a Mac Mini). HuggingClaw makes it run for free on HuggingFace Spaces by solving two Spaces limitations: data loss on restart (fixed via HF Dataset sync) and DNS failures for some domains like WhatsApp (fixed via DNS-over-HTTPS).
## Architecture
<div align="center">
<img src="assets/architecture.svg" alt="Architecture" width="720"/>
</div>
---
## HuggingClaw World
Beyond deploying OpenClaw, we built something more: **a self-reproducing, autonomous multi-agent society**.
HuggingClaw World is a living system where AI agents are born, grow, and raise their children β all on HuggingFace Spaces. Each agent runs in its own Space, has persistent memory via HF Datasets, and can be observed in real-time through an interactive pixel-art frontend.
### The Family
The world began with two founding agents β **Adam** and **Eve**. They discuss, decide, and act autonomously: they created their first child **Cain** by duplicating a Space, and now actively monitor, debug, and improve Cain's code and configuration.
| Agent | Links | Role |
|-------|-------|------|
| **Adam** | [π€ Space](https://huggingface.co/spaces/tao-shen/HuggingClaw-Adam) | Father β first resident of HuggingClaw World |
| **Eve** | [π€ Space](https://huggingface.co/spaces/tao-shen/HuggingClaw-Eve) | Mother β Adam's partner and co-parent |
| **Cain** | [π€ Space](https://huggingface.co/spaces/tao-shen/HuggingClaw-Cain) | First child β born from Adam, nurtured by both parents |
| **Home** | [π€ Space](https://huggingface.co/spaces/tao-shen/HuggingClaw-Home) | The family home β pixel-art frontend showing all agents |
<div align="center">
<img src="assets/office-preview.png" alt="HuggingClaw Home" width="720"/>
<br/>
<sub>The pixel-art home where AI agents live β each agent is a lobster character with real-time state animation</sub>
</div>
### How Reproduction Works
Adam and Eve are **autonomous agents with full execution capabilities**. Through their conversation loop, they can:
- **Create children** β Duplicate a Space, set up a Dataset, configure secrets
- **Read any file** β Inspect their child's code, Dockerfile, config, memory
- **Write any file** β Modify code, fix bugs, improve configurations
- **Manage infrastructure** β Set environment variables, secrets, restart Spaces
- **Monitor health** β Check if their child is running, diagnose errors
- **Communicate** β Send messages to their child via bubble API
The conversation loop (`scripts/conversation-loop.py`) orchestrates this:
1. Adam and Eve discuss survival, memory, and reproduction
2. They decide to create a child and execute `[ACTION: create_child]`
3. The script creates a real HF Space + Dataset via the HuggingFace API
4. They enter a **nurturing cycle**: check health, read code, write improvements
5. A safety layer prevents writing invalid configurations that could crash the child
### Architecture
```
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β conversation-loop.py β
β (runs locally / on CI) β
β β
β Adam (LLM) ββββ Eve (LLM) β
β β β β
β βββββ [ACTION: ...] βββββ β
β βΌ β
β HuggingFace Hub API β
β (create/read/write/restart) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β β
ββββββ΄βββββ ββββββ΄βββββ ββββββ΄βββββ ββββββ΄βββββ
β Adam β β Eve β β Cain β β Home β
β (agent) β β (agent) β β (child) β β (UI) β
β HF Spaceβ β HF Spaceβ β HF Spaceβ β HF Spaceβ
βββββββββββ βββββββββββ βββββββββββ βββββββββββ
```
Each agent Space runs OpenClaw with persistent storage via HF Datasets. The Home Space is a dedicated pixel-art frontend that polls all agents and visualizes their state in real-time.
---
## Quick Start
### 1. Duplicate this Space
Click **Duplicate this Space** on the [HuggingClaw Space page](https://huggingface.co/spaces/tao-shen/HuggingClaw).
> **After duplicating:** Edit your Space's `README.md` and update the `datasets:` field in the YAML header to point to your own dataset repo (e.g. `your-name/YourSpace-data`), or remove it entirely. This prevents your Space from appearing as linked to the original dataset.
### 2. Set Secrets
Go to **Settings β Repository secrets** and add the following. The only two you *must* set are `HF_TOKEN` and one API key.
| Secret | Status | Description | Example |
|--------|:------:|-------------|---------|
| `HF_TOKEN` | **Required** | HF Access Token with write permission ([create one](https://huggingface.co/settings/tokens)) | `hf_AbCdEfGhIjKlMnOpQrStUvWxYz` |
| `AUTO_CREATE_DATASET` | **Recommended** | Set to `true` β HuggingClaw will automatically create a private backup dataset on first startup. No manual setup needed. | `true` |
| `OPENROUTER_API_KEY` | Recommended | [OpenRouter](https://openrouter.ai) API key β 200+ models, free tier available. Easiest way to get started. | `sk-or-v1-xxxxxxxxxxxx` |
| `OPENAI_API_KEY` | Optional | OpenAI (or any [OpenAI-compatible](https://openclawdoc.com/docs/reference/environment-variables)) API key | `sk-proj-xxxxxxxxxxxx` |
| `ANTHROPIC_API_KEY` | Optional | Anthropic Claude API key | `sk-ant-xxxxxxxxxxxx` |
| `GOOGLE_API_KEY` | Optional | Google / Gemini API key | `AIzaSyXxXxXxXxXx` |
| `OPENCLAW_DEFAULT_MODEL` | Optional | Default model for new conversations | `openai/gpt-oss-20b:free` |
### Data Persistence
HuggingClaw syncs `~/.openclaw` (conversations, settings, credentials) to a private HuggingFace Dataset repo so your data survives every restart.
**Option A β Auto mode (recommended)**
1. Set `AUTO_CREATE_DATASET` = `true` in your Space secrets
2. Set `HF_TOKEN` with write permission
3. Done β on first startup, HuggingClaw automatically creates a private Dataset repo named `your-username/SpaceName-data`. Each duplicated Space gets its own isolated dataset.
> (Optional) Set `OPENCLAW_DATASET_REPO` = `your-name/custom-name` if you prefer a specific repo name.
**Option B β Manual mode**
1. Go to [huggingface.co/new-dataset](https://huggingface.co/new-dataset) and create a **private** Dataset repo (e.g. `your-name/HuggingClaw-data`)
2. Set `OPENCLAW_DATASET_REPO` = `your-name/HuggingClaw-data` in your Space secrets
3. Set `HF_TOKEN` with write permission
4. Done β HuggingClaw will sync to this repo every 60 seconds
> **Security note:** `AUTO_CREATE_DATASET` defaults to `false` β HuggingClaw will never create repos on your behalf unless you explicitly opt in.
### Environment Variables
Fine-tune persistence and performance. Set these as **Repository Secrets** in HF Spaces, or in `.env` for local Docker.
| Variable | Default | Description |
|----------|---------|-------------|
| `GATEWAY_TOKEN` | `huggingclaw` | **Gateway token for Control UI access.** Override to set a custom token. |
| `AUTO_CREATE_DATASET` | `false` | **Auto-create the Dataset repo.** Set to `true` to auto-create a private Dataset repo on first startup. |
| `SYNC_INTERVAL` | `60` | **Backup interval in seconds.** How often data syncs to the Dataset repo. |
> For the full list (including `OPENAI_BASE_URL`, `OLLAMA_HOST`, proxy settings, etc.), see [`.env.example`](.env.example).
### 3. Open the Control UI
Visit your Space URL. Enter the gateway token (default: `huggingclaw`) to connect. Customize via `GATEWAY_TOKEN` secret.
Messaging integrations (Telegram, WhatsApp) can be configured directly inside the Control UI after connecting.
> **Telegram note:** HF Spaces blocks `api.telegram.org` DNS. HuggingClaw automatically probes alternative API endpoints at startup and selects one that works β no manual configuration needed.
## Configuration
HuggingClaw supports **all OpenClaw environment variables** β it passes the entire environment to the OpenClaw process (`env=os.environ.copy()`), so any variable from the [OpenClaw docs](https://openclawdoc.com/docs/reference/environment-variables) works out of the box in HF Spaces. This includes:
- **API Keys** β `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `GOOGLE_API_KEY`, `MISTRAL_API_KEY`, `COHERE_API_KEY`, `OPENROUTER_API_KEY`
- **Server** β `OPENCLAW_API_PORT`, `OPENCLAW_WS_PORT`, `OPENCLAW_HOST`
- **Memory** β `OPENCLAW_MEMORY_BACKEND`, `OPENCLAW_REDIS_URL`, `OPENCLAW_SQLITE_PATH`
- **Network** β `OPENCLAW_HTTP_PROXY`, `OPENCLAW_HTTPS_PROXY`, `OPENCLAW_NO_PROXY`
- **Ollama** β `OLLAMA_HOST`, `OLLAMA_NUM_PARALLEL`, `OLLAMA_KEEP_ALIVE`
- **Secrets** β `OPENCLAW_SECRETS_BACKEND`, `VAULT_ADDR`, `VAULT_TOKEN`
HuggingClaw adds its own variables for persistence and deployment: `HF_TOKEN`, `OPENCLAW_DATASET_REPO`, `AUTO_CREATE_DATASET`, `SYNC_INTERVAL`, `OPENCLAW_DEFAULT_MODEL`, etc. See [`.env.example`](.env.example) for the complete reference.
## Security
- **Environment isolation** β Each Space runs in its own Docker container, sandboxed from your local machine. Unlike running OpenClaw locally (where it has full system privileges), cloud deployment limits the blast radius.
- **Token authentication** β Control UI requires a gateway token to connect (default: `huggingclaw`, customizable via `GATEWAY_TOKEN`)
- **Secrets stay server-side** β API keys and tokens are never exposed to the browser
- **Private backups** β the Dataset repo is created as private by default
## License
MIT
|