10x-chat 0.8.3 → 0.9.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.
Files changed (42) hide show
  1. package/dist/browser/daemon.d.ts +22 -29
  2. package/dist/browser/daemon.d.ts.map +1 -1
  3. package/dist/browser/daemon.js +500 -61
  4. package/dist/browser/daemon.js.map +1 -1
  5. package/dist/browser/manager.d.ts.map +1 -1
  6. package/dist/browser/manager.js +8 -53
  7. package/dist/browser/manager.js.map +1 -1
  8. package/dist/browser/page-utils.d.ts +4 -0
  9. package/dist/browser/page-utils.d.ts.map +1 -0
  10. package/dist/browser/page-utils.js +37 -0
  11. package/dist/browser/page-utils.js.map +1 -0
  12. package/dist/browser/server.d.ts +2 -0
  13. package/dist/browser/server.d.ts.map +1 -0
  14. package/dist/browser/server.js +510 -0
  15. package/dist/browser/server.js.map +1 -0
  16. package/dist/browser/tabs.d.ts +2 -16
  17. package/dist/browser/tabs.d.ts.map +1 -1
  18. package/dist/browser/tabs.js +6 -80
  19. package/dist/browser/tabs.js.map +1 -1
  20. package/dist/core/research-orchestrator.d.ts.map +1 -1
  21. package/dist/core/research-orchestrator.js +2 -3
  22. package/dist/core/research-orchestrator.js.map +1 -1
  23. package/dist/notebooklm/rpc/decoder.d.ts +1 -1
  24. package/dist/notebooklm/rpc/decoder.d.ts.map +1 -1
  25. package/dist/notebooklm/rpc/decoder.js +1 -1
  26. package/dist/notebooklm/rpc/decoder.js.map +1 -1
  27. package/dist/notebooklm/types.d.ts +1 -2
  28. package/dist/notebooklm/types.d.ts.map +1 -1
  29. package/dist/notebooklm/types.js +1 -2
  30. package/dist/notebooklm/types.js.map +1 -1
  31. package/dist/providers/claude.d.ts +1 -0
  32. package/dist/providers/claude.d.ts.map +1 -1
  33. package/dist/providers/claude.js +60 -1
  34. package/dist/providers/claude.js.map +1 -1
  35. package/dist/providers/grok.d.ts.map +1 -1
  36. package/dist/providers/grok.js +2 -3
  37. package/dist/providers/grok.js.map +1 -1
  38. package/dist/providers/perplexity.d.ts.map +1 -1
  39. package/dist/providers/perplexity.js +2 -5
  40. package/dist/providers/perplexity.js.map +1 -1
  41. package/package.json +1 -1
  42. package/skills/10x-chat/SKILL.md +98 -55
@@ -1,33 +1,56 @@
1
1
  ---
2
2
  name: 10x-chat
3
- description: Chat with web AI agents (ChatGPT, Gemini, Claude, Grok, Perplexity, NotebookLM) via browser automation, plus image generation and deep research workflows. Use when stuck on a bug, need cross-validation, want a second-model review, need browser-only model access, want long-form research, or need image generation from web AI tools.
3
+ description: Chat with web AI agents (ChatGPT, Gemini, Claude, Grok, Perplexity, NotebookLM) via browser automation. Use when stuck, need cross-validation, want a second-model review, need image generation, or want deep research from web AI tools.
4
4
  ---
5
5
 
6
6
  # 10x-chat — AI Agent Skill
7
7
 
8
- Use 10x-chat to send prompts to web-based AI agents (ChatGPT, Gemini, Claude, Grok, Perplexity, NotebookLM) via automated browser sessions. It also supports image generation and deep research flows. Sessions use the shared persisted profile by default, so the user usually only needs to log in once per provider.
8
+ Use 10x-chat to send prompts to web-based AI agents via automated browser sessions. Supports chat, image generation, deep research, and video generation. Sessions use a shared persisted profile by default.
9
+
10
+ ## Architecture (v0.9.0+)
11
+
12
+ 10x-chat uses an **HTTP browser daemon** — a persistent local Node.js server wrapping Playwright:
13
+
14
+ - **One daemon, multiple sessions**: parallel CLI runs share a single Chrome instance via HTTP RPC
15
+ - **Auto-start/stop**: daemon launches on first use, shuts down after 30 min idle
16
+ - **Crash recovery**: if daemon dies, next CLI run auto-restarts it
17
+ - **No zombie Chrome**: proper tab ref-counting and graceful shutdown
18
+ - **State file**: `~/.10x-chat/browser-daemon.json` (port, PID, bearer token, chmod 600)
9
19
 
10
20
  ## Installation
11
21
 
12
- No install needed. Always use `@latest` to get the newest version:
22
+ No install needed. Always use `@latest`:
13
23
 
14
24
  ```bash
15
- npx 10x-chat@latest --version # check current version
25
+ npx 10x-chat@latest --version
16
26
  ```
17
27
 
18
- Prefer `npx` over `bunx` — `bunx` has symlink conflicts when running multiple providers in parallel.
28
+ Use `npx` (not `bunx` — symlink conflicts in parallel).
19
29
 
20
30
  ## When to use
21
31
 
22
- - **Stuck on a bug**: ask another model for a fresh perspective.
23
- - **Code review**: send PR diff to GPT / Claude / Gemini for cross-review.
24
- - **Cross-validation**: compare answers from multiple models.
25
- - **Knowledge gaps**: leverage a model with different training data / reasoning.
32
+ - **Stuck on a bug**: ask another model for a fresh perspective
33
+ - **Code review**: send PR diff to GPT / Claude / Gemini for cross-review
34
+ - **Cross-validation**: compare answers from multiple models
35
+ - **Knowledge gaps**: leverage a model with different training data
36
+ - **Image generation**: DALL-E via ChatGPT or Imagen via Gemini
37
+ - **Deep research**: long-form analysis via Perplexity, ChatGPT, or Gemini
38
+
39
+ ## Providers
40
+
41
+ | Provider | Chat | Image | Research | Notes |
42
+ |----------|------|-------|----------|-------|
43
+ | chatgpt | ✅ | ✅ (DALL-E) | ✅ | Runs headed by default (anti-bot) |
44
+ | gemini | ✅ | ✅ (Imagen) | ✅ | |
45
+ | claude | ✅ | ❌ | ❌ | Runs headed by default |
46
+ | grok | ✅ | ❌ | ❌ | UI changes often, use `@latest` |
47
+ | perplexity | ✅ | ❌ | ✅ | Best for research with citations |
48
+ | notebooklm | ✅ | ❌ | ❌ | Add sources first, then chat |
26
49
 
27
50
  ## Commands
28
51
 
29
52
  ```bash
30
- # Login (one-time per provider — opens browser for user to authenticate)
53
+ # Login (one-time per provider — opens browser for auth)
31
54
  npx 10x-chat@latest login chatgpt
32
55
  npx 10x-chat@latest login gemini
33
56
  npx 10x-chat@latest login claude
@@ -35,82 +58,102 @@ npx 10x-chat@latest login grok
35
58
  npx 10x-chat@latest login perplexity
36
59
  npx 10x-chat@latest login notebooklm
37
60
 
38
- # Chat with a single provider
61
+ # Chat
39
62
  npx 10x-chat@latest chat -p "Review this code for bugs" --provider chatgpt --file "src/**/*.ts"
40
-
41
- # Chat with file context
42
63
  npx 10x-chat@latest chat --provider gemini --file "path/to/prompt.md" -p "Complete this task"
43
64
 
44
- # Generate images
45
- npx 10x-chat@latest image -p "A fox astronaut in space, digital art" --provider chatgpt
65
+ # Image generation
66
+ npx 10x-chat@latest image -p "A fox astronaut in space" --provider chatgpt
46
67
  npx 10x-chat@latest image -p "Watercolor landscape" --provider gemini --save-dir ./images
47
68
 
48
- # Run deep research
69
+ # Deep research (long-form, 5-10 min)
49
70
  npx 10x-chat@latest research -p "Latest breakthroughs in quantum computing" --provider perplexity
50
71
  npx 10x-chat@latest research -p "Market analysis of EVs" --provider chatgpt --timeout 600000
51
72
 
52
- # Dry run (preview the prompt bundle without sending)
73
+ # Dry run / clipboard
53
74
  npx 10x-chat@latest chat --dry-run -p "Debug this error" --file src/
54
-
55
- # Copy bundle to clipboard (manual paste fallback)
56
75
  npx 10x-chat@latest chat --copy -p "Explain this" --file "src/**"
57
76
 
58
- # Check recent sessions
77
+ # Session management
59
78
  npx 10x-chat@latest status
60
-
61
- # View a session's response
62
79
  npx 10x-chat@latest session <id> --render
63
80
 
64
- # Install bundled skill to ~/.codex/skills/
65
- npx 10x-chat@latest skill install
81
+ # NotebookLM
82
+ npx 10x-chat@latest notebooklm list
83
+ npx 10x-chat@latest notebooklm create "My Research"
84
+ npx 10x-chat@latest notebooklm add-url <id> https://...
85
+ npx 10x-chat@latest notebooklm add-file <id> ./paper.pdf
86
+ npx 10x-chat@latest notebooklm sources <id>
87
+ npx 10x-chat@latest notebooklm summarize <id>
66
88
 
67
- # NotebookLM manage notebooks & sources
68
- npx 10x-chat@latest notebooklm list # List notebooks
69
- npx 10x-chat@latest notebooklm create "My Research" # Create notebook
70
- npx 10x-chat@latest notebooklm add-url <id> https://... # Add URL source
71
- npx 10x-chat@latest notebooklm add-file <id> ./paper.pdf # Upload file source
72
- npx 10x-chat@latest notebooklm sources <id> # List sources
73
- npx 10x-chat@latest notebooklm summarize <id> # AI summary
74
- npx 10x-chat@latest chat -p "Summarize" --provider notebooklm
89
+ # Install bundled skill to coding agent
90
+ npx 10x-chat@latest skill install
75
91
  ```
76
92
 
77
- ## Multi-provider workflow
93
+ ## Parallel sessions (v0.9.0+)
78
94
 
79
- Prefer `npx 10x-chat@latest`. Shared profile mode is the default, so parallel runs are supported more reliably than before, but sequential runs are still the safest choice when debugging flaky provider UIs.
95
+ HTTP daemon makes parallel runs stable. All providers share one Chrome:
80
96
 
81
97
  ```bash
82
- # Login all providers first
98
+ # Login all once
83
99
  npx 10x-chat@latest login gemini
84
100
  npx 10x-chat@latest login claude
85
101
  npx 10x-chat@latest login chatgpt
86
- npx 10x-chat@latest login grok
87
102
 
88
- # Safer sequential review flow
89
- npx 10x-chat@latest chat --provider gemini --headed -p "Your prompt" --file context.md
90
- npx 10x-chat@latest chat --provider claude --headed -p "Your prompt" --file context.md
91
- npx 10x-chat@latest chat --provider chatgpt --headed -p "Your prompt" --file context.md
92
- npx 10x-chat@latest chat --provider grok --headed -p "Your prompt" --file context.md
103
+ # Run concurrently each opens a tab in the shared daemon
104
+ npx 10x-chat@latest chat --provider gemini -p "Your prompt" --file context.md &
105
+ npx 10x-chat@latest chat --provider claude -p "Your prompt" --file context.md &
106
+ npx 10x-chat@latest chat --provider chatgpt -p "Your prompt" --file context.md &
107
+ wait
108
+ ```
109
+
110
+ ## Browser mode
111
+
112
+ - **Headless (default for gemini, grok, perplexity)**: no visible window
113
+ - **Headed (default for chatgpt, claude)**: visible Chrome window (anti-bot protection)
114
+ - **Force headed**: `--headed` flag on any provider
115
+
116
+ The daemon stores the headless/headed mode in its state file. If you switch modes, the daemon restarts automatically.
117
+
118
+ ## Profile modes
119
+
120
+ **Shared (default):** One browser profile, all providers share cookies. Login once per Google account covers Gemini + NotebookLM.
121
+
122
+ **Isolated:** Separate profile per provider (backward compat): `--isolated-profile`
123
+
124
+ ```bash
125
+ # Migrate from isolated to shared
126
+ npx 10x-chat@latest migrate
127
+ ```
128
+
129
+ ## Daemon management
130
+
131
+ ```bash
132
+ # Check daemon state
133
+ cat ~/.10x-chat/browser-daemon.json
134
+
135
+ # Force stop daemon
136
+ # (CLI calls stopDaemon() on Ctrl+C automatically)
137
+ kill $(cat ~/.10x-chat/browser-daemon.json | python3 -c "import sys,json; print(json.load(sys.stdin)['pid'])")
93
138
  ```
94
139
 
95
140
  ## Tips
96
141
 
97
- - **Always use `@latest`**: ensures you get the newest fixes.
98
- - **Use `--headed`** for Grok and ChatGPT when reliability matters.
99
- - **Login first**: Run `npx 10x-chat@latest login <provider>` once per provider. Sessions persist in `~/.10x-chat/profiles/`.
100
- - **Deep research needs longer timeouts**: use `research --timeout 600000` for long jobs.
101
- - **Image generation can take 1–2 minutes**: use `image --timeout 120000` when needed.
102
- - **Keep file sets small**: fewer files + a focused prompt = better answers.
103
- - **Don't send secrets**: exclude `.env`, key files, auth tokens from `--file` patterns.
104
- - **Use `--dry-run`** to preview what will be sent before committing to a run.
105
- - **NotebookLM**: add sources first, then chat with `--provider notebooklm`.
142
+ - **Always use `@latest`**: ensures newest fixes
143
+ - **Login first**: `login <provider>` once per provider. Sessions persist in `~/.10x-chat/profiles/`
144
+ - **Use `--headed`** if a provider is flaky (Grok especially)
145
+ - **Keep file sets small**: fewer files + focused prompt = better answers
146
+ - **Research needs longer timeouts**: `--timeout 600000` for 10-min research jobs
147
+ - **Image gen can take 1-2 min**: use `--timeout 120000` when needed
148
+ - **Use `--dry-run`** to preview what will be sent
106
149
 
107
150
  ## Known issues
108
151
 
109
- - **Grok**: UI changes frequently. If response capture fails, selectors may need updating.
110
- - **ChatGPT/Grok sessions expire quickly**: log in again if you get "Not logged in" errors.
111
- - **Some provider UIs are flaky under automation**: retry with `--headed` before assuming a hard failure.
152
+ - **Grok**: UI changes frequently. Always use `@latest`. Use `--headed` for best reliability
153
+ - **ChatGPT/Grok sessions expire quickly**: login again if you get "Not logged in" errors
154
+ - **Some provider UIs are flaky under automation**: retry with `--headed` before assuming a hard failure
112
155
 
113
156
  ## Safety
114
157
 
115
- - Never include credentials, API keys, or tokens in the bundled files.
116
- - The tool opens a real browser with real login state treat it like your own browser session.
158
+ - Never include credentials, API keys, or tokens in the bundled files
159
+ - The tool opens a real browser with real login state. Treat it like your own browser session