metame-cli 1.3.20 → 1.3.23
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 +115 -646
- package/index.js +11 -31
- package/package.json +1 -1
- package/scripts/daemon.js +1192 -236
- package/scripts/distill.js +63 -42
- package/scripts/feishu-adapter.js +65 -15
- package/scripts/skill-evolution.js +792 -0
- package/scripts/telegram-adapter.js +12 -4
- package/scripts/test_daemon.js +3818 -0
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# MetaMe
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
4
|
<img src="./logo.png" alt="MetaMe Logo" width="200"/>
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
<p align="center">
|
|
8
8
|
<a href="https://www.npmjs.com/package/metame-cli"><img src="https://img.shields.io/npm/v/metame-cli.svg" alt="npm version"></a>
|
|
9
9
|
<a href="https://www.npmjs.com/package/metame-cli"><img src="https://img.shields.io/npm/dm/metame-cli.svg" alt="npm downloads"></a>
|
|
10
|
-
<a href="https://nodejs.org"><img src="https://img.shields.io/node/v/metame-cli.svg" alt="node version"></a>
|
|
11
10
|
<a href="https://github.com/Yaron9/MetaMe/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/metame-cli.svg" alt="license"></a>
|
|
12
11
|
</p>
|
|
13
12
|
|
|
@@ -15,730 +14,200 @@
|
|
|
15
14
|
<a href="./README.md">English</a> | <a href="./README中文版.md">中文</a>
|
|
16
15
|
</p>
|
|
17
16
|
|
|
18
|
-
> **
|
|
19
|
-
>
|
|
20
|
-
> *Knows how you think. Works wherever you are.*
|
|
17
|
+
> **Claude Code that knows you — and works from your phone.**
|
|
21
18
|
|
|
22
|
-
|
|
19
|
+
MetaMe turns Claude Code into a persistent AI that remembers how you think, runs on your Mac 24/7, and takes commands from your phone via Telegram or Feishu.
|
|
23
20
|
|
|
24
|
-
|
|
21
|
+
One command. No cloud. Your machine, your data.
|
|
25
22
|
|
|
26
|
-
1. **Project Amnesia** — Switch folders, and it forgets who you are. Your communication style, coding preferences, constraints — gone. Every project, you start from scratch.
|
|
27
|
-
|
|
28
|
-
2. **Desktop-Bound** — Leave your computer, work stops. You can't continue that debugging session on your phone. You can't vibe with Claude on the train, in bed, or waiting in line.
|
|
29
|
-
|
|
30
|
-
**MetaMe** solves both — and more:
|
|
31
|
-
|
|
32
|
-
**🧠 Cognitive Profile** — A persistent "Global Brain" (`~/.claude_profile.yaml`) that travels with you across every project. Unlike ChatGPT/Claude's built-in memory (which stores *facts* like "user lives in X"), MetaMe captures *how you think* — your decision style, cognitive load preferences, and communication traits. It's not a memory system; it's a **Cognitive Mirror**.
|
|
33
|
-
|
|
34
|
-
**📱 Mobile Bridge** — Full Claude Code from your phone via Telegram or Feishu. Same tools, same files, same conversation history. Start on your computer, continue anywhere. `/cd last` syncs you to exactly where you left off.
|
|
35
|
-
|
|
36
|
-
**🔔 Remote Wake** — Daemon runs in the background on your computer. Send a message from your phone, and it wakes up Claude Code to do real work — edit files, run commands, commit code — even while you're away from your desk.
|
|
37
|
-
|
|
38
|
-
**📂 File Transfer** — Send files from your computer to your phone (ask Claude to send any project file). Send files from your phone to your computer (just attach them in chat). Seamless both ways.
|
|
39
|
-
|
|
40
|
-
**⏰ Heartbeat Tasks** — Schedule Claude to run automatically. Daily summaries, automated workflows, multi-step skill chains — all running on your machine, pushing results to your phone.
|
|
41
|
-
|
|
42
|
-
## ✨ Key Features
|
|
43
|
-
|
|
44
|
-
* **🧠 Global Brain (`~/.claude_profile.yaml`):** A single, portable source of truth — your identity, cognitive traits, and preferences travel with you across every project.
|
|
45
|
-
* **🧬 Cognitive Evolution Engine:** MetaMe learns how you think through three channels: (1) **Passive** — silently captures your messages and distills cognitive traits via Haiku on next launch; (2) **Manual** — `!metame evolve` for explicit teaching; (3) **Confidence gates** — strong directives ("always"/"from now on") write immediately, normal observations need 3+ consistent sightings before promotion. Schema-enforced (41 fields, 5 tiers, 800 token budget) to prevent bloat.
|
|
46
|
-
* **🛡️ Auto-Lock:** Mark any value with `# [LOCKED]` — treated as a constitution, never auto-modified.
|
|
47
|
-
* **🪞 Metacognition Layer (v1.3):** MetaMe now observes *how* you think, not just *what* you say. Behavioral pattern detection runs inside the existing Haiku distill call (zero extra cost). It tracks decision patterns, cognitive load, comfort zones, and avoidance topics across sessions. When persistent patterns emerge, MetaMe injects a one-line mirror observation — e.g., *"You tend to avoid testing until forced"* — with a 14-day cooldown per pattern. Conditional reflection prompts appear only when triggered (every 7th distill or 3x consecutive comfort zone). All injection logic runs in Node.js; Claude receives only pre-decided directives, never rules to self-evaluate.
|
|
48
|
-
* **📱 Remote Claude Code (v1.3):** Full Claude Code from your phone via Telegram or Feishu (Lark). Stateful sessions with `--resume` — same conversation history, tool use, and file editing as your terminal. Interactive buttons for project/session picking, directory browser, and macOS launchd auto-start.
|
|
49
|
-
* **🔄 Workflow Engine (v1.3):** Define multi-step skill chains as heartbeat tasks. Each workflow runs in a single Claude Code session via `--resume`, so step outputs flow as context to the next step. Example: `deep-research` → `tech-writing` → `wechat-publisher` — fully automated content pipeline.
|
|
50
|
-
* **⏹ Full Terminal Control from Mobile (v1.3.10):** `/stop` (ESC), `/undo` (ESC×2) with native file-history restoration, concurrent task protection, daemon auto-restart, and `metame continue` for seamless mobile-to-desktop sync.
|
|
51
|
-
* **🎯 Goal Alignment & Drift Detection (v1.3.11):** MetaMe now tracks whether your sessions align with your declared goals. Each distill assesses `goal_alignment` (aligned/partial/drifted) at zero extra API cost. When you drift for 2+ consecutive sessions, a mirror observation is injected passively; after 3+ sessions, a reflection prompt gently asks: "Was this an intentional pivot, or did you lose track?" Session logs now record project, branch, intent, and file directories for richer retrospective analysis. Pattern detection can spot sustained drift trends across your session history.
|
|
52
|
-
* **🔌 Provider Relay (v1.3.11):** Use any Anthropic-compatible API relay as your backend — no file mutation, no invasion. MetaMe injects `ANTHROPIC_BASE_URL` + `ANTHROPIC_API_KEY` at spawn time. Separate provider roles for `active`, `distill`, and `daemon` tasks. CLI: `metame provider add/use/remove/test`. Config stored in `~/.metame/providers.yaml`.
|
|
53
|
-
* **📊 Session History Bootstrap (v1.3.12):** Solves the cold-start problem — MetaMe previously needed 5-7 sessions before producing any visible feedback. Now, on first launch it auto-bootstraps your session history from existing Claude Code JSONL transcripts (zero API cost). Three complementary data layers: **Skeleton** (structural facts extracted locally — tools, duration, project, branch, intent), **Facets** (interaction quality from `/insights` — outcome, friction, satisfaction, when available), and **Haiku** (metacognitive judgments — cognitive load, zones, goal alignment, from the existing distill call). Patterns and mirror observations can appear from your very first MetaMe session.
|
|
54
|
-
* **🏥 Emergency Recovery (v1.3.13):** `/doctor` interactive diagnostics with one-tap fix buttons, `/sh` direct shell access from your phone (bypasses Claude entirely — the lifeline when everything else is broken), automatic config backup before any setting change, `/fix` to restore last known good config. `/model` interactive model switcher with auto-backup.
|
|
55
|
-
* **🌐 Browser Automation (v1.3.15):** Native Playwright MCP integration — auto-registered on first run. Every MetaMe user gets browser control capability out of the box. Combined with Skills, enables workflows like automated podcast publishing, form filling, and web scraping.
|
|
56
|
-
* **📂 Interactive File Browser (v1.3.15):** `/list` shows clickable button cards — folders expand inline, files download on tap. Folder buttons survive daemon restarts (absolute paths, no expiry). Zero token cost.
|
|
57
|
-
* **🔀 Parallel Multi-Agent Chats (v1.3.19):** Assign each agent its own dedicated Feishu/Telegram group. Messages in different groups execute in parallel — no waiting for each other. Route `chatId → agent` via `chat_agent_map` in `daemon.yaml`. Create a new group, send `/bind <name>` to register it instantly.
|
|
58
|
-
* **🔧 Config Hot-Reload Fix (v1.3.19):** `allowed_chat_ids` is now read dynamically on every message — no restart needed after editing `daemon.yaml`. `/fix` config restore now merges current `chatId` settings so manually-added groups are never lost.
|
|
59
|
-
* **🛡️ Daemon Auto-Restart via LaunchAgent (v1.3.19):** MetaMe's npm daemon is now managed by macOS launchd. Crashes or unexpected exits trigger an automatic restart after 5 seconds.
|
|
60
|
-
* **👥 Operator Permissions & Read-Only Mode (v1.3.19):** Add `operator_ids` to restrict who can execute Claude commands in shared groups. Non-operators can still chat and query (read/search/web only) — they just can't edit files, run bash, or trigger slash commands. Use `/myid` to discover any user's Feishu open_id.
|
|
61
|
-
|
|
62
|
-
## 🛠 Prerequisites
|
|
63
|
-
|
|
64
|
-
MetaMe is a wrapper around **Claude Code**. You must have Node.js and the official Claude Code tool installed first.
|
|
65
|
-
|
|
66
|
-
1. **Node.js**: Version 14 or higher.
|
|
67
|
-
2. **Claude Code**: Ensure `claude` is available in your PATH and you are logged in.
|
|
68
|
-
|
|
69
|
-
## 📦 Installation
|
|
70
|
-
|
|
71
|
-
**One-command install (recommended)** — installs Node.js, Claude Code, and MetaMe:
|
|
72
|
-
|
|
73
|
-
macOS / Linux:
|
|
74
23
|
```bash
|
|
75
|
-
|
|
24
|
+
npm install -g metame-cli && metame
|
|
76
25
|
```
|
|
77
26
|
|
|
78
|
-
|
|
79
|
-
```powershell
|
|
80
|
-
irm https://raw.githubusercontent.com/Yaron9/MetaMe/main/install.ps1 | iex
|
|
81
|
-
```
|
|
82
|
-
> Windows uses WSL (auto-installed if missing). After WSL install you'll need to reboot once, then re-run the command.
|
|
27
|
+
---
|
|
83
28
|
|
|
84
|
-
|
|
29
|
+
## What It Does
|
|
85
30
|
|
|
86
|
-
|
|
87
|
-
npm install -g metame-cli
|
|
88
|
-
```
|
|
31
|
+
### 1. Knows You Across Every Project
|
|
89
32
|
|
|
90
|
-
|
|
33
|
+
Claude Code forgets you every time you switch folders. MetaMe doesn't.
|
|
91
34
|
|
|
92
|
-
|
|
93
|
-
claude plugin install github:Yaron9/MetaMe/plugin
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## 🚀 Usage
|
|
97
|
-
|
|
98
|
-
Forget the `claude` command. From now on, simply type:
|
|
99
|
-
|
|
100
|
-
**Bash**
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
-
metame
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
Or, if you prefer mixed case (it's the same command):
|
|
107
|
-
|
|
108
|
-
**Bash**
|
|
109
|
-
|
|
110
|
-
```
|
|
111
|
-
MetaMe
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### The First Run (Genesis)
|
|
115
|
-
|
|
116
|
-
When you run MetaMe for the first time, it will detect that your profile is empty. It will pause the AI and enter **Calibration Mode**:
|
|
117
|
-
|
|
118
|
-
1. It will ask you for a **Codename** (Nickname).
|
|
119
|
-
2. It will initiate a **Deep Cognitive Interview** to map your talents, mental models, and hidden anxieties.
|
|
120
|
-
3. **Be Honest**: It acts as a mirror. The more raw truth you provide, the better it can shadow you.
|
|
121
|
-
4. Once finished, it saves your "Source Code" and launches Claude.
|
|
122
|
-
|
|
123
|
-
### Daily Workflow
|
|
124
|
-
|
|
125
|
-
1. `cd` into any project folder.
|
|
126
|
-
2. Run `metame`.
|
|
127
|
-
3. Claude will start and immediately say: *"Ready, [Your Name]..."*
|
|
128
|
-
4. Start coding. MetaMe manages the context in the background.
|
|
129
|
-
|
|
130
|
-
### Global Initialization (Reset/Interview)
|
|
131
|
-
|
|
132
|
-
If you want to restart the **Genesis Interview** to update your psychological profile:
|
|
133
|
-
|
|
134
|
-
**Bash**
|
|
135
|
-
|
|
136
|
-
```
|
|
137
|
-
metame interview
|
|
138
|
-
```
|
|
139
|
-
(Command to be implemented in v1.3 - currently you can manually edit `~/.claude_profile.yaml` or use `set-trait`)
|
|
140
|
-
|
|
141
|
-
### Cognitive Evolution
|
|
142
|
-
|
|
143
|
-
MetaMe learns who you are through two paths:
|
|
144
|
-
|
|
145
|
-
**Automatic (zero effort):** A global hook captures your messages. On next launch, Haiku distills cognitive traits in the background. Strong directives ("always"/"from now on") write immediately; normal observations need 3+ consistent sightings. All writes are schema-validated (41 fields, 800 token budget). You'll see:
|
|
35
|
+
A cognitive profile (`~/.claude_profile.yaml`) follows you everywhere — not just facts like "user prefers TypeScript", but *how you think*: your decision style, cognitive load preferences, communication patterns. It learns silently from your conversations via background distillation, no effort required.
|
|
146
36
|
|
|
147
37
|
```
|
|
38
|
+
$ metame
|
|
148
39
|
🧠 MetaMe: Distilling 7 moments in background...
|
|
40
|
+
Ready, Neo. What are we building?
|
|
149
41
|
```
|
|
150
42
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
```bash
|
|
154
|
-
metame set-trait status.focus "Learning Rust"
|
|
155
|
-
metame evolve "I prefer functional programming patterns"
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
**Episodic memory (keyframe, not full log):** MetaMe is not a memory system, but it captures two types of experiential "keyframes" that pure personality traits can't replace:
|
|
159
|
-
|
|
160
|
-
* **Anti-patterns** (`context.anti_patterns`, max 5): Cross-project failure lessons — e.g., *"Promise.all rejects all on single failure, use Promise.allSettled"*. Auto-expires after 60 days. Prevents the AI from repeating the same mistakes across sessions.
|
|
161
|
-
* **Milestones** (`context.milestones`, max 3): Recent completed landmarks — e.g., *"MetaMe v1.3 published"*. Provides continuity so Claude knows where you left off without you having to recap.
|
|
162
|
-
|
|
163
|
-
**Anti-bias safeguards:** single observations ≠ traits, contradictions are tracked not overwritten, pending traits expire after 30 days, context fields auto-clear on staleness.
|
|
164
|
-
|
|
165
|
-
**In-session commands (type inside Claude Code):**
|
|
166
|
-
|
|
167
|
-
| Command | Description |
|
|
168
|
-
|---------|-------------|
|
|
169
|
-
| `!metame refresh` | Re-inject profile into current session |
|
|
170
|
-
| `!metame evolve "..."` | Teach MetaMe a new insight |
|
|
171
|
-
| `!metame set-trait key value` | Update a specific profile field |
|
|
172
|
-
|
|
173
|
-
**Metacognition controls:**
|
|
174
|
-
|
|
175
|
-
```bash
|
|
176
|
-
metame quiet # Silence mirror observations & reflections for 48h
|
|
177
|
-
metame insights # Show detected behavioral patterns
|
|
178
|
-
metame mirror on|off # Toggle mirror injection
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
### Remote Claude Code — Telegram & Feishu (v1.3)
|
|
182
|
-
|
|
183
|
-
Full Claude Code from your phone — stateful sessions with conversation history, tool use, and file editing. Supports both Telegram and Feishu (Lark).
|
|
184
|
-
|
|
185
|
-
**Setup:**
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
|
-
metame daemon init # Create config + setup guide
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
Edit `~/.metame/daemon.yaml`:
|
|
192
|
-
|
|
193
|
-
```yaml
|
|
194
|
-
telegram:
|
|
195
|
-
enabled: true
|
|
196
|
-
bot_token: "YOUR_BOT_TOKEN" # From @BotFather
|
|
197
|
-
allowed_chat_ids:
|
|
198
|
-
- 123456789 # Your Telegram chat ID
|
|
199
|
-
|
|
200
|
-
feishu:
|
|
201
|
-
enabled: true
|
|
202
|
-
app_id: "YOUR_APP_ID" # From Feishu Developer Console
|
|
203
|
-
app_secret: "YOUR_APP_SECRET"
|
|
204
|
-
allowed_chat_ids: [] # Empty = deny all (fill via setup wizard)
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
**Start the daemon:**
|
|
208
|
-
|
|
209
|
-
```bash
|
|
210
|
-
metame start # Background process
|
|
211
|
-
metame status # Check if running
|
|
212
|
-
metame logs # Tail the log
|
|
213
|
-
metame stop # Shutdown
|
|
214
|
-
metame daemon install-launchd # macOS auto-start
|
|
215
|
-
metame daemon install-systemd # Linux/WSL auto-start
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
**Auto-start (recommended):** The daemon survives reboots and auto-restarts on crash.
|
|
219
|
-
|
|
220
|
-
macOS:
|
|
221
|
-
```bash
|
|
222
|
-
metame daemon install-launchd
|
|
223
|
-
launchctl load ~/Library/LaunchAgents/com.metame.daemon.plist
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
Linux / WSL:
|
|
227
|
-
```bash
|
|
228
|
-
metame daemon install-systemd
|
|
229
|
-
```
|
|
230
|
-
> WSL requires systemd enabled: add `[boot]\nsystemd=true` to `/etc/wsl.conf` and restart WSL.
|
|
231
|
-
|
|
232
|
-
> **Important:** Choose one management method — either auto-start or manual (`metame start/stop`). Don't mix them, or you'll get duplicate processes.
|
|
233
|
-
|
|
234
|
-
**Session commands (interactive buttons on Telegram & Feishu):**
|
|
235
|
-
|
|
236
|
-
| Command | Description |
|
|
237
|
-
|---------|-------------|
|
|
238
|
-
| `/last` | **Quick resume** — prefers current directory's recent session, falls back to global recent |
|
|
239
|
-
| `/new` | Start new session — pick project directory from button list |
|
|
240
|
-
| `/new <name>` | Start new session with a name (e.g., `/new API Refactor`) |
|
|
241
|
-
| `/resume` | Resume a session — clickable list, shows session names + real-time timestamps |
|
|
242
|
-
| `/resume <name>` | Resume by name (supports partial match, cross-project) |
|
|
243
|
-
| `/name <name>` | Name the current session (syncs with computer's `/rename`) |
|
|
244
|
-
| `/cd` | Change working directory — with directory browser |
|
|
245
|
-
| `/cd last` | **Sync to computer** — jump to the most recent session's directory |
|
|
246
|
-
| `/session` | Current session info |
|
|
247
|
-
| `/stop` | Interrupt current Claude task (like pressing ESC in terminal) |
|
|
248
|
-
| `/undo` | Undo turns with file restoration (like pressing ESC×2 in terminal) |
|
|
249
|
-
|
|
250
|
-
Just type naturally for conversation — every message stays in the same Claude Code session with full context.
|
|
251
|
-
|
|
252
|
-
**Session naming:** Sessions can be named via `/new <name>`, `/name <name>` (mobile), or Claude Code's `/rename` (desktop). Names are stored in Claude's native session index and sync across all interfaces — name it on your phone, see it on your computer.
|
|
253
|
-
|
|
254
|
-
**How it works:**
|
|
255
|
-
|
|
256
|
-
Each chat gets a persistent session via `claude -p --resume <session-id>`. This is the same Claude Code engine as your terminal — same tools (file editing, bash, code search), same conversation history. You can start work on your computer and `/resume` from your phone, or vice versa.
|
|
257
|
-
|
|
258
|
-
**Seamless switching between desktop and mobile (v1.3.13):**
|
|
259
|
-
|
|
260
|
-
The same session works on both desktop and mobile, but there's an asymmetry:
|
|
261
|
-
|
|
262
|
-
* **Desktop → Mobile:** Automatic. Mobile spawns a fresh `claude -p --resume` for each message, so it always reads the latest session file. Just keep chatting.
|
|
263
|
-
* **Mobile → Desktop:** Requires a sync. Desktop Claude Code holds the session in memory — it won't see messages added by the mobile daemon. Exit Claude first (Ctrl+C), then:
|
|
264
|
-
|
|
265
|
-
```bash
|
|
266
|
-
metame continue
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
This resumes the latest session with all mobile messages included. Also works as `metame sync`.
|
|
270
|
-
|
|
271
|
-
**Parallel request handling:** The daemon uses async spawning, so multiple users or overlapping requests don't block each other. Each Claude call runs in a non-blocking subprocess.
|
|
272
|
-
|
|
273
|
-
**Streaming status (v1.3.7):** See Claude's work progress in real-time on your phone:
|
|
274
|
-
|
|
275
|
-
```
|
|
276
|
-
📖 Read: 「config.yaml」
|
|
277
|
-
✏️ Edit: 「daemon.js」
|
|
278
|
-
💻 Bash: 「git status」
|
|
279
|
-
🔧 Skill: 「wechat-publisher」
|
|
280
|
-
🌐 Browser: 「navigate」
|
|
281
|
-
🔗 MCP:server: 「action」
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
**File transfer (v1.3.8):** Seamlessly move files between your phone and computer.
|
|
285
|
-
|
|
286
|
-
*Computer → Phone (download):* Ask Claude to send any project file:
|
|
287
|
-
|
|
288
|
-
```
|
|
289
|
-
You: Send me report.md
|
|
290
|
-
Claude: Here you go!
|
|
291
|
-
[📎 report.md] ← tap to download
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
Works for documents, audio, images, etc. Click button to download. Links valid for 30 minutes.
|
|
295
|
-
|
|
296
|
-
*Phone → Computer (upload):* Send files directly to your project:
|
|
297
|
-
|
|
298
|
-
```
|
|
299
|
-
[📎 You send a PDF, image, or any file]
|
|
300
|
-
Claude: 📥 Saved: document.pdf
|
|
301
|
-
File is in your project's upload/ folder.
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
Uploaded files are saved to `<project>/upload/`. Claude won't read large files automatically — just tell it when you want it to process them.
|
|
43
|
+
### 2. Full Claude Code From Your Phone
|
|
305
44
|
|
|
306
|
-
|
|
307
|
-
- **Feishu:** Requires `im:resource` + `im:message` permissions in app settings
|
|
308
|
-
|
|
309
|
-
**Task control (v1.3.13):** Full terminal-equivalent control from your phone.
|
|
310
|
-
|
|
311
|
-
*`/stop` — ESC equivalent:* Sends SIGINT to the running Claude process. Instant interruption, just like pressing ESC in your terminal.
|
|
312
|
-
|
|
313
|
-
*`/undo` — git-based code rollback (v1.3.16):* Before each Claude turn, the daemon auto-commits a `[metame-checkpoint]` to git. `/undo` lists recent checkpoints; tap one to `git reset --hard` back to that state. Session history is also truncated. Reliable across both `-p` mode and interactive sessions — no dependency on Claude CLI internals.
|
|
45
|
+
Your Mac runs a daemon. Your phone sends messages via Telegram or Feishu. Same Claude Code engine — same tools, same files, same session.
|
|
314
46
|
|
|
315
47
|
```
|
|
316
|
-
You: /
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
⏪ 添加测试用例 (30分钟前)
|
|
48
|
+
You (phone): Fix the auth bug in api/login.ts
|
|
49
|
+
Claude: ✏️ Edit: api/login.ts
|
|
50
|
+
💻 Bash: npm test
|
|
51
|
+
✅ Fixed. 3 tests passing.
|
|
321
52
|
```
|
|
322
53
|
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
**Auto-restart (v1.3.13):** The daemon watches its own code for changes. When you update MetaMe (via npm or git), the daemon automatically restarts with the new code — no manual restart needed. A notification is pushed to confirm.
|
|
326
|
-
|
|
327
|
-
**Emergency & diagnostics (v1.3.13):**
|
|
328
|
-
|
|
329
|
-
| Command | Description |
|
|
330
|
-
|---------|-------------|
|
|
331
|
-
| `/sh <cmd>` | Run shell command directly on your computer — bypasses Claude entirely. Emergency lifeline when the model is broken. |
|
|
332
|
-
| `/doctor` | Interactive diagnostics: checks config, model validity, Claude CLI, backups. Shows fix buttons if issues found. |
|
|
333
|
-
| `/fix` | Restore `daemon.yaml` from last backup |
|
|
334
|
-
| `/reset` | Reset model to opus |
|
|
335
|
-
|
|
336
|
-
**Other commands:**
|
|
54
|
+
Start on your laptop, continue on the train. `/stop` to interrupt, `/undo` to rollback, `/sh ls` for raw shell access when everything else breaks.
|
|
337
55
|
|
|
338
|
-
|
|
339
|
-
|---------|-------------|
|
|
340
|
-
| `/status` | Daemon status + profile summary |
|
|
341
|
-
| `/tasks` | List scheduled heartbeat tasks |
|
|
342
|
-
| `/run <name>` | Run a task immediately |
|
|
343
|
-
| `/model [name]` | Interactive model switcher with buttons (sonnet, opus, haiku). Accepts any model name when using a custom provider. Auto-backs up config before switching. |
|
|
344
|
-
| `/list` | File browser with clickable buttons — folders expand, files download. Zero tokens. |
|
|
345
|
-
| `/budget` | Today's token usage |
|
|
346
|
-
| `/quiet` | Silence mirror/reflections for 48h |
|
|
347
|
-
| `/reload` | Manually reload daemon.yaml (also auto-reloads on file change) |
|
|
348
|
-
| `/bind <name>` | Register current group as a dedicated agent chat — opens directory browser to pick working directory |
|
|
349
|
-
| `/chatid` | Show the current group's chat ID |
|
|
350
|
-
| `/myid` | Show your own Feishu sender open_id (for configuring `operator_ids`) |
|
|
56
|
+
### 3. Runs Autonomously
|
|
351
57
|
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
Define scheduled tasks in `daemon.yaml`:
|
|
58
|
+
Schedule tasks that run on your machine and push results to your phone:
|
|
355
59
|
|
|
356
60
|
```yaml
|
|
61
|
+
# ~/.metame/daemon.yaml
|
|
357
62
|
heartbeat:
|
|
358
63
|
tasks:
|
|
359
|
-
- name: "morning-
|
|
360
|
-
prompt: "Summarize
|
|
64
|
+
- name: "morning-brief"
|
|
65
|
+
prompt: "Summarize my git activity from yesterday"
|
|
361
66
|
interval: "24h"
|
|
362
|
-
model: "haiku"
|
|
363
67
|
notify: true
|
|
364
|
-
precondition: "curl -s -o /dev/null -w '%{http_code}' https://news.ycombinator.com | grep 200"
|
|
365
68
|
```
|
|
366
69
|
|
|
367
|
-
|
|
368
|
-
* `type: "script"`: Run a local script directly instead of `claude -p`.
|
|
369
|
-
* `notify: true`: Push results to Telegram/Feishu.
|
|
370
|
-
|
|
371
|
-
**Workflow tasks** (multi-step skill chains):
|
|
70
|
+
Chain skills into workflows — research, write, publish — fully automated:
|
|
372
71
|
|
|
373
72
|
```yaml
|
|
374
|
-
|
|
375
|
-
tasks:
|
|
376
|
-
- name: "daily-wechat"
|
|
73
|
+
- name: "daily-content"
|
|
377
74
|
type: "workflow"
|
|
378
|
-
interval: "24h"
|
|
379
|
-
model: "sonnet"
|
|
380
|
-
notify: true
|
|
381
75
|
steps:
|
|
382
76
|
- skill: "deep-research"
|
|
383
|
-
prompt: "
|
|
77
|
+
prompt: "Top 3 AI news today"
|
|
384
78
|
- skill: "tech-writing"
|
|
385
|
-
prompt: "Write
|
|
79
|
+
prompt: "Write an article from the research above"
|
|
386
80
|
- skill: "wechat-publisher"
|
|
387
|
-
prompt: "Publish
|
|
388
|
-
optional: true
|
|
81
|
+
prompt: "Publish it"
|
|
389
82
|
```
|
|
390
83
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
**Auto-reload:** The daemon watches `daemon.yaml` for changes. When Claude (or you) edits the config file, the daemon automatically reloads — no restart or `/reload` needed. A notification is pushed to confirm.
|
|
394
|
-
|
|
395
|
-
**Token efficiency:**
|
|
396
|
-
|
|
397
|
-
* Polling, slash commands, directory browsing: **zero tokens**
|
|
398
|
-
* Stateful sessions: same cost as using Claude Code in terminal (conversation history managed by Claude CLI)
|
|
399
|
-
* Budget tracking with daily limit (default 50k tokens)
|
|
400
|
-
* 10-second cooldown between Claude calls
|
|
401
|
-
|
|
402
|
-
**Security:**
|
|
403
|
-
|
|
404
|
-
* `allowed_chat_ids` whitelist — unauthorized users silently ignored (empty = deny all)
|
|
405
|
-
* `operator_ids` — within an allowed group, restrict command execution to specific users; non-operators get read-only chat mode
|
|
406
|
-
* `dangerously_skip_permissions` enabled by default for mobile (users can't click "allow" on phone — security relies on the chat ID whitelist)
|
|
407
|
-
* `~/.metame/` directory set to mode 700
|
|
408
|
-
* Bot tokens stored locally, never transmitted
|
|
409
|
-
|
|
410
|
-
### Multi-Agent Projects — Context Isolation & Nickname Routing (v1.3.18)
|
|
411
|
-
|
|
412
|
-
Organize your work into named agents, each tied to a project directory. Switch between them instantly from your phone — no commands needed, just say their name.
|
|
84
|
+
### 4. Skills That Evolve Themselves
|
|
413
85
|
|
|
414
|
-
|
|
86
|
+
MetaMe has a living skill ecosystem. Skills aren't static configs — they grow.
|
|
415
87
|
|
|
416
|
-
|
|
88
|
+
- **Auto-discovery**: When a task fails or a capability is missing, MetaMe's skill-scout automatically searches for, installs, and verifies new skills.
|
|
89
|
+
- **Learning by watching**: Can't automate a complex browser workflow? Say "我来演示" and MetaMe records your actions, then converts them into a reusable skill.
|
|
90
|
+
- **Post-task evolution**: After every significant task, the skill-evolution-manager reviews what worked and what didn't, then surgically updates the relevant skills with new knowledge.
|
|
91
|
+
- **Composable**: Skills chain together in workflows. A `deep-research` skill feeds into `tech-writing`, which feeds into `wechat-publisher` — each one improving from real usage.
|
|
417
92
|
|
|
418
|
-
**Setup via conversation:**
|
|
419
|
-
|
|
420
|
-
The easiest way to add an agent is to tell the bot:
|
|
421
|
-
|
|
422
|
-
> *"Add a project called 'work' pointing to ~/my-project, nickname is '工作'"*
|
|
423
|
-
|
|
424
|
-
Or edit `~/.metame/daemon.yaml` directly:
|
|
425
|
-
|
|
426
|
-
```yaml
|
|
427
|
-
projects:
|
|
428
|
-
my_agent:
|
|
429
|
-
name: "My Agent" # Display name in notifications
|
|
430
|
-
icon: "🤖" # Emoji shown in Feishu cards
|
|
431
|
-
color: "blue" # Feishu card color: blue|orange|green|purple|red|grey
|
|
432
|
-
cwd: "~/my-project" # Working directory for this agent
|
|
433
|
-
nicknames: [nickname1, nickname2] # Wake words (matched at message start)
|
|
434
|
-
heartbeat_tasks: [] # Scheduled tasks for this project (optional)
|
|
435
93
|
```
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
| Action | How |
|
|
442
|
-
|--------|-----|
|
|
443
|
-
| Switch agent | Send the nickname alone: `贾维斯` → `🤖 Jarvis 在线` |
|
|
444
|
-
| Switch + ask | `贾维斯, what's the status?` → switches then asks Claude |
|
|
445
|
-
| Pick from list | `/agent` → tap button to switch |
|
|
446
|
-
| Continue a reply | Reply to any bot message → session auto-restored |
|
|
447
|
-
| View all tasks | `/tasks` → grouped by project |
|
|
448
|
-
| Run a task | `/run <task-name>` |
|
|
449
|
-
|
|
450
|
-
**Nickname routing rules:**
|
|
451
|
-
- Matched at **message start only** — mentioning a nickname mid-sentence never triggers a switch
|
|
452
|
-
- Pure nickname (no content after) → instant switch, zero token cost, bypasses cooldown
|
|
453
|
-
- Nickname + content → switch then send content to Claude
|
|
454
|
-
|
|
455
|
-
**Heartbeat task notifications** arrive as colored Feishu cards — each project's color is distinct, so you can tell at a glance which agent sent the update.
|
|
456
|
-
|
|
457
|
-
### Parallel Multi-Agent Chats & `/bind` Command (v1.3.19)
|
|
458
|
-
|
|
459
|
-
Give each agent its own dedicated group chat — messages to different groups execute simultaneously without blocking each other.
|
|
460
|
-
|
|
461
|
-
**How it works:**
|
|
462
|
-
|
|
463
|
-
Each group is mapped to a specific agent via `chat_agent_map` in `daemon.yaml`. When a message arrives in a group, the daemon looks up which agent owns that `chatId` and dispatches the Claude call to that agent's working directory — fully parallel.
|
|
464
|
-
|
|
465
|
-
**Setup — `/bind` command (recommended):**
|
|
466
|
-
|
|
467
|
-
1. Create a new Feishu or Telegram group and add your bot.
|
|
468
|
-
2. In the group, send `/bind <name>` (e.g., `/bind backend`).
|
|
469
|
-
3. The bot opens a Finder-style directory browser — tap folders to navigate, tap a folder name to select it as the working directory.
|
|
470
|
-
4. Done. The bot automatically:
|
|
471
|
-
- Adds the group's `chatId` to `allowed_chat_ids`
|
|
472
|
-
- Creates a `chat_agent_map` entry routing this group to the agent
|
|
473
|
-
- Creates a `projects` entry for the agent
|
|
474
|
-
- Sends a welcome card
|
|
475
|
-
|
|
476
|
-
> **No whitelist required:** `/bind` works in any group — the new group self-registers without needing to be pre-approved in `allowed_chat_ids`.
|
|
477
|
-
|
|
478
|
-
> **Re-binding:** Send `/bind <name>` again in the same group to overwrite the previous configuration.
|
|
479
|
-
|
|
480
|
-
**Manual setup** (`~/.metame/daemon.yaml`):
|
|
481
|
-
|
|
482
|
-
```yaml
|
|
483
|
-
chat_agent_map:
|
|
484
|
-
"oc_abc123": "backend" # chatId → project key
|
|
485
|
-
"oc_def456": "frontend"
|
|
486
|
-
|
|
487
|
-
projects:
|
|
488
|
-
backend:
|
|
489
|
-
name: "Backend API"
|
|
490
|
-
cwd: "~/projects/api"
|
|
491
|
-
frontend:
|
|
492
|
-
name: "Frontend App"
|
|
493
|
-
cwd: "~/projects/app"
|
|
94
|
+
Task fails → skill-scout finds a skill → installs → retries → succeeds
|
|
95
|
+
↓
|
|
96
|
+
skill-evolution-manager
|
|
97
|
+
updates skill with lessons learned
|
|
494
98
|
```
|
|
495
99
|
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
In any authorized group, send `/chatid` and the bot replies with the current group's `chatId`. Useful for manual configuration.
|
|
499
|
-
|
|
500
|
-
| Command | Description |
|
|
501
|
-
|---------|-------------|
|
|
502
|
-
| `/bind <name>` | Register current group as a dedicated agent chat — opens directory browser to pick working directory |
|
|
503
|
-
| `/chatid` | Show the current group's chat ID |
|
|
504
|
-
| `/myid` | Show your own Feishu sender open_id |
|
|
100
|
+
This is the difference between a tool library and an organism. OpenClaw has a skill marketplace; MetaMe has skills that **learn from their own failures**.
|
|
505
101
|
|
|
506
|
-
|
|
102
|
+
---
|
|
507
103
|
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
```yaml
|
|
511
|
-
feishu:
|
|
512
|
-
operator_ids:
|
|
513
|
-
- "ou_abc123yourid" # Only these users can execute commands
|
|
514
|
-
```
|
|
104
|
+
## Quick Start
|
|
515
105
|
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
| User type | Chat & query | Slash commands | Write / Edit / Bash |
|
|
519
|
-
|-----------|:---:|:---:|:---:|
|
|
520
|
-
| Operator | ✅ | ✅ | ✅ |
|
|
521
|
-
| Non-operator | ✅ | ❌ | ❌ |
|
|
522
|
-
|
|
523
|
-
> If `operator_ids` is empty, all whitelisted users have full access (default behavior).
|
|
524
|
-
|
|
525
|
-
### Provider Relay — Third-Party Model Support (v1.3.11)
|
|
526
|
-
|
|
527
|
-
MetaMe supports any Anthropic-compatible API relay as a backend. This means you can route Claude Code through a third-party relay that maps `sonnet`/`opus`/`haiku` to any model (GPT-4, DeepSeek, Gemini, etc.) — MetaMe passes standard model names and the relay handles translation.
|
|
528
|
-
|
|
529
|
-
**How it works:** At spawn time, MetaMe injects `ANTHROPIC_BASE_URL` + `ANTHROPIC_API_KEY` environment variables. Zero file mutation — `~/.claude/settings.json` is never touched.
|
|
530
|
-
|
|
531
|
-
**CLI commands:**
|
|
106
|
+
### Install
|
|
532
107
|
|
|
533
108
|
```bash
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
metame provider use <name> # Switch active provider
|
|
537
|
-
metame provider remove <name> # Remove a provider (can't remove 'anthropic')
|
|
538
|
-
metame provider test [name] # Test connectivity
|
|
539
|
-
metame provider set-role distill <name> # Use a different provider for background distill
|
|
540
|
-
metame provider set-role daemon <name> # Use a different provider for daemon tasks
|
|
541
|
-
```
|
|
542
|
-
|
|
543
|
-
**Configuration** (`~/.metame/providers.yaml`):
|
|
544
|
-
|
|
545
|
-
```yaml
|
|
546
|
-
active: 'anthropic'
|
|
547
|
-
providers:
|
|
548
|
-
anthropic:
|
|
549
|
-
label: 'Anthropic (Official)'
|
|
550
|
-
my-relay:
|
|
551
|
-
label: 'My Relay'
|
|
552
|
-
base_url: 'https://api.relay.example.com/v1'
|
|
553
|
-
api_key: 'sk-xxx'
|
|
554
|
-
distill_provider: null # null = use active
|
|
555
|
-
daemon_provider: null # null = use active
|
|
556
|
-
```
|
|
557
|
-
|
|
558
|
-
Three independent provider roles let you optimize cost: e.g., use an official Anthropic key for active work, a cheaper relay for background distill, and another for daemon heartbeat tasks.
|
|
559
|
-
|
|
560
|
-
### Hot Reload (Refresh)
|
|
561
|
-
|
|
562
|
-
If you update your profile or need to fix a broken context **without restarting your session**:
|
|
563
|
-
|
|
564
|
-
* **Inside Claude**: Run `!metame refresh`
|
|
565
|
-
* **External Terminal**: Run `metame refresh`
|
|
566
|
-
|
|
567
|
-
This re-injects your latest profile into `CLAUDE.md` instantly.
|
|
568
|
-
|
|
569
|
-
## ⚙️ Configuration & The "Global Brain"
|
|
570
|
-
|
|
571
|
-
Your profile is stored in a hidden YAML file in your home directory.
|
|
572
|
-
|
|
573
|
-
**Location:** `~/.claude_profile.yaml`
|
|
574
|
-
|
|
575
|
-
You can edit this file manually to update your status or lock your values.
|
|
576
|
-
|
|
577
|
-
**Example Profile (v2 Schema):**
|
|
578
|
-
|
|
579
|
-
**YAML**
|
|
580
|
-
|
|
581
|
-
```
|
|
582
|
-
# === T1: Identity (LOCKED) ===
|
|
583
|
-
identity:
|
|
584
|
-
nickname: Neo # [LOCKED]
|
|
585
|
-
role: Senior Architect
|
|
586
|
-
locale: en-US # [LOCKED]
|
|
587
|
-
|
|
588
|
-
# === T2: Core Traits (LOCKED) ===
|
|
589
|
-
core_traits:
|
|
590
|
-
crisis_reflex: Analysis # [LOCKED]
|
|
591
|
-
flow_trigger: Debugging # [LOCKED]
|
|
592
|
-
learning_style: Hands-on # [LOCKED]
|
|
593
|
-
|
|
594
|
-
# === T3: Preferences (auto-learnable) ===
|
|
595
|
-
preferences:
|
|
596
|
-
code_style: concise
|
|
597
|
-
communication: direct
|
|
598
|
-
explanation_depth: brief_rationale
|
|
599
|
-
|
|
600
|
-
# === T3b: Cognition (auto-learnable, slow to change) ===
|
|
601
|
-
cognition:
|
|
602
|
-
decision_style: analytical
|
|
603
|
-
info_processing:
|
|
604
|
-
entry_point: big_picture
|
|
605
|
-
preferred_format: structured
|
|
606
|
-
cognitive_load:
|
|
607
|
-
chunk_size: medium
|
|
608
|
-
preferred_response_length: moderate
|
|
609
|
-
|
|
610
|
-
# === T4: Context (auto-overwrite) ===
|
|
611
|
-
context:
|
|
612
|
-
focus: "Refactoring Legacy Code"
|
|
613
|
-
energy: high
|
|
614
|
-
|
|
615
|
-
# === T5: Evolution (system-managed) ===
|
|
616
|
-
evolution:
|
|
617
|
-
distill_count: 12
|
|
618
|
-
last_distill: "2026-01-30T10:00:00Z"
|
|
619
|
-
```
|
|
620
|
-
|
|
621
|
-
* **T1-T2 fields** marked `# [LOCKED]` are never auto-modified.
|
|
622
|
-
* **T3 fields** are auto-learned with confidence thresholds.
|
|
623
|
-
* **T4 fields** are freely overwritten as your context changes.
|
|
624
|
-
* **T5 fields** are managed by the distillation system.
|
|
625
|
-
|
|
626
|
-
### Profile Migration (v1 → v2)
|
|
627
|
-
|
|
628
|
-
If you have an existing v1 profile, run the migration script:
|
|
109
|
+
# One-line install (includes Node.js + Claude Code if missing)
|
|
110
|
+
curl -fsSL https://raw.githubusercontent.com/Yaron9/MetaMe/main/install.sh | bash
|
|
629
111
|
|
|
112
|
+
# Or if you already have Claude Code
|
|
113
|
+
npm install -g metame-cli
|
|
630
114
|
```
|
|
631
|
-
node ~/.metame/migrate-v2.js --dry-run # preview changes
|
|
632
|
-
node ~/.metame/migrate-v2.js # apply migration (auto-backup created)
|
|
633
|
-
```
|
|
634
|
-
|
|
635
|
-
## 🗑️ Uninstallation
|
|
636
|
-
|
|
637
|
-
If you wish to remove MetaMe completely from your system, follow these steps:
|
|
638
115
|
|
|
639
|
-
###
|
|
116
|
+
### First Run
|
|
640
117
|
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
**Bash**
|
|
644
|
-
|
|
645
|
-
```
|
|
646
|
-
npm uninstall -g metame-cli
|
|
118
|
+
```bash
|
|
119
|
+
metame
|
|
647
120
|
```
|
|
648
121
|
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
If you want to delete your stored profile data:
|
|
122
|
+
On first launch, MetaMe runs a brief cognitive interview to build your profile. After that, it's automatic.
|
|
652
123
|
|
|
653
|
-
|
|
124
|
+
### Enable Mobile Access
|
|
654
125
|
|
|
655
|
-
```
|
|
656
|
-
|
|
126
|
+
```bash
|
|
127
|
+
metame daemon init # Creates config with setup guide
|
|
128
|
+
metame start # Launches background daemon
|
|
657
129
|
```
|
|
658
130
|
|
|
659
|
-
|
|
131
|
+
Edit `~/.metame/daemon.yaml` with your Telegram bot token or Feishu app credentials, then:
|
|
660
132
|
|
|
661
133
|
```bash
|
|
662
|
-
metame
|
|
663
|
-
|
|
664
|
-
# macOS: remove auto-start
|
|
665
|
-
launchctl unload ~/Library/LaunchAgents/com.metame.daemon.plist 2>/dev/null
|
|
666
|
-
rm -f ~/Library/LaunchAgents/com.metame.daemon.plist
|
|
667
|
-
|
|
668
|
-
# Linux/WSL: remove auto-start
|
|
669
|
-
systemctl --user disable metame-daemon 2>/dev/null
|
|
670
|
-
rm -f ~/.config/systemd/user/metame-daemon.service
|
|
134
|
+
metame daemon install-launchd # Auto-start on boot + crash recovery
|
|
671
135
|
```
|
|
672
136
|
|
|
673
|
-
|
|
137
|
+
Done. Open Telegram, message your bot.
|
|
674
138
|
|
|
675
|
-
|
|
139
|
+
---
|
|
676
140
|
|
|
677
|
-
|
|
141
|
+
## Core Capabilities
|
|
678
142
|
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
143
|
+
| Capability | What It Does |
|
|
144
|
+
|-----------|-------------|
|
|
145
|
+
| **Cognitive Profile** | Learns how you think across sessions. Schema-enforced, 800-token budget, auto-distilled via Haiku. Lock any value with `# [LOCKED]`. |
|
|
146
|
+
| **Mobile Bridge** | Full Claude Code via Telegram/Feishu. Stateful sessions, file transfer both ways, real-time streaming status. |
|
|
147
|
+
| **Skill Evolution** | Self-healing skill system. Auto-discovers missing skills, learns from browser recordings, evolves after every task. Skills get smarter over time. |
|
|
148
|
+
| **Heartbeat Tasks** | Scheduled Claude runs with cron-like intervals. Preconditions, workflows, push notifications. |
|
|
149
|
+
| **Multi-Agent** | Multiple projects with dedicated chat groups. `/bind` for one-tap setup. True parallel execution. |
|
|
150
|
+
| **Browser Automation** | Built-in Playwright MCP. Browser control out of the box for every user. |
|
|
151
|
+
| **Provider Relay** | Route through any Anthropic-compatible API. Use GPT-4, DeepSeek, Gemini — zero config file mutation. |
|
|
152
|
+
| **Metacognition** | Detects behavioral patterns (decision style, comfort zones, goal drift) and injects mirror observations. Zero extra API cost. |
|
|
153
|
+
| **Emergency Tools** | `/doctor` diagnostics, `/sh` raw shell, `/fix` config restore, `/undo` git-based rollback. |
|
|
682
154
|
|
|
683
|
-
|
|
155
|
+
## Mobile Commands
|
|
684
156
|
|
|
685
|
-
|
|
157
|
+
| Command | Action |
|
|
158
|
+
|---------|--------|
|
|
159
|
+
| `/last` | Resume most recent session |
|
|
160
|
+
| `/new` | Start new session (project picker) |
|
|
161
|
+
| `/resume` | Pick from session list |
|
|
162
|
+
| `/stop` | Interrupt current task (ESC) |
|
|
163
|
+
| `/undo` | Rollback with file restoration |
|
|
164
|
+
| `/list` | Browse & download project files |
|
|
165
|
+
| `/model` | Switch model (sonnet/opus/haiku) |
|
|
166
|
+
| `/bind <name>` | Register group as dedicated agent |
|
|
167
|
+
| `/sh <cmd>` | Raw shell — bypasses Claude |
|
|
168
|
+
| `/doctor` | Interactive diagnostics |
|
|
686
169
|
|
|
687
|
-
|
|
170
|
+
## How It Works
|
|
688
171
|
|
|
689
172
|
```
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
173
|
+
┌─────────────┐ Telegram/Feishu ┌──────────────────────┐
|
|
174
|
+
│ Your Phone │ ◄──────────────────────► │ MetaMe Daemon │
|
|
175
|
+
└─────────────┘ │ (your Mac, 24/7) │
|
|
176
|
+
│ │
|
|
177
|
+
│ ┌──────────────┐ │
|
|
178
|
+
│ │ Claude Code │ │
|
|
179
|
+
│ │ (same engine) │ │
|
|
180
|
+
│ └──────────────┘ │
|
|
181
|
+
│ │
|
|
182
|
+
│ ~/.claude_profile │
|
|
183
|
+
│ (cognitive layer) │
|
|
184
|
+
└──────────────────────┘
|
|
698
185
|
```
|
|
699
186
|
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
187
|
+
- **Profile** (`~/.claude_profile.yaml`): Your cognitive fingerprint. Injected into every Claude session via `CLAUDE.md`.
|
|
188
|
+
- **Daemon** (`scripts/daemon.js`): Background process handling Telegram/Feishu messages, heartbeat tasks, and file watching.
|
|
189
|
+
- **Distillation** (`scripts/distill.js`): On each launch, silently analyzes your recent messages and updates your profile.
|
|
703
190
|
|
|
704
|
-
##
|
|
191
|
+
## Security
|
|
705
192
|
|
|
706
|
-
|
|
193
|
+
- All data stays on your machine. No cloud, no telemetry.
|
|
194
|
+
- `allowed_chat_ids` whitelist — unauthorized users are silently ignored.
|
|
195
|
+
- `operator_ids` for shared groups — non-operators get read-only mode.
|
|
196
|
+
- `~/.metame/` directory is mode 700.
|
|
197
|
+
- Bot tokens stored locally, never transmitted.
|
|
707
198
|
|
|
708
|
-
|
|
199
|
+
## Performance
|
|
709
200
|
|
|
710
|
-
|
|
711
|
-
* **Impact**: On a 200k context window, this is **0.5%** of the memory.
|
|
712
|
-
* **ROI**: By pre-loading your context, you avoid the "instructional drift" and repetitive correction loops that usually waste thousands of tokens at the start of every session.
|
|
713
|
-
* **Passive Distillation Cost**: The signal capture hook is a local Node.js script (zero API calls). The Haiku distillation on launch processes only a small buffer of filtered messages — typically a few hundred tokens at Haiku's very low cost.
|
|
201
|
+
The entire cognitive layer costs ~800 tokens per session (0.4% of a 200k context window). Background distillation uses Haiku at minimal cost. Mobile commands like `/stop`, `/list`, `/undo` consume zero tokens.
|
|
714
202
|
|
|
715
|
-
##
|
|
203
|
+
## Plugin (Lightweight)
|
|
716
204
|
|
|
717
|
-
|
|
718
|
-
A: No. It *prepends* its meta-cognitive protocol to your existing `CLAUDE.md`. Your project-specific notes remain intact.
|
|
205
|
+
Don't need mobile access? Install as a Claude Code plugin — profile injection + slash commands only:
|
|
719
206
|
|
|
207
|
+
```bash
|
|
208
|
+
claude plugin install github:Yaron9/MetaMe/plugin
|
|
209
|
+
```
|
|
720
210
|
|
|
721
|
-
|
|
722
|
-
A: No. Your profile stays local at `~/.claude_profile.yaml`. MetaMe simply passes text to the official Claude Code tool.
|
|
723
|
-
|
|
724
|
-
## 📋 Changelog
|
|
725
|
-
|
|
726
|
-
| Version | Highlights |
|
|
727
|
-
|---------|------------|
|
|
728
|
-
| **v1.3.19** | **Parallel multi-agent group chats** — `chat_agent_map` routes chatId → agent for true parallel execution; `/bind` command for one-tap group registration with Finder-style directory browser; `/chatid` to look up group ID; `allowed_chat_ids` hot-reload fix (read per message, no restart); `/fix` now merges current chatId config; daemon auto-restart via macOS LaunchAgent (5-second recovery); **operator_ids** permission layer — non-operators get read-only chat mode (query/search, no write/execute); `/myid` command to retrieve Feishu open_id |
|
|
729
|
-
| **v1.3.18** | **Multi-agent project isolation** — `projects` in `daemon.yaml` with per-project heartbeat tasks, Feishu colored cards per project, `/agent` picker button, nickname routing (say agent name to switch instantly), reply-to-message session restoration, fix `~` expansion in project cwd |
|
|
730
|
-
| **v1.3.17** | **Windows support** (WSL one-command installer), `install-systemd` for Linux/WSL daemon auto-start. Fix onboarding (Genesis interview was never injected, CLAUDE.md accumulated across runs). Marker-based cleanup, unified protocols, `--append-system-prompt` guarantees interview activation, Feishu auto-fetch chat ID, full mobile permissions, fix `/publish` false-success, auto-restart daemon on script update |
|
|
731
|
-
| **v1.3.16** | Git-based `/undo` (auto-checkpoint before each turn, `git reset --hard` rollback), `/nosleep` toggle (macOS caffeinate), custom provider model passthrough (`/model` accepts any name for non-anthropic providers), auto-fallback to anthropic/opus on provider failure, message queue works on Telegram (fire-and-forget poll loop), lazy background distill |
|
|
732
|
-
| **v1.3.15** | Native Playwright MCP (browser automation for all users), `/list` interactive file browser with buttons, Feishu image download fix, Skill/MCP/Agent status push, hot restart reliability (single notification, no double instance) |
|
|
733
|
-
| **v1.3.14** | Fix daemon crash on fresh install (missing bundled scripts) |
|
|
734
|
-
| **v1.3.13** | `/doctor` diagnostics, `/sh` direct shell, `/fix` config restore, `/model` interactive switcher with auto-backup, daemon state caching & config backup/restore |
|
|
735
|
-
| **v1.3.12** | Session history bootstrap (cold-start fix), three-layer data architecture (Skeleton + Facets + Haiku), session summary extraction |
|
|
736
|
-
| **v1.3.11** | Goal alignment & drift detection, provider relay system for third-party models, `/insights` facet integration |
|
|
737
|
-
| **v1.3.10** | `/stop`, `/undo` with file restoration, `/model`, concurrent task protection, `metame continue`, daemon auto-restart on code change |
|
|
738
|
-
| **v1.3.8** | Bidirectional file transfer (phone ↔ computer) |
|
|
739
|
-
| **v1.3.7** | Real-time streaming status on mobile |
|
|
740
|
-
| **v1.3** | Metacognition layer, remote Claude Code (Telegram & Feishu), workflow engine, heartbeat tasks, launchd auto-start |
|
|
741
|
-
|
|
742
|
-
## 📄 License
|
|
211
|
+
## License
|
|
743
212
|
|
|
744
|
-
MIT
|
|
213
|
+
MIT
|