metame-cli 1.4.26 → 1.4.27
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 +7 -8
- package/index.js +2 -0
- package/package.json +1 -1
- package/scripts/daemon-admin-commands.js +1 -1
- package/scripts/daemon.js +4 -1
package/README.md
CHANGED
|
@@ -20,17 +20,17 @@ MetaMe is an AI that lives on your machine — remembers how you think, stays on
|
|
|
20
20
|
|
|
21
21
|
No cloud. Your machine, your data.
|
|
22
22
|
|
|
23
|
-
**macOS / Linux
|
|
23
|
+
**macOS / Linux:**
|
|
24
24
|
```bash
|
|
25
25
|
curl -fsSL https://raw.githubusercontent.com/Yaron9/MetaMe/main/install.sh | bash
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
**Windows
|
|
28
|
+
**Windows:**
|
|
29
29
|
```powershell
|
|
30
30
|
irm https://raw.githubusercontent.com/Yaron9/MetaMe/main/install.ps1 | iex
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
**Already have Node.js ≥ 18:**
|
|
33
|
+
**Already have Node.js ≥ 18 (any platform):**
|
|
34
34
|
```bash
|
|
35
35
|
npm install -g metame-cli && metame
|
|
36
36
|
```
|
|
@@ -198,18 +198,17 @@ Task fails → skill-scout finds a skill → installs → retries → succeeds
|
|
|
198
198
|
|
|
199
199
|
## Quick Start
|
|
200
200
|
|
|
201
|
-
**macOS / Linux
|
|
201
|
+
**macOS / Linux:**
|
|
202
202
|
```bash
|
|
203
203
|
curl -fsSL https://raw.githubusercontent.com/Yaron9/MetaMe/main/install.sh | bash
|
|
204
204
|
```
|
|
205
205
|
|
|
206
|
-
**Windows
|
|
206
|
+
**Windows:**
|
|
207
207
|
```powershell
|
|
208
208
|
irm https://raw.githubusercontent.com/Yaron9/MetaMe/main/install.ps1 | iex
|
|
209
209
|
```
|
|
210
|
-
> The script detects your OS, installs Node.js (via Homebrew / nvm / apt), sets up WSL if needed, and mirrors proxy settings automatically.
|
|
211
210
|
|
|
212
|
-
**Already have Node.js ≥ 18:**
|
|
211
|
+
**Already have Node.js ≥ 18 (any platform):**
|
|
213
212
|
```bash
|
|
214
213
|
npm install -g metame-cli && metame
|
|
215
214
|
```
|
|
@@ -221,7 +220,7 @@ npm install -g metame-cli && metame
|
|
|
221
220
|
| 1. Install & profile | `metame` | First run: cognitive interview → builds `~/.claude_profile.yaml` |
|
|
222
221
|
| 2. Connect phone | Follow the setup wizard | Bot token + app credentials → `~/.metame/daemon.yaml` |
|
|
223
222
|
| 3. Start daemon | `metame start` | Background daemon launches, bot goes online |
|
|
224
|
-
| 4. Register with system | macOS: `metame daemon install-launchd` ·
|
|
223
|
+
| 4. Register with system | macOS: `metame daemon install-launchd` · Linux: see below | Always-on, crash recovery |
|
|
225
224
|
|
|
226
225
|
> **What does system registration mean?**
|
|
227
226
|
> Once registered, MetaMe runs in the background automatically — screen locked, lid closed, woken from sleep — as long as the machine is on. Scheduled tasks fire on time. No terminal window needed.
|
package/index.js
CHANGED
|
@@ -1757,6 +1757,7 @@ if (isSync) {
|
|
|
1757
1757
|
if (daemonCfg.dangerously_skip_permissions) resumeArgs.push('--dangerously-skip-permissions');
|
|
1758
1758
|
const syncChild = spawn('claude', resumeArgs, {
|
|
1759
1759
|
stdio: 'inherit',
|
|
1760
|
+
shell: process.platform === 'win32',
|
|
1760
1761
|
env: { ...process.env, ...providerEnv, METAME_ACTIVE_SESSION: 'true' }
|
|
1761
1762
|
});
|
|
1762
1763
|
syncChild.on('error', () => {
|
|
@@ -1832,6 +1833,7 @@ try {
|
|
|
1832
1833
|
// Spawn the official claude tool with our marker + provider env
|
|
1833
1834
|
const child = spawn('claude', launchArgs, {
|
|
1834
1835
|
stdio: 'inherit',
|
|
1836
|
+
shell: process.platform === 'win32',
|
|
1835
1837
|
env: { ...process.env, ...activeProviderEnv, METAME_ACTIVE_SESSION: 'true' }
|
|
1836
1838
|
});
|
|
1837
1839
|
|
package/package.json
CHANGED
|
@@ -746,7 +746,7 @@ function createAdminCommandHandler(deps) {
|
|
|
746
746
|
}
|
|
747
747
|
|
|
748
748
|
try {
|
|
749
|
-
execSync('which claude', { encoding: 'utf8' });
|
|
749
|
+
execSync(process.platform === 'win32' ? 'where claude' : 'which claude', { encoding: 'utf8' });
|
|
750
750
|
checks.push('✅ Claude CLI');
|
|
751
751
|
} catch {
|
|
752
752
|
checks.push('❌ Claude CLI 未找到');
|
package/scripts/daemon.js
CHANGED
|
@@ -37,7 +37,10 @@ const CLAUDE_BIN = (() => {
|
|
|
37
37
|
'/usr/local/bin/claude',
|
|
38
38
|
'/opt/homebrew/bin/claude',
|
|
39
39
|
];
|
|
40
|
-
try {
|
|
40
|
+
try {
|
|
41
|
+
const cmd = process.platform === 'win32' ? 'where claude' : 'which claude 2>/dev/null';
|
|
42
|
+
return execSync(cmd, { encoding: 'utf8' }).trim().split('\n')[0];
|
|
43
|
+
} catch {}
|
|
41
44
|
for (const p of candidates) { if (fs.existsSync(p)) return p; }
|
|
42
45
|
return 'claude'; // fallback: hope it's in PATH
|
|
43
46
|
})();
|