@pentoshi/clai 3.11.19 → 3.11.21
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
|
@@ -56,8 +56,46 @@ cd clai && npm install && npm run build && npm start
|
|
|
56
56
|
|
|
57
57
|
Node.js ≥ 20. Type `clai` in any terminal to start.
|
|
58
58
|
|
|
59
|
+
### Platform notes
|
|
60
|
+
|
|
61
|
+
<table>
|
|
62
|
+
<tr><th>Platform</th><th>Full-screen TUI (OpenTUI)</th><th>Classic REPL (<code>--classic</code>)</th></tr>
|
|
63
|
+
<tr><td>macOS</td><td>✅ Full support</td><td>✅</td></tr>
|
|
64
|
+
<tr><td>Linux</td><td>✅ Full support</td><td>✅</td></tr>
|
|
65
|
+
<tr><td>Windows</td><td>❌ Not available yet</td><td>✅ Automatic fallback</td></tr>
|
|
66
|
+
</table>
|
|
67
|
+
|
|
68
|
+
**Windows:** OpenTUI's native renderer does not ship Windows binaries yet, so clai automatically starts in classic REPL mode — no extra flags needed. All core features (ask, agent, multi-key rotation, pentesting, plans, history) work identically; only the full-screen UI is absent.
|
|
69
|
+
|
|
70
|
+
> **Note:** The standalone Windows binary (`clai.exe` via `install.ps1` / Scoop) may crash silently on some Windows builds. If `clai` returns without output after the raw-URL install, use the **npm method** instead — it is the most reliable way to run clai on Windows:
|
|
71
|
+
> ```powershell
|
|
72
|
+
> npm i -g @pentoshi/clai
|
|
73
|
+
> ```
|
|
74
|
+
|
|
75
|
+
**Linux — terminal recommendations for full mouse & hover support:**
|
|
76
|
+
|
|
77
|
+
The full-screen TUI uses mouse tracking and hover events via OpenTUI's Zig FFI renderer. Not all Linux terminal emulators report these correctly. If you see missing hover highlights, broken scroll, or no mouse response:
|
|
78
|
+
|
|
79
|
+
| Terminal | Mouse/Hover | Notes |
|
|
80
|
+
|----------|-------------|-------|
|
|
81
|
+
| **Kitty** | ✅ Full | Recommended — fastest GPU-rendered terminal, full mouse protocol support |
|
|
82
|
+
| **Alacritty** | ✅ Full | GPU-accelerated, excellent mouse support |
|
|
83
|
+
| **WezTerm** | ✅ Full | Cross-platform, great defaults |
|
|
84
|
+
| **iTerm2** (macOS) | ✅ Full | Native macOS, full mouse + hover |
|
|
85
|
+
| **macOS Terminal** | ✅ Full | Works out of the box |
|
|
86
|
+
| **GNOME Terminal** | ⚠️ Partial | Mouse clicks work; hover/SGR mouse mode may be limited |
|
|
87
|
+
| **Konsole** | ⚠️ Partial | Some hover events may not report |
|
|
88
|
+
| **xterm** | ⚠️ Partial | Needs `xterm -xrm 'XTerm*allowMouseOps: true'` |
|
|
89
|
+
| **Linux TTY** (bare `/dev/tty`) | ❌ None | No mouse support; use `clai --classic` |
|
|
90
|
+
| **tmux / screen** | ⚠️ Varies | Add `set -g mouse on` to `~/.tmux.conf`; passthrough depends on the outer terminal |
|
|
91
|
+
|
|
92
|
+
> **Tip:** For the best experience on Linux, use **Kitty**, **Alacritty**, or **WezTerm**. These support SGR extended mouse reporting, which is what OpenTUI requires for hover, click, and scroll events. If your terminal doesn't support hover, clai still works — you just won't see hover highlights on buttons and links.
|
|
93
|
+
>
|
|
94
|
+
> For tmux users: `set -g mouse on` enables mouse passthrough, but hover quality depends on the outer terminal emulator.
|
|
95
|
+
|
|
59
96
|
---
|
|
60
97
|
|
|
98
|
+
|
|
61
99
|
## Quick start
|
|
62
100
|
|
|
63
101
|
Get a free key from any supported provider, add it, and go:
|
package/dist/tui/can-use-tui.js
CHANGED
|
@@ -18,6 +18,12 @@ export function evaluateTui(env) {
|
|
|
18
18
|
return { ok: true };
|
|
19
19
|
}
|
|
20
20
|
export function canUseTui() {
|
|
21
|
+
// OpenTUI's native Zig FFI renderer doesn't ship Windows binaries yet.
|
|
22
|
+
// Skip the TUI entirely on Windows — avoids the Bun install + re-exec cycle
|
|
23
|
+
// that always ends in an FFI load failure anyway.
|
|
24
|
+
if (process.platform === "win32") {
|
|
25
|
+
return { ok: false, reason: "Windows (OpenTUI not yet supported)" };
|
|
26
|
+
}
|
|
21
27
|
return evaluateTui({
|
|
22
28
|
stdoutIsTTY: process.stdout.isTTY,
|
|
23
29
|
stdinIsTTY: process.stdin.isTTY,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"can-use-tui.js","sourceRoot":"","sources":["../../src/tui/can-use-tui.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAE3B;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAC5C,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;IAC3B,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;QACvC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;IACvE,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,WAAW,CAAC;QACjB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;QACjC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK;QAC/B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;QAC/B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;KAC1B,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"can-use-tui.js","sourceRoot":"","sources":["../../src/tui/can-use-tui.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAE3B;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACxC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAC5C,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;IAC3B,IAAI,IAAI,GAAG,QAAQ,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;QACvC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;IACvE,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,uEAAuE;IACvE,4EAA4E;IAC5E,kDAAkD;IAClD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qCAAqC,EAAE,CAAC;IACtE,CAAC;IACD,OAAO,WAAW,CAAC;QACjB,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;QACjC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK;QAC/B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;QAC/B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;KAC1B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* AUTO-GENERATED by scripts/sync-version.mjs — do not edit by hand.
|
|
3
3
|
* Source of truth: package.json "version".
|
|
4
4
|
*/
|
|
5
|
-
export declare const VERSION: "3.11.
|
|
6
|
-
export declare const VERSION_TAG: "v3.11.
|
|
5
|
+
export declare const VERSION: "3.11.21";
|
|
6
|
+
export declare const VERSION_TAG: "v3.11.21";
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* AUTO-GENERATED by scripts/sync-version.mjs — do not edit by hand.
|
|
3
3
|
* Source of truth: package.json "version".
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = "3.11.
|
|
6
|
-
export const VERSION_TAG = "v3.11.
|
|
5
|
+
export const VERSION = "3.11.21";
|
|
6
|
+
export const VERSION_TAG = "v3.11.21";
|
|
7
7
|
//# sourceMappingURL=version.generated.js.map
|
package/package.json
CHANGED