claude-rpc 0.24.1 → 1.0.1

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
@@ -193,7 +193,7 @@ claude-rpc community on # explicit consent flow (upgraders / re-enable
193
193
  claude-rpc community report # one-shot manual flush (testing)
194
194
  ```
195
195
 
196
- Each report sends only: a `sessionsDelta`, a `tokensDelta`, the claude-rpc version, OS family (`linux`/`darwin`/`win32`), and the anonymous UUID v4. No prompts, paths, models, repos, costs, usernames, or hostnames — the Worker's [`validateReport`](worker/src/index.js) is the schema of record. The full Worker source is in this repo so the privacy claim is auditable.
196
+ Each report sends only: a `sessionsDelta`, a `tokensDelta`, the claude-rpc version, OS family (`linux`/`darwin`/`win32`), and the anonymous UUID v4. No prompts, paths, models, repos, costs, usernames, or hostnames — the Worker's [`validateReport`](worker/src/index.js) is the schema of record. The full Worker source is in this repo so the privacy claim is auditable. Every worker route — path, params, response — is documented in [`docs/WORKER-API.md`](docs/WORKER-API.md).
197
197
 
198
198
  For a complete account of the sensitive things claude-rpc does — startup persistence, hook injection, every outbound request, and the exact telemetry payload — see [`SECURITY.md`](SECURITY.md). It's also the reference for supply-chain scanner findings (Socket.dev et al.): the flagged persistence and hook-injection behaviors are inherent to the tool and documented there.
199
199
 
@@ -273,7 +273,7 @@ Frames have a `requires` field; the daemon skips a frame when any of its require
273
273
  }
274
274
  ```
275
275
 
276
- The full default config is in [`src/default-config.js`](src/default-config.js) — that's the canonical list of every key. ~140 template variables are available; `claude-rpc vars` is the source of truth.
276
+ The full default config is in [`src/default-config.js`](src/default-config.js) — that's the canonical list of every key. Over 200 template variables are available; `claude-rpc vars` is the authoritative list.
277
277
 
278
278
  ## claude code plugin
279
279
 
@@ -330,6 +330,36 @@ Exit codes: `0` ok · `1` user error · `2` system error · `3` wrong state. `--
330
330
 
331
331
  </details>
332
332
 
333
+ <details>
334
+ <summary><b>complete removal</b></summary>
335
+
336
+ <br/>
337
+
338
+ `claude-rpc uninstall` removes everything that *respawns or registers* the tool:
339
+ its hooks from `~/.claude/settings.json` (only its own — third-party hooks are
340
+ left untouched) and the login-autostart entry (`systemd --user` unit on Linux,
341
+ LaunchAgent on macOS, `HKCU\…\Run` value + `.vbs` shim on Windows). After it
342
+ runs, nothing brings the daemon back.
343
+
344
+ It deliberately **leaves your data in place**: `config.json` (under the per-OS
345
+ config dir), the stats in `~/.claude-rpc/`, and the transient files in the temp
346
+ dir (which clear on reboot anyway). Two things it does *not* touch, by design:
347
+
348
+ - a daemon already running this session keeps running until `claude-rpc stop` or
349
+ reboot (the autostart-managed one is stopped; a manually `start`ed one isn't);
350
+ - the MCP server, if you wired it — that's a separate `claude-rpc mcp uninstall`.
351
+
352
+ For a clean wipe on macOS/Linux:
353
+
354
+ ```sh
355
+ claude-rpc mcp uninstall # only if you ran `mcp install`
356
+ claude-rpc stop
357
+ claude-rpc uninstall
358
+ rm -rf ~/.claude-rpc # stats; plus the per-OS config dir if you want it gone
359
+ ```
360
+
361
+ </details>
362
+
333
363
  ## troubleshooting
334
364
 
335
365
  **First step is always `claude-rpc doctor`** — it checks Node, hook registration, daemon liveness, Discord IPC, aggregate freshness, and privacy resolution, with a one-line fix hint per failure.
@@ -346,6 +376,39 @@ Exit codes: `0` ok · `1` user error · `2` system error · `3` wrong state. `--
346
376
 
347
377
  </details>
348
378
 
379
+ ## platform support
380
+
381
+ **macOS and Linux are first-class.** The daemon reacts to on-disk changes with a
382
+ directory watcher (`fs.watch` over FSEvents/inotify — instant) *and* an mtime
383
+ poll as a lazy backstop, so an event is never missed. Login autostart is a
384
+ per-user [`launchd` LaunchAgent](src/install.js) on macOS and a
385
+ [`systemd --user` service](src/install.js) on Linux; both start the daemon at
386
+ login without `sudo` and don't fight a manual `claude-rpc stop`.
387
+
388
+ **Windows is supported** — grab the portable exe (no Node required), then
389
+ `claude-rpc setup`. One caveat documented honestly: `fs.watch` on Windows drops
390
+ events when a writer commits via atomic rename (which the state file, pause file,
391
+ scanner, and settings GUI all do), so on Windows the **mtime poll is effectively
392
+ the primary path** and runs an order of magnitude faster (every ~3s vs ~30s
393
+ elsewhere) to compensate. It's a reliable fallback, not yet the native-watch
394
+ confidence macOS/Linux get — closing that gap is on the [roadmap](ROADMAP.md).
395
+ Autostart is an `HKCU\…\Run` entry launched through a windowless `.vbs` shim (no
396
+ scheduled task, by design — see [`SECURITY.md`](SECURITY.md)).
397
+
398
+ Everything else — the scanner, dashboards, cards, the worker client — is
399
+ platform-neutral. CI runs the full suite on Node 18/20/22 and builds the macOS
400
+ and Windows binaries every release.
401
+
402
+ ## versioning
403
+
404
+ What's a stable contract and what's an internal detail you shouldn't build on:
405
+ [`VERSIONING.md`](VERSIONING.md). Short version — the worker HTTP API, the CLI
406
+ (commands, flags, exit codes), the `config.json` schema, the `claude-rpc vars`
407
+ template variables, and the local data formats are stable and semver-governed;
408
+ daemon internals, the scan cache, the worker's KV layout, and exact wording are
409
+ not. The worker's HTTP surface is documented in
410
+ [`docs/WORKER-API.md`](docs/WORKER-API.md).
411
+
349
412
  ## development
350
413
 
351
414
  ```sh
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-rpc",
3
- "version": "0.24.1",
3
+ "version": "1.0.1",
4
4
  "description": "Discord Rich Presence for Claude Code — live model, project, tokens, and lifetime stats driven by Claude Code's hook system.",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/src/version.js CHANGED
@@ -11,7 +11,7 @@ import { readFileSync } from 'node:fs';
11
11
  import { join } from 'node:path';
12
12
  import { ROOT } from './paths.js';
13
13
 
14
- const BAKED = '0.24.1';
14
+ const BAKED = '1.0.1';
15
15
 
16
16
  function readPkgVersion() {
17
17
  try {