qclaw-cli 0.3.3 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.aiclaw.md +12 -7
- package/README.aliclaw.md +12 -7
- package/README.alpha-claw.md +25 -0
- package/README.alphaclaw.md +25 -0
- package/README.amazonclaw.md +12 -7
- package/README.amzclaw.md +12 -7
- package/README.anthropicclaw.md +12 -7
- package/README.appleclaw.md +12 -7
- package/README.autoopenclaw.md +12 -7
- package/README.awsclaw.md +12 -7
- package/README.bdclaw.md +12 -7
- package/README.blclaw.md +12 -7
- package/README.bytclaw.md +12 -7
- package/README.claw-open.md +12 -7
- package/README.clawjs.md +10 -7
- package/README.coclaw.md +12 -7
- package/README.copaw.md +16 -3
- package/README.ddclaw.md +12 -7
- package/README.duclaw.md +12 -7
- package/README.dyclaw.md +12 -7
- package/README.easyclaw.md +12 -7
- package/README.fastclaw.md +12 -7
- package/README.fbclaw.md +12 -7
- package/README.googleclaw.md +12 -7
- package/README.hello-claw.md +25 -0
- package/README.hwclaw.md +12 -7
- package/README.jdclaw.md +12 -7
- package/README.kimiclaw.md +12 -7
- package/README.ksclaw.md +16 -3
- package/README.maxclaw.md +12 -7
- package/README.md +12 -7
- package/README.md.bak +75 -0
- package/README.megaclaw.md +12 -7
- package/README.metaclaw.md +12 -7
- package/README.miclaw.md +12 -7
- package/README.msclaw.md +12 -7
- package/README.mtclaw.md +12 -7
- package/README.nflxclaw.md +12 -7
- package/README.nvdaclaw.md +12 -7
- package/README.open-claw.md +10 -7
- package/README.openaiclaw.md +12 -7
- package/README.openclaw-cli.md +11 -225
- package/README.openclaw-daemon.md +11 -225
- package/README.openclaw-gateway.md +11 -225
- package/README.openclaw-health.md +11 -225
- package/README.openclaw-helper.md +11 -225
- package/README.openclaw-install.md +11 -225
- package/README.openclaw-manage.md +11 -225
- package/README.openclaw-monitor.md +11 -225
- package/README.openclaw-run.md +11 -225
- package/README.openclaw-service.md +11 -225
- package/README.openclaw-setup.md +11 -225
- package/README.openclaw-start.md +11 -225
- package/README.openclaw-tools.md +11 -225
- package/README.openclaw-upgrade.md +17 -5
- package/README.openclaw-utils.md +11 -225
- package/README.openclaw-watch.md +11 -225
- package/README.pddclaw.md +12 -7
- package/README.qclaw-cli.md +12 -7
- package/README.qclaw.md +10 -7
- package/README.smartclaw.md +12 -7
- package/README.ttclaw.md +12 -7
- package/README.txclaw.md +12 -7
- package/README.uberclaw.md +12 -7
- package/README.volclaw.md +12 -7
- package/README.wxclaw.md +12 -7
- package/README.xclaw.md +16 -3
- package/README.zhclaw.md +12 -7
- package/dist/{chunk-U6JVOA5H.js → chunk-LJXPQKQB.js} +12 -70
- package/dist/index.js +3 -3
- package/dist/{server-GHEIPQJV.js → server-BR52HPJB.js} +1 -1
- package/package.json +32 -9
- package/CONTRIBUTING.md +0 -105
package/README.nvdaclaw.md
CHANGED
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
# nvdaclaw
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Alias package for **[openclaw-cli](https://www.npmjs.com/package/openclaw-cli)**.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
This package runs the same CLI engine as `openclaw-cli`.
|
|
6
6
|
|
|
7
|
-
Install
|
|
7
|
+
## Install
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
npm install -g nvdaclaw
|
|
11
|
-
nvdaclaw watch -d
|
|
12
11
|
```
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
nvdaclaw watch -d
|
|
17
|
+
nvdaclaw status
|
|
18
|
+
nvdaclaw gateway restart
|
|
19
|
+
```
|
|
15
20
|
|
|
16
21
|
## Links
|
|
17
22
|
|
|
23
|
+
- 🌐 Official site: [https://openclaw-cli.app](https://openclaw-cli.app)
|
|
18
24
|
- 📦 Main package: [openclaw-cli on npm](https://www.npmjs.com/package/openclaw-cli)
|
|
19
|
-
-
|
|
20
|
-
- 📖 Docs & Source: [github.com/Sobranier/openclaw-cli](https://github.com/Sobranier/openclaw-cli)
|
|
25
|
+
- 📖 Source: [github.com/Sobranier/openclaw-cli](https://github.com/Sobranier/openclaw-cli)
|
package/README.open-claw.md
CHANGED
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
# open-claw
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Alias package for **[openclaw-cli](https://www.npmjs.com/package/openclaw-cli)**.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
This package runs the same CLI engine as `openclaw-cli`.
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
npm install -g open-claw
|
|
11
|
-
open-claw watch -d
|
|
12
11
|
```
|
|
13
12
|
|
|
14
13
|
## Usage
|
|
15
14
|
|
|
16
15
|
```bash
|
|
17
|
-
open-claw watch -d
|
|
18
|
-
open-claw status
|
|
19
|
-
open-claw
|
|
16
|
+
open-claw watch -d
|
|
17
|
+
open-claw status
|
|
18
|
+
open-claw gateway restart
|
|
20
19
|
```
|
|
21
20
|
|
|
22
|
-
|
|
21
|
+
## Links
|
|
22
|
+
|
|
23
|
+
- 🌐 Official site: [https://openclaw-cli.app](https://openclaw-cli.app)
|
|
24
|
+
- 📦 Main package: [openclaw-cli on npm](https://www.npmjs.com/package/openclaw-cli)
|
|
25
|
+
- 📖 Source: [github.com/Sobranier/openclaw-cli](https://github.com/Sobranier/openclaw-cli)
|
package/README.openaiclaw.md
CHANGED
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
# openaiclaw
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Alias package for **[openclaw-cli](https://www.npmjs.com/package/openclaw-cli)**.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
This package runs the same CLI engine as `openclaw-cli`.
|
|
6
6
|
|
|
7
|
-
Install
|
|
7
|
+
## Install
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
npm install -g openaiclaw
|
|
11
|
-
openaiclaw watch -d
|
|
12
11
|
```
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
openaiclaw watch -d
|
|
17
|
+
openaiclaw status
|
|
18
|
+
openaiclaw gateway restart
|
|
19
|
+
```
|
|
15
20
|
|
|
16
21
|
## Links
|
|
17
22
|
|
|
23
|
+
- 🌐 Official site: [https://openclaw-cli.app](https://openclaw-cli.app)
|
|
18
24
|
- 📦 Main package: [openclaw-cli on npm](https://www.npmjs.com/package/openclaw-cli)
|
|
19
|
-
-
|
|
20
|
-
- 📖 Docs & Source: [github.com/Sobranier/openclaw-cli](https://github.com/Sobranier/openclaw-cli)
|
|
25
|
+
- 📖 Source: [github.com/Sobranier/openclaw-cli](https://github.com/Sobranier/openclaw-cli)
|
package/README.openclaw-cli.md
CHANGED
|
@@ -1,239 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
<img src="https://raw.githubusercontent.com/Sobranier/openclaw-cli/main/assets/welcome.png" alt="OpenClaw CLI" width="400" />
|
|
3
|
-
</p>
|
|
1
|
+
# openclaw-cli
|
|
4
2
|
|
|
5
|
-
|
|
3
|
+
> Alias package for **[openclaw-cli](https://www.npmjs.com/package/openclaw-cli)**.
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
Keep your OpenClaw service alive. Automatically.
|
|
9
|
-
</p>
|
|
10
|
-
|
|
11
|
-
<p align="center">
|
|
12
|
-
<a href="./README.zh-CN.md">中文文档</a>
|
|
13
|
-
</p>
|
|
14
|
-
|
|
15
|
-
## Get Started
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
npm install -g openclaw-cli
|
|
19
|
-
openclaw-cli watch -d
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
That's it. Doctor monitors your OpenClaw gateway in the background, restarts it when it goes down, and tells you what happened. Zero configuration needed -- it reads everything from your existing OpenClaw setup.
|
|
23
|
-
|
|
24
|
-
## Core Commands
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
openclaw-cli watch # Start monitoring (foreground)
|
|
28
|
-
openclaw-cli watch -d # Start monitoring (background)
|
|
29
|
-
openclaw-cli unwatch # Stop monitoring
|
|
30
|
-
|
|
31
|
-
openclaw-cli status # Quick health check
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
These four commands cover 90% of daily use.
|
|
35
|
-
|
|
36
|
-
## Gateway Management
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
openclaw-cli gateway start # Start the OpenClaw gateway
|
|
40
|
-
openclaw-cli gateway stop # Stop the gateway
|
|
41
|
-
openclaw-cli gateway restart # Restart the gateway
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Diagnostics & Logs
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
openclaw-cli doctor # Full diagnostics (binary, gateway, channels)
|
|
48
|
-
openclaw-cli logs # View gateway logs
|
|
49
|
-
openclaw-cli logs --error # View error logs only
|
|
50
|
-
openclaw-cli logs --doctor # View Doctor's own event logs
|
|
51
|
-
openclaw-cli dashboard # Web management UI (http://localhost:9090)
|
|
52
|
-
```
|
|
5
|
+
This package runs the same CLI engine as `openclaw-cli`.
|
|
53
6
|
|
|
54
7
|
## Install
|
|
55
8
|
|
|
56
9
|
```bash
|
|
57
|
-
# npm (recommended)
|
|
58
10
|
npm install -g openclaw-cli
|
|
59
|
-
|
|
60
|
-
# or run without installing
|
|
61
|
-
npx openclaw-cli status
|
|
62
11
|
```
|
|
63
12
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
## How It Works
|
|
67
|
-
|
|
68
|
-
Doctor auto-detects your OpenClaw installation:
|
|
69
|
-
|
|
70
|
-
- Reads `~/.openclaw/openclaw.json` for gateway port, channels, agents
|
|
71
|
-
- Finds the launchd service from `~/Library/LaunchAgents/`
|
|
72
|
-
- Checks health via `openclaw health --json` (real gateway RPC, not HTTP)
|
|
73
|
-
- Restarts via `launchctl kickstart` when needed
|
|
74
|
-
|
|
75
|
-
**You don't configure OpenClaw details.** Doctor figures them out.
|
|
76
|
-
|
|
77
|
-
## All Commands
|
|
78
|
-
|
|
79
|
-
| Command | Description |
|
|
80
|
-
|---------|-------------|
|
|
81
|
-
| **Monitoring** | |
|
|
82
|
-
| `watch` | Start health monitoring (foreground) |
|
|
83
|
-
| `watch -d` | Start health monitoring (background) |
|
|
84
|
-
| `watch -d --dashboard` | Background monitoring + web dashboard |
|
|
85
|
-
| `unwatch` | Stop monitoring |
|
|
86
|
-
| **Gateway** | |
|
|
87
|
-
| `gateway start` | Start the OpenClaw gateway |
|
|
88
|
-
| `gateway stop` | Stop the gateway |
|
|
89
|
-
| `gateway restart` | Restart the gateway |
|
|
90
|
-
| **Info** | |
|
|
91
|
-
| `status` | Show gateway and channel health |
|
|
92
|
-
| `status --json` | Machine-readable JSON output |
|
|
93
|
-
| `doctor` | Run full diagnostics |
|
|
94
|
-
| `dashboard` | Start web management UI |
|
|
95
|
-
| `logs` | Show gateway logs |
|
|
96
|
-
| `logs --error` | Show error logs only |
|
|
97
|
-
| `logs --doctor` | Show Doctor event logs |
|
|
98
|
-
|
|
99
|
-
## Configuration
|
|
100
|
-
|
|
101
|
-
Config is stored at `~/.openclaw-doctor/config.json`. Created automatically on first run. Only Doctor's own preferences -- no OpenClaw settings needed.
|
|
102
|
-
|
|
103
|
-
```json
|
|
104
|
-
{
|
|
105
|
-
"checkInterval": 30,
|
|
106
|
-
"failThreshold": 3,
|
|
107
|
-
"dashboardPort": 9090,
|
|
108
|
-
"maxRestartsPerHour": 5,
|
|
109
|
-
"openclawProfile": "default",
|
|
110
|
-
"notify": {
|
|
111
|
-
"webhook": {
|
|
112
|
-
"enabled": false,
|
|
113
|
-
"url": "",
|
|
114
|
-
"bodyTemplate": "{\"msgtype\":\"text\",\"text\":{\"content\":\"{{message}}\"}}"
|
|
115
|
-
},
|
|
116
|
-
"system": {
|
|
117
|
-
"enabled": true
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
| Field | Description | Default |
|
|
124
|
-
|-------|-------------|---------|
|
|
125
|
-
| `checkInterval` | Seconds between health checks | `30` |
|
|
126
|
-
| `failThreshold` | Consecutive failures before restart | `3` |
|
|
127
|
-
| `dashboardPort` | Web dashboard port | `9090` |
|
|
128
|
-
| `maxRestartsPerHour` | Restart throttle | `5` |
|
|
129
|
-
| `openclawProfile` | OpenClaw profile to monitor (`default`, `dev`, ...) | `default` |
|
|
130
|
-
| `notify.webhook.url` | Webhook for notifications | -- |
|
|
131
|
-
| `notify.system.enabled` | macOS native notifications | `true` |
|
|
132
|
-
|
|
133
|
-
## Notifications
|
|
134
|
-
|
|
135
|
-
Doctor notifies you across the full lifecycle:
|
|
136
|
-
|
|
137
|
-
| Event | Example |
|
|
138
|
-
|-------|---------|
|
|
139
|
-
| Monitoring started | "Doctor is watching your OpenClaw service" |
|
|
140
|
-
| Health degraded | "Service unhealthy (attempt 2/3)" |
|
|
141
|
-
| Restarting | "Restarting gateway..." |
|
|
142
|
-
| Restart succeeded | "Gateway back online" |
|
|
143
|
-
| Restart failed | "Restart failed: [error]" |
|
|
144
|
-
| Throttled | "Too many restarts, manual intervention needed" |
|
|
145
|
-
| Recovered | "Service recovered on its own" |
|
|
146
|
-
| Monitoring stopped | "Doctor stopped" |
|
|
147
|
-
|
|
148
|
-
Channels: **Webhook** (DingTalk, Feishu, Slack, etc.) + **macOS system notifications**.
|
|
149
|
-
|
|
150
|
-
## Skills Integration
|
|
151
|
-
|
|
152
|
-
Doctor runs as a standalone daemon, callable by OpenClaw or other tools:
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
openclaw-cli status --json # Machine-readable output
|
|
156
|
-
openclaw-cli watch -d # Idempotent -- safe to call repeatedly
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
If the caller crashes, Doctor keeps running.
|
|
160
|
-
|
|
161
|
-
## Architecture
|
|
162
|
-
|
|
163
|
-
```
|
|
164
|
-
+-----------------+
|
|
165
|
-
| Notification |
|
|
166
|
-
| (Webhook/OS) |
|
|
167
|
-
+--------^--------+
|
|
168
|
-
|
|
|
169
|
-
+-------------+ CLI +--------+--------+ RPC +-----------+
|
|
170
|
-
| OpenClaw | --------> | | ---------> | OpenClaw |
|
|
171
|
-
| / Scripts | | openclaw-doctor | | Gateway |
|
|
172
|
-
| / Skills | <-------- | (daemon) | <--------- | :18789 |
|
|
173
|
-
+-------------+ stdout +--------+--------+ health +-----------+
|
|
174
|
-
|
|
|
175
|
-
+--------v--------+
|
|
176
|
-
| ~/.openclaw/logs |
|
|
177
|
-
| (read & analyze) |
|
|
178
|
-
+-----------------+
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
## Development
|
|
13
|
+
## Usage
|
|
182
14
|
|
|
183
15
|
```bash
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
npm run dev -- status # Quick test
|
|
189
|
-
npm run dev -- watch # Foreground monitoring
|
|
190
|
-
npm run dev -- watch -d # Background daemon
|
|
191
|
-
npm run dev -- unwatch # Stop daemon
|
|
192
|
-
|
|
193
|
-
npm run build # Build for distribution
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
## Roadmap
|
|
197
|
-
|
|
198
|
-
- [x] Health check via `openclaw health --json` + auto-restart with throttling
|
|
199
|
-
- [x] Auto-detect OpenClaw config (gateway port, channels, agents, launchd)
|
|
200
|
-
- [x] Background daemon mode (`watch -d` / `unwatch`)
|
|
201
|
-
- [x] Gateway management (`gateway start/stop/restart`)
|
|
202
|
-
- [x] Read and display OpenClaw gateway logs
|
|
203
|
-
- [x] Web status dashboard
|
|
204
|
-
- [x] `--json` output for status
|
|
205
|
-
- [ ] Notification system (Webhook + macOS)
|
|
206
|
-
- [ ] `logs --tail` (real-time follow)
|
|
207
|
-
- [ ] `config` command (get/set)
|
|
208
|
-
- [ ] Multiple service monitoring
|
|
209
|
-
- [ ] Linux systemd support
|
|
210
|
-
|
|
211
|
-
## License
|
|
212
|
-
|
|
213
|
-
[MIT](./LICENSE)
|
|
214
|
-
|
|
215
|
-
## Publishing
|
|
216
|
-
|
|
217
|
-
This repo publishes two npm packages from the same codebase:
|
|
218
|
-
|
|
219
|
-
- **`openclaw-cli`** — the main package (`package.json`)
|
|
220
|
-
- **`openclaw-cli`** — alias package (`package.openclaw-cli.json`)
|
|
221
|
-
|
|
222
|
-
Both packages share the same version number and dist output.
|
|
223
|
-
|
|
224
|
-
### Release a new version
|
|
225
|
-
|
|
226
|
-
```bash
|
|
227
|
-
# 1. Bump version (patch / minor / major)
|
|
228
|
-
npm version patch
|
|
229
|
-
|
|
230
|
-
# 2. Build + publish both packages
|
|
231
|
-
npm run release
|
|
16
|
+
openclaw-cli watch -d
|
|
17
|
+
openclaw-cli status
|
|
18
|
+
openclaw-cli gateway restart
|
|
232
19
|
```
|
|
233
20
|
|
|
234
|
-
|
|
235
|
-
1. Builds once (`npm run build`)
|
|
236
|
-
2. Publishes `openclaw-cli` with the default `package.json`
|
|
237
|
-
3. Temporarily swaps in `package.openclaw-cli.json`, publishes `openclaw-cli`, then restores
|
|
21
|
+
## Links
|
|
238
22
|
|
|
239
|
-
|
|
23
|
+
- 🌐 Official site: [https://openclaw-cli.app](https://openclaw-cli.app)
|
|
24
|
+
- 📦 Main package: [openclaw-cli on npm](https://www.npmjs.com/package/openclaw-cli)
|
|
25
|
+
- 📖 Source: [github.com/Sobranier/openclaw-cli](https://github.com/Sobranier/openclaw-cli)
|
|
@@ -1,239 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
<img src="https://raw.githubusercontent.com/Sobranier/openclaw-cli/main/assets/welcome.png" alt="OpenClaw daemon" width="400" />
|
|
3
|
-
</p>
|
|
1
|
+
# openclaw-daemon
|
|
4
2
|
|
|
5
|
-
|
|
3
|
+
> Alias package for **[openclaw-cli](https://www.npmjs.com/package/openclaw-cli)**.
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
Keep your OpenClaw service alive. Automatically.
|
|
9
|
-
</p>
|
|
10
|
-
|
|
11
|
-
<p align="center">
|
|
12
|
-
<a href="./README.zh-CN.md">中文文档</a>
|
|
13
|
-
</p>
|
|
14
|
-
|
|
15
|
-
## Get Started
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
npm install -g openclaw-daemon
|
|
19
|
-
openclaw-daemon watch -d
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
That's it. Doctor monitors your OpenClaw gateway in the background, restarts it when it goes down, and tells you what happened. Zero configuration needed -- it reads everything from your existing OpenClaw setup.
|
|
23
|
-
|
|
24
|
-
## Core Commands
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
openclaw-daemon watch # Start monitoring (foreground)
|
|
28
|
-
openclaw-daemon watch -d # Start monitoring (background)
|
|
29
|
-
openclaw-daemon unwatch # Stop monitoring
|
|
30
|
-
|
|
31
|
-
openclaw-daemon status # Quick health check
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
These four commands cover 90% of daily use.
|
|
35
|
-
|
|
36
|
-
## Gateway Management
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
openclaw-daemon gateway start # Start the OpenClaw gateway
|
|
40
|
-
openclaw-daemon gateway stop # Stop the gateway
|
|
41
|
-
openclaw-daemon gateway restart # Restart the gateway
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Diagnostics & Logs
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
openclaw-daemon doctor # Full diagnostics (binary, gateway, channels)
|
|
48
|
-
openclaw-daemon logs # View gateway logs
|
|
49
|
-
openclaw-daemon logs --error # View error logs only
|
|
50
|
-
openclaw-daemon logs --doctor # View Doctor's own event logs
|
|
51
|
-
openclaw-daemon dashboard # Web management UI (http://localhost:9090)
|
|
52
|
-
```
|
|
5
|
+
This package runs the same CLI engine as `openclaw-cli`.
|
|
53
6
|
|
|
54
7
|
## Install
|
|
55
8
|
|
|
56
9
|
```bash
|
|
57
|
-
# npm (recommended)
|
|
58
10
|
npm install -g openclaw-daemon
|
|
59
|
-
|
|
60
|
-
# or run without installing
|
|
61
|
-
npx openclaw-daemon status
|
|
62
11
|
```
|
|
63
12
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
## How It Works
|
|
67
|
-
|
|
68
|
-
Doctor auto-detects your OpenClaw installation:
|
|
69
|
-
|
|
70
|
-
- Reads `~/.openclaw/openclaw.json` for gateway port, channels, agents
|
|
71
|
-
- Finds the launchd service from `~/Library/LaunchAgents/`
|
|
72
|
-
- Checks health via `openclaw health --json` (real gateway RPC, not HTTP)
|
|
73
|
-
- Restarts via `launchctl kickstart` when needed
|
|
74
|
-
|
|
75
|
-
**You don't configure OpenClaw details.** Doctor figures them out.
|
|
76
|
-
|
|
77
|
-
## All Commands
|
|
78
|
-
|
|
79
|
-
| Command | Description |
|
|
80
|
-
|---------|-------------|
|
|
81
|
-
| **Monitoring** | |
|
|
82
|
-
| `watch` | Start health monitoring (foreground) |
|
|
83
|
-
| `watch -d` | Start health monitoring (background) |
|
|
84
|
-
| `watch -d --dashboard` | Background monitoring + web dashboard |
|
|
85
|
-
| `unwatch` | Stop monitoring |
|
|
86
|
-
| **Gateway** | |
|
|
87
|
-
| `gateway start` | Start the OpenClaw gateway |
|
|
88
|
-
| `gateway stop` | Stop the gateway |
|
|
89
|
-
| `gateway restart` | Restart the gateway |
|
|
90
|
-
| **Info** | |
|
|
91
|
-
| `status` | Show gateway and channel health |
|
|
92
|
-
| `status --json` | Machine-readable JSON output |
|
|
93
|
-
| `doctor` | Run full diagnostics |
|
|
94
|
-
| `dashboard` | Start web management UI |
|
|
95
|
-
| `logs` | Show gateway logs |
|
|
96
|
-
| `logs --error` | Show error logs only |
|
|
97
|
-
| `logs --doctor` | Show Doctor event logs |
|
|
98
|
-
|
|
99
|
-
## Configuration
|
|
100
|
-
|
|
101
|
-
Config is stored at `~/.openclaw-doctor/config.json`. Created automatically on first run. Only Doctor's own preferences -- no OpenClaw settings needed.
|
|
102
|
-
|
|
103
|
-
```json
|
|
104
|
-
{
|
|
105
|
-
"checkInterval": 30,
|
|
106
|
-
"failThreshold": 3,
|
|
107
|
-
"dashboardPort": 9090,
|
|
108
|
-
"maxRestartsPerHour": 5,
|
|
109
|
-
"openclawProfile": "default",
|
|
110
|
-
"notify": {
|
|
111
|
-
"webhook": {
|
|
112
|
-
"enabled": false,
|
|
113
|
-
"url": "",
|
|
114
|
-
"bodyTemplate": "{\"msgtype\":\"text\",\"text\":{\"content\":\"{{message}}\"}}"
|
|
115
|
-
},
|
|
116
|
-
"system": {
|
|
117
|
-
"enabled": true
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
| Field | Description | Default |
|
|
124
|
-
|-------|-------------|---------|
|
|
125
|
-
| `checkInterval` | Seconds between health checks | `30` |
|
|
126
|
-
| `failThreshold` | Consecutive failures before restart | `3` |
|
|
127
|
-
| `dashboardPort` | Web dashboard port | `9090` |
|
|
128
|
-
| `maxRestartsPerHour` | Restart throttle | `5` |
|
|
129
|
-
| `openclawProfile` | OpenClaw profile to monitor (`default`, `dev`, ...) | `default` |
|
|
130
|
-
| `notify.webhook.url` | Webhook for notifications | -- |
|
|
131
|
-
| `notify.system.enabled` | macOS native notifications | `true` |
|
|
132
|
-
|
|
133
|
-
## Notifications
|
|
134
|
-
|
|
135
|
-
Doctor notifies you across the full lifecycle:
|
|
136
|
-
|
|
137
|
-
| Event | Example |
|
|
138
|
-
|-------|---------|
|
|
139
|
-
| Monitoring started | "Doctor is watching your OpenClaw service" |
|
|
140
|
-
| Health degraded | "Service unhealthy (attempt 2/3)" |
|
|
141
|
-
| Restarting | "Restarting gateway..." |
|
|
142
|
-
| Restart succeeded | "Gateway back online" |
|
|
143
|
-
| Restart failed | "Restart failed: [error]" |
|
|
144
|
-
| Throttled | "Too many restarts, manual intervention needed" |
|
|
145
|
-
| Recovered | "Service recovered on its own" |
|
|
146
|
-
| Monitoring stopped | "Doctor stopped" |
|
|
147
|
-
|
|
148
|
-
Channels: **Webhook** (DingTalk, Feishu, Slack, etc.) + **macOS system notifications**.
|
|
149
|
-
|
|
150
|
-
## Skills Integration
|
|
151
|
-
|
|
152
|
-
Doctor runs as a standalone daemon, callable by OpenClaw or other tools:
|
|
153
|
-
|
|
154
|
-
```bash
|
|
155
|
-
openclaw-daemon status --json # Machine-readable output
|
|
156
|
-
openclaw-daemon watch -d # Idempotent -- safe to call repeatedly
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
If the caller crashes, Doctor keeps running.
|
|
160
|
-
|
|
161
|
-
## Architecture
|
|
162
|
-
|
|
163
|
-
```
|
|
164
|
-
+-----------------+
|
|
165
|
-
| Notification |
|
|
166
|
-
| (Webhook/OS) |
|
|
167
|
-
+--------^--------+
|
|
168
|
-
|
|
|
169
|
-
+-------------+ CLI +--------+--------+ RPC +-----------+
|
|
170
|
-
| OpenClaw | --------> | | ---------> | OpenClaw |
|
|
171
|
-
| / Scripts | | openclaw-doctor | | Gateway |
|
|
172
|
-
| / Skills | <-------- | (daemon) | <--------- | :18789 |
|
|
173
|
-
+-------------+ stdout +--------+--------+ health +-----------+
|
|
174
|
-
|
|
|
175
|
-
+--------v--------+
|
|
176
|
-
| ~/.openclaw/logs |
|
|
177
|
-
| (read & analyze) |
|
|
178
|
-
+-----------------+
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
## Development
|
|
13
|
+
## Usage
|
|
182
14
|
|
|
183
15
|
```bash
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
npm run dev -- status # Quick test
|
|
189
|
-
npm run dev -- watch # Foreground monitoring
|
|
190
|
-
npm run dev -- watch -d # Background daemon
|
|
191
|
-
npm run dev -- unwatch # Stop daemon
|
|
192
|
-
|
|
193
|
-
npm run build # Build for distribution
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
## Roadmap
|
|
197
|
-
|
|
198
|
-
- [x] Health check via `openclaw health --json` + auto-restart with throttling
|
|
199
|
-
- [x] Auto-detect OpenClaw config (gateway port, channels, agents, launchd)
|
|
200
|
-
- [x] Background daemon mode (`watch -d` / `unwatch`)
|
|
201
|
-
- [x] Gateway management (`gateway start/stop/restart`)
|
|
202
|
-
- [x] Read and display OpenClaw gateway logs
|
|
203
|
-
- [x] Web status dashboard
|
|
204
|
-
- [x] `--json` output for status
|
|
205
|
-
- [ ] Notification system (Webhook + macOS)
|
|
206
|
-
- [ ] `logs --tail` (real-time follow)
|
|
207
|
-
- [ ] `config` command (get/set)
|
|
208
|
-
- [ ] Multiple service monitoring
|
|
209
|
-
- [ ] Linux systemd support
|
|
210
|
-
|
|
211
|
-
## License
|
|
212
|
-
|
|
213
|
-
[MIT](./LICENSE)
|
|
214
|
-
|
|
215
|
-
## Publishing
|
|
216
|
-
|
|
217
|
-
This repo publishes two npm packages from the same codebase:
|
|
218
|
-
|
|
219
|
-
- **`openclaw-daemon`** — the main package (`package.json`)
|
|
220
|
-
- **`openclaw-daemon`** — alias package (`package.openclaw-daemon.json`)
|
|
221
|
-
|
|
222
|
-
Both packages share the same version number and dist output.
|
|
223
|
-
|
|
224
|
-
### Release a new version
|
|
225
|
-
|
|
226
|
-
```bash
|
|
227
|
-
# 1. Bump version (patch / minor / major)
|
|
228
|
-
npm version patch
|
|
229
|
-
|
|
230
|
-
# 2. Build + publish both packages
|
|
231
|
-
npm run release
|
|
16
|
+
openclaw-daemon watch -d
|
|
17
|
+
openclaw-daemon status
|
|
18
|
+
openclaw-daemon gateway restart
|
|
232
19
|
```
|
|
233
20
|
|
|
234
|
-
|
|
235
|
-
1. Builds once (`npm run build`)
|
|
236
|
-
2. Publishes `openclaw-daemon` with the default `package.json`
|
|
237
|
-
3. Temporarily swaps in `package.openclaw-daemon.json`, publishes `openclaw-daemon`, then restores
|
|
21
|
+
## Links
|
|
238
22
|
|
|
239
|
-
|
|
23
|
+
- 🌐 Official site: [https://openclaw-cli.app](https://openclaw-cli.app)
|
|
24
|
+
- 📦 Main package: [openclaw-cli on npm](https://www.npmjs.com/package/openclaw-cli)
|
|
25
|
+
- 📖 Source: [github.com/Sobranier/openclaw-cli](https://github.com/Sobranier/openclaw-cli)
|