@codespeak/helper 0.0.0 → 0.1.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 ADDED
@@ -0,0 +1,33 @@
1
+ # @codespeak/helper
2
+
3
+ Recover the AI intent from your local coding sessions and share it at [app.codespeak.dev](https://app.codespeak.dev).
4
+
5
+ Scans your local AI agent session files (Claude Code, Cursor), bundles them, and opens the CodeSpeak web app so you can review and publish your coding intent — without uploading anything until you explicitly confirm.
6
+
7
+ ## Usage
8
+
9
+ ```sh
10
+ npx @codespeak/helper@latest
11
+ ```
12
+
13
+ Requires Node.js 22+.
14
+
15
+ ## Options
16
+
17
+ | Flag | Description |
18
+ |------|-------------|
19
+ | `--no-open` | Start the local server without opening a browser tab |
20
+ | `--host=<url>` | Connect to a custom CodeSpeak instance |
21
+ | `--dev` | Use `https://app-dev.codespeak.dev` |
22
+ | `--dev-local` | Use `http://localhost:3000` |
23
+
24
+ ## How it works
25
+
26
+ 1. Scans well-known directories for Claude Code and Cursor session files
27
+ 2. Starts a local HTTP server (random port, token-authenticated)
28
+ 3. Opens `app.codespeak.dev` in your browser, pre-connected to the local server
29
+ 4. You select which sessions to share and confirm — nothing leaves your machine until that point
30
+
31
+ ## License
32
+
33
+ Apache-2.0
package/bin/run.js ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env node
2
+ // Wrapper that ensures --experimental-sqlite is active before loading the CLI.
3
+ import { createRequire } from "module";
4
+ import { fileURLToPath } from "url";
5
+ import { dirname, join } from "path";
6
+
7
+ if (!process.execArgv.includes("--experimental-sqlite")) {
8
+ const { execFileSync } = createRequire(import.meta.url)("child_process");
9
+ const __dir = dirname(fileURLToPath(import.meta.url));
10
+ execFileSync(process.execPath, ["--experimental-sqlite", join(__dir, "../dist/index.js"), ...process.argv.slice(2)], {
11
+ stdio: "inherit",
12
+ env: process.env,
13
+ });
14
+ } else {
15
+ await import("../dist/index.js");
16
+ }