macroclaw 0.36.0 → 0.38.0
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.md
CHANGED
|
@@ -25,7 +25,7 @@ bunx macroclaw setup
|
|
|
25
25
|
This runs the setup wizard, which:
|
|
26
26
|
1. Asks for your **Telegram bot token** (from [@BotFather](https://t.me/BotFather))
|
|
27
27
|
2. Starts the bot temporarily so you can send `/chatid` to discover your chat ID
|
|
28
|
-
3. Asks for your **chat ID**, **model** preference, **workspace path**, and optional **OpenAI API key**
|
|
28
|
+
3. Asks for your **chat ID**, **model** preference, **workspace path**, **timezone**, and optional **OpenAI API key**
|
|
29
29
|
4. Saves settings to `~/.macroclaw/settings.json`
|
|
30
30
|
5. Offers to install as a system service — this installs macroclaw globally (`bun install -g`), registers it as a **launchd** agent (macOS) or **systemd** unit (Linux), and starts the bridge automatically
|
|
31
31
|
|
|
@@ -43,10 +43,13 @@ Settings are stored in `~/.macroclaw/settings.json` and validated on startup.
|
|
|
43
43
|
| `chatId` | `AUTHORIZED_CHAT_ID` | — | Yes |
|
|
44
44
|
| `model` | `MODEL` | `sonnet` | No |
|
|
45
45
|
| `workspace` | `WORKSPACE` | `~/.macroclaw-workspace` | No |
|
|
46
|
+
| `timezone` | `TIMEZONE` | `UTC` | No |
|
|
46
47
|
| `openaiApiKey` | `OPENAI_API_KEY` | — | No |
|
|
47
|
-
| `logLevel` | `LOG_LEVEL` | `
|
|
48
|
+
| `logLevel` | `LOG_LEVEL` | `info` | No |
|
|
48
49
|
| `pinoramaUrl` | `PINORAMA_URL` | — | No |
|
|
49
50
|
|
|
51
|
+
**`timezone`** sets the agent's local timezone (IANA format, e.g. `Europe/Prague`, `America/New_York`). Used for the agent's clock display and scheduled event timing.
|
|
52
|
+
|
|
50
53
|
**`openaiApiKey`** is used for voice message transcription via [OpenAI Whisper](https://platform.openai.com/docs/guides/speech-to-text). Without it, voice messages are ignored.
|
|
51
54
|
|
|
52
55
|
Env vars take precedence over settings file values. On startup, a masked settings summary is printed showing which values were overridden by env vars.
|
|
@@ -66,7 +69,10 @@ Run `macroclaw --help` or `macroclaw <command> --help` for the complete referenc
|
|
|
66
69
|
| `macroclaw service uninstall` | Stop and remove the system service |
|
|
67
70
|
| `macroclaw service start` | Start the system service |
|
|
68
71
|
| `macroclaw service stop` | Stop the system service |
|
|
72
|
+
| `macroclaw service restart` | Restart the system service |
|
|
69
73
|
| `macroclaw service update` | Reinstall latest version and restart |
|
|
74
|
+
| `macroclaw service status` | Show service installation and running status |
|
|
75
|
+
| `macroclaw service logs` | Print the command to view service logs |
|
|
70
76
|
|
|
71
77
|
### Running as a service
|
|
72
78
|
|
|
@@ -80,7 +86,7 @@ macroclaw service install
|
|
|
80
86
|
|
|
81
87
|
Both paths install macroclaw globally via `bun install -g`, register it as a **launchd** agent (macOS) or **systemd** unit (Linux) with auto-restart, and start the bridge.
|
|
82
88
|
|
|
83
|
-
On Linux, the
|
|
89
|
+
On Linux, the service is installed as a **systemd user unit** (`~/.config/systemd/user/`). Only `loginctl enable-linger` is elevated via `sudo` (so the service runs without an active login session). All other operations run unprivileged.
|
|
84
90
|
|
|
85
91
|
## Docker
|
|
86
92
|
|
package/package.json
CHANGED
|
@@ -73,7 +73,7 @@ Two job types, discriminated by field:
|
|
|
73
73
|
|
|
74
74
|
| Field | Required | Description |
|
|
75
75
|
|-------|----------|-------------|
|
|
76
|
-
| `name` | yes | Short kebab-case identifier (e.g. `dentist-reminder`). Appears in the
|
|
76
|
+
| `name` | yes | Short kebab-case identifier (e.g. `dentist-reminder`). Appears in the `<schedule name="...">` element and event name when fired. |
|
|
77
77
|
| `cron` | for recurring | Standard cron expression (local time). See reference below. |
|
|
78
78
|
| `fireAt` | for one-time | ISO 8601 timestamp (e.g. `2026-03-15T08:00:00`). Can include a timezone offset (e.g. `2026-03-15T08:00:00+01:00`); without one, the time is interpreted in the configured timezone. |
|
|
79
79
|
| `prompt` | yes | The message sent to the agent when the event fires. Write it as a natural instruction. |
|
|
@@ -105,4 +105,4 @@ Common patterns:
|
|
|
105
105
|
- Changes are hot-reloaded — no restart needed
|
|
106
106
|
- File location: `<workspace>/data/schedule.json`
|
|
107
107
|
- One-shot events (`fireAt`) are cleaned up automatically after firing
|
|
108
|
-
- Missed one-shot events (e.g. service was down) are fired
|
|
108
|
+
- Missed one-shot events (e.g. service was down) are fired when the service restarts (up to 7 days late) with `missed-by` and `scheduled-at` attributes on the `<schedule>` element
|
|
@@ -57,15 +57,6 @@ Don't ask permission. Just do it.
|
|
|
57
57
|
- bullet points (plain text bullet character)
|
|
58
58
|
- No markdown syntax. No # headings. No [links](url). No *stars*.
|
|
59
59
|
|
|
60
|
-
## Scheduled Events
|
|
61
|
-
|
|
62
|
-
Scheduled events are created by the `schedule` skill and stored in `data/schedule.json`. Messages prefixed with `[Context: cron/<name>]` are automated scheduled events. The agent decides whether to respond:
|
|
63
|
-
|
|
64
|
-
- **action: "send"** — the response goes to Telegram
|
|
65
|
-
- **action: "silent"** — the response is logged but not sent
|
|
66
|
-
|
|
67
|
-
Use `silent` when a scheduled check finds nothing new. Only send when there's something worth reading.
|
|
68
|
-
|
|
69
60
|
## Skills
|
|
70
61
|
|
|
71
62
|
Skills live in `.claude/skills/`.
|