macroclaw 0.4.0 → 0.5.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.
Files changed (3) hide show
  1. package/README.md +46 -46
  2. package/package.json +1 -1
  3. package/src/cli.ts +2 -1
package/README.md CHANGED
@@ -5,52 +5,6 @@ Telegram-to-Claude-Code bridge. Bun + Grammy.
5
5
  Uses the Claude Code CLI (`claude -p`) rather than the Agent SDK to avoid any possible
6
6
  ToS issues with using a Claude subscription programmatically.
7
7
 
8
- ## Vision
9
-
10
- Macroclaw is a minimal bridge between Telegram and Claude Code. It handles the parts
11
- that a Claude session can't: receiving messages, managing processes, scheduling tasks,
12
- and delivering responses.
13
-
14
- Everything else — personality, memory, skills, behavior, conventions — lives in the
15
- workspace. The platform stays small so the workspace can be infinitely customizable
16
- without touching platform code.
17
-
18
- ## Architecture
19
-
20
- Macroclaw follows a **thin platform, rich workspace** design:
21
-
22
- **Platform** (this repo) — the runtime bridge:
23
- - Telegram bot connection and message routing
24
- - Claude Code process orchestration and session management
25
- - Background agent spawning and lifecycle
26
- - Cron scheduler (reads job definitions from workspace)
27
- - Message queue (FIFO, serial processing)
28
- - Timeout management and auto-retry
29
-
30
- **Workspace** — the intelligence layer, initialized from [`workspace-template/`](workspace-template/):
31
- - [`CLAUDE.md`](workspace-template/CLAUDE.md) — agent behavior, conventions, response style
32
- - [`.claude/skills/`](workspace-template/.claude/skills/) — teachable capabilities
33
- - [`.macroclaw/cron.json`](workspace-template/.macroclaw/cron.json) — scheduled job definitions
34
- - [`MEMORY.md`](workspace-template/MEMORY.md) — persistent memory
35
-
36
- ### Where does a new feature belong?
37
-
38
- **Platform** when it:
39
- - Requires external API access (Telegram, future integrations)
40
- - Manages processes (spawning Claude, background agents, timeouts)
41
- - Operates outside Claude sessions (cron scheduling, message queuing)
42
- - Is a security boundary (chat authorization, workspace isolation)
43
- - Is bootstrap logic (workspace initialization)
44
-
45
- **Workspace** when it:
46
- - Defines agent behavior or personality
47
- - Is a convention Claude can follow via instructions
48
- - Can be implemented as a skill
49
- - Is data that Claude reads/writes (memory, tasks, cron definitions)
50
- - Is a formatting or response style rule
51
-
52
- > **Litmus test:** Could this feature work if you just wrote instructions in CLAUDE.md and/or created a skill? If yes → workspace. If no → platform.
53
-
54
8
  ## Security Model
55
9
 
56
10
  Macroclaw runs with `dangerouslySkipPermissions` enabled. This is intentional — the bot
@@ -138,6 +92,52 @@ bun test # run tests (100% coverage enforced)
138
92
  bun run claude # open Claude Code CLI in current main session
139
93
  ```
140
94
 
95
+ ## Vision
96
+
97
+ Macroclaw is a minimal bridge between Telegram and Claude Code. It handles the parts
98
+ that a Claude session can't: receiving messages, managing processes, scheduling tasks,
99
+ and delivering responses.
100
+
101
+ Everything else — personality, memory, skills, behavior, conventions — lives in the
102
+ workspace. The platform stays small so the workspace can be infinitely customizable
103
+ without touching platform code.
104
+
105
+ ## Architecture
106
+
107
+ Macroclaw follows a **thin platform, rich workspace** design:
108
+
109
+ **Platform** (this repo) — the runtime bridge:
110
+ - Telegram bot connection and message routing
111
+ - Claude Code process orchestration and session management
112
+ - Background agent spawning and lifecycle
113
+ - Cron scheduler (reads job definitions from workspace)
114
+ - Message queue (FIFO, serial processing)
115
+ - Timeout management and auto-retry
116
+
117
+ **Workspace** — the intelligence layer, initialized from [`workspace-template/`](workspace-template/):
118
+ - [`CLAUDE.md`](workspace-template/CLAUDE.md) — agent behavior, conventions, response style
119
+ - [`.claude/skills/`](workspace-template/.claude/skills/) — teachable capabilities
120
+ - [`.macroclaw/cron.json`](workspace-template/.macroclaw/cron.json) — scheduled job definitions
121
+ - [`MEMORY.md`](workspace-template/MEMORY.md) — persistent memory
122
+
123
+ ### Where does a new feature belong?
124
+
125
+ **Platform** when it:
126
+ - Requires external API access (Telegram, future integrations)
127
+ - Manages processes (spawning Claude, background agents, timeouts)
128
+ - Operates outside Claude sessions (cron scheduling, message queuing)
129
+ - Is a security boundary (chat authorization, workspace isolation)
130
+ - Is bootstrap logic (workspace initialization)
131
+
132
+ **Workspace** when it:
133
+ - Defines agent behavior or personality
134
+ - Is a convention Claude can follow via instructions
135
+ - Can be implemented as a skill
136
+ - Is data that Claude reads/writes (memory, tasks, cron definitions)
137
+ - Is a formatting or response style rule
138
+
139
+ > **Litmus test:** Could this feature work if you just wrote instructions in CLAUDE.md and/or created a skill? If yes → workspace. If no → platform.
140
+
141
141
  ## License
142
142
 
143
143
  MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "macroclaw",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Telegram-to-Claude-Code bridge",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/src/cli.ts CHANGED
@@ -3,6 +3,7 @@ import {existsSync, readFileSync} from "node:fs";
3
3
  import {join, resolve} from "node:path";
4
4
  import {createInterface} from "node:readline";
5
5
  import {defineCommand} from "citty";
6
+ import pkg from "../package.json" with { type: "json" };
6
7
  import {initLogger} from "./logger";
7
8
  import {ServiceManager, type SystemService} from "./service";
8
9
  import {loadSessions} from "./sessions";
@@ -180,7 +181,7 @@ const serviceCommand = defineCommand({
180
181
  });
181
182
 
182
183
  export const main = defineCommand({
183
- meta: { name: "macroclaw", description: "Telegram-to-Claude-Code bridge", version: "0.0.0-dev" },
184
+ meta: { name: pkg.name, description: pkg.description, version: pkg.version },
184
185
  subCommands: { start: startCommand, setup: setupCommand, claude: claudeCommand, service: serviceCommand },
185
186
  });
186
187