chore: rename project to clawdbot

This commit is contained in:
Peter Steinberger
2026-01-04 14:32:47 +00:00
parent d48dc71fa4
commit 246adaa119
841 changed files with 4590 additions and 4328 deletions

View File

@@ -9,19 +9,19 @@ read_when:
Status: external CLI integration only. No libsignal embedding.
## Why
- Signal OSS stack is GPL/AGPL; not compatible with Clawdis MIT if bundled.
- Signal OSS stack is GPL/AGPL; not compatible with Clawdbot MIT if bundled.
- signal-cli is unofficial; must stay up to date (Signal server churn).
## The “number model” (important)
- Clawdis is a **device** connected via `signal-cli`.
- If you run `signal-cli` on **your personal Signal account**, Clawdis will **not** respond to messages sent from that same account (loop protection: ignore sender==account).
- Clawdbot is a **device** connected via `signal-cli`.
- If you run `signal-cli` on **your personal Signal account**, Clawdbot will **not** respond to messages sent from that same account (loop protection: ignore sender==account).
- Result: you **cannot** “text yourself” to chat with the AI.
- For “I text her, she texts me back” you want a **separate Signal account/number for the bot**:
- Bot number runs `signal-cli` (linked device)
- Your personal number is in `signal.allowFrom`
- You DM the bot number; Clawdis replies back to you
- You DM the bot number; Clawdbot replies back to you
You can still run Clawdis on your own Signal account if your goal is “respond to other people as me”, but not for self-chat.
You can still run Clawdbot on your own Signal account if your goal is “respond to other people as me”, but not for self-chat.
## Model
- Run `signal-cli` as separate process (user-installed).
@@ -30,16 +30,16 @@ You can still run Clawdis on your own Signal account if your goal is “respond
## Quickstart (bot number)
1) Install `signal-cli` (keep Java installed).
- If you use the CLI wizard, it can auto-install to `~/.clawdis/tools/signal-cli/...`.
- If you use the CLI wizard, it can auto-install to `~/.clawdbot/tools/signal-cli/...`.
- If you want a pinned version (example: `v0.13.22`), install manually:
- Download the release asset for your platform from GitHub (tag `v0.13.22`).
- Extract it somewhere stable (example: `~/.clawdis/tools/signal-cli/0.13.22/`).
- Extract it somewhere stable (example: `~/.clawdbot/tools/signal-cli/0.13.22/`).
- Set `signal.cliPath` to the extracted `signal-cli` binary path.
2) Link the bot account as a device:
- Run: `signal-cli link -n "Clawdis"`
- Run: `signal-cli link -n "Clawdbot"`
- Scan QR in Signal: Settings → Linked Devices → Link New Device
- Verify: `signal-cli listAccounts` includes the bot E.164
3) Configure `~/.clawdis/clawdis.json`:
3) Configure `~/.clawdbot/clawdbot.json`:
```json5
{
signal: {
@@ -56,17 +56,17 @@ You can still run Clawdis on your own Signal account if your goal is “respond
}
```
4) Run gateway; sanity probe:
- `clawdis gateway call providers.status --params '{"probe":true}'`
- `clawdbot gateway call providers.status --params '{"probe":true}'`
- Expect `signal.probe.ok=true` and `signal.probe.version`.
5) DM the bot number from your phone; Clawdis replies.
5) DM the bot number from your phone; Clawdbot replies.
## “Do I need a separate number?”
- If you want “I text her and she texts me back”, yes: **use a separate Signal account/number for the bot**.
- Your personal account can run `signal-cli`, but you cant self-chat (Signal loop protection; Clawdis ignores sender==account).
- Your personal account can run `signal-cli`, but you cant self-chat (Signal loop protection; Clawdbot ignores sender==account).
If you have a second phone:
- Create/activate the bot number on that phone.
- Run `signal-cli link -n "Clawdis"` on your Mac, scan the QR on the bot phone.
- Run `signal-cli link -n "Clawdbot"` on your Mac, scan the QR on the bot phone.
- Put your personal number in `signal.allowFrom`, then DM the bot number from your personal phone.
## Endpoints (daemon --http)
@@ -94,12 +94,12 @@ If you have a second phone:
- Groups: `signal:group:<groupId>`
- Usernames: `username:<name>` / `u:<name>`
## Process plan (Clawdis adapter)
## Process plan (Clawdbot adapter)
1) Detect `signal-cli` binary; refuse if missing.
2) Launch daemon (HTTP preferred), store PID.
3) Poll `/api/v1/check` until ready.
4) Open SSE stream; parse `event: receive`.
5) Translate receive payload into Clawdis surface model.
5) Translate receive payload into Clawdbot surface model.
6) On SSE disconnect, backoff + reconnect.
## Storage