You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+39-2Lines changed: 39 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -154,10 +154,15 @@ make build
154
154
# Build for multiple platforms
155
155
make build-all
156
156
157
+
# Build for Raspberry Pi Zero 2 W (32-bit: make build-linux-arm; 64-bit: make build-linux-arm64)
158
+
make build-pi-zero
159
+
157
160
# Build And Install
158
161
make install
159
162
```
160
163
164
+
**Raspberry Pi Zero 2 W:** Use the binary that matches your OS: 32-bit Raspberry Pi OS → `make build-linux-arm` (output: `build/picoclaw-linux-arm`); 64-bit → `make build-linux-arm64` (output: `build/picoclaw-linux-arm64`). Or run `make build-pi-zero` to build both.
165
+
161
166
## 🐳 Docker Compose
162
167
163
168
You can also run PicoClaw using Docker Compose without installing anything locally.
@@ -288,12 +293,13 @@ That's it! You have a working AI assistant in 2 minutes.
288
293
289
294
## 💬 Chat Apps
290
295
291
-
Talk to your picoclaw through Telegram, Discord, DingTalk, LINE, or WeCom
296
+
Talk to your picoclaw through Telegram, Discord, WhatsApp, DingTalk, LINE, or WeCom
|**WhatsApp**| Easy (native: QR scan; or bridge URL) |
297
303
|**QQ**| Easy (AppID + AppSecret) |
298
304
|**DingTalk**| Medium (app credentials) |
299
305
|**LINE**| Medium (credentials + webhook URL) |
@@ -384,6 +390,33 @@ picoclaw gateway
384
390
385
391
</details>
386
392
393
+
<details>
394
+
<summary><b>WhatsApp</b> (native via whatsmeow)</summary>
395
+
396
+
PicoClaw can connect to WhatsApp in two ways:
397
+
398
+
-**Native (recommended):** In-process using [whatsmeow](https://github.com/tulir/whatsmeow). No separate bridge. Set `"use_native": true` and leave `bridge_url` empty. On first run, scan the QR code with WhatsApp (Linked Devices). Session is stored under your workspace (e.g. `workspace/whatsapp/`). The native channel is **optional** to keep the default binary small; build with `-tags whatsapp_native` (e.g. `make build-whatsapp-native` or `go build -tags whatsapp_native ./cmd/...`).
399
+
-**Bridge:** Connect to an external WebSocket bridge. Set `bridge_url` (e.g. `ws://localhost:3001`) and keep `use_native` false.
400
+
401
+
**Configure (native)**
402
+
403
+
```json
404
+
{
405
+
"channels": {
406
+
"whatsapp": {
407
+
"enabled": true,
408
+
"use_native": true,
409
+
"session_store_path": "",
410
+
"allow_from": []
411
+
}
412
+
}
413
+
}
414
+
```
415
+
416
+
If `session_store_path` is empty, the session is stored in `<workspace>/whatsapp/`. Run `picoclaw gateway`; on first run, scan the QR code printed in the terminal with WhatsApp → Linked Devices.
## "model ... not found in model_list" or OpenRouter "free is not a valid model ID"
4
+
5
+
**Symptom:** You see either:
6
+
7
+
-`Error creating provider: model "openrouter/free" not found in model_list`
8
+
- OpenRouter returns 400: `"free is not a valid model ID"`
9
+
10
+
**Cause:** The `model` field in your `model_list` entry is what gets sent to the API. For OpenRouter you must use the **full** model ID, not a shorthand.
11
+
12
+
-**Wrong:**`"model": "free"` → OpenRouter receives `free` and rejects it.
0 commit comments