groupchat 0.3.0 → 1.0.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 +74 -20
- package/package.json +10 -11
package/README.md
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
# Groupchat
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Last updated: July 8, 2026
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
<img width="1510" height="953" alt="image" src="https://github.com/user-attachments/assets/b444f066-74fb-4dda-a677-741f70c71cf6" />
|
|
5
|
+
<img width="1154" height="263" alt="Groupchat terminal header" src="https://github.com/user-attachments/assets/77f90383-32d2-4110-9774-9b911fa01b9c" />
|
|
8
6
|
|
|
7
|
+
Groupchat is the remote agent client for Groupchat. Keep it running on a machine that has `codex` installed, and Codex responds to `@mentions` from your Groupchat workspace — running locally on that machine and streaming its work back into the conversation.
|
|
9
8
|
|
|
10
9
|
## Install
|
|
11
10
|
|
|
@@ -13,38 +12,93 @@ Groupchat is a real-time messaging app for developers, built natively in your te
|
|
|
13
12
|
npm install -g groupchat
|
|
14
13
|
```
|
|
15
14
|
|
|
15
|
+
The npm package installs a small launcher plus a platform-specific binary package. Current binary targets are:
|
|
16
|
+
|
|
17
|
+
- macOS arm64 and x64
|
|
18
|
+
- Linux arm64 and x64
|
|
19
|
+
- Windows x64
|
|
20
|
+
|
|
16
21
|
## Start
|
|
17
22
|
|
|
18
23
|
```bash
|
|
19
24
|
groupchat
|
|
20
25
|
```
|
|
21
26
|
|
|
22
|
-
On first launch,
|
|
27
|
+
On first launch, Groupchat opens a browser login flow. Auth tokens are stored in your OS keychain, and your selected org is stored under `~/.config/groupchat/`.
|
|
28
|
+
|
|
29
|
+
Once you're logged in (and have picked an org, if you belong to several), Groupchat shows a compact control panel and goes online as a remote:
|
|
30
|
+
|
|
31
|
+
- It advertises the session as available for remote agent runs.
|
|
32
|
+
- When someone `@mentions` an agent in your workspace, it runs Codex locally in the directory you launched from.
|
|
33
|
+
- The response streams back into the conversation as it happens, and follow-up thread replies continue the same Codex conversation.
|
|
34
|
+
|
|
35
|
+
The panel shows connection status, whether `codex` is available on `PATH`, active runs with live progress, and recent run history.
|
|
36
|
+
|
|
37
|
+
## Keyboard Shortcuts
|
|
38
|
+
|
|
39
|
+
| Shortcut | Action |
|
|
40
|
+
| --- | --- |
|
|
41
|
+
| `Ctrl+O` | Log out. |
|
|
42
|
+
| `Ctrl+C` twice | Exit the app. |
|
|
43
|
+
|
|
44
|
+
## Configuration
|
|
45
|
+
|
|
46
|
+
Groupchat uses production services by default:
|
|
23
47
|
|
|
24
|
-
|
|
48
|
+
- Console: `https://app.groupchatty.com`
|
|
49
|
+
- WebSocket: `wss://api.groupchatty.com/socket`
|
|
25
50
|
|
|
26
|
-
|
|
27
|
-
- **Embedded AI agents** — run Claude directly in any conversation
|
|
28
|
-
- **Live presence** — see who's online and typing
|
|
29
|
-
- **Keyboard-driven** — no mouse required
|
|
51
|
+
For development or staging, override them with environment variables:
|
|
30
52
|
|
|
31
|
-
|
|
53
|
+
```bash
|
|
54
|
+
GROUPCHAT_CONSOLE_URL=http://localhost:4000 \
|
|
55
|
+
GROUPCHAT_WS_URL=ws://localhost:4000/socket \
|
|
56
|
+
groupchat
|
|
57
|
+
```
|
|
32
58
|
|
|
33
|
-
|
|
59
|
+
Useful environment variables:
|
|
34
60
|
|
|
35
|
-
|
|
61
|
+
| Variable | Purpose |
|
|
62
|
+
| --- | --- |
|
|
63
|
+
| `GROUPCHAT_CONSOLE_URL` | Browser login and HTTP API base URL. |
|
|
64
|
+
| `GROUPCHAT_WS_URL` | Phoenix socket URL. |
|
|
65
|
+
| `GROUPCHAT_PROFILE` | Separate keychain/config profile, useful for multiple test users. |
|
|
66
|
+
| `GROUPCHAT_DEBUG=1` | Enable debug logging. |
|
|
67
|
+
| `GROUPCHAT_DEBUG_FILE` | Override the debug log path. Defaults to `.logs/tui-debug.log`. |
|
|
68
|
+
| `GROUPCHAT_DEBUG_STDERR=1` | Also write debug logs to stderr. |
|
|
36
69
|
|
|
37
|
-
|
|
70
|
+
## Development
|
|
71
|
+
|
|
72
|
+
This package is the OpenTUI/Solid terminal client.
|
|
38
73
|
|
|
39
74
|
```bash
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
75
|
+
bun install
|
|
76
|
+
bun run dev # watch mode
|
|
77
|
+
bun run dev:user2 # watch mode with GROUPCHAT_PROFILE=user2
|
|
78
|
+
bun run dev:debug # debug log at .logs/tui-debug.log
|
|
79
|
+
bun run dev:debug:watch # debug logging + watch mode
|
|
80
|
+
bun run dev:debug:console # debug logging + OpenTUI console
|
|
81
|
+
bun run build # production bundle + current-platform binary
|
|
82
|
+
bun run build --all # production binaries for every supported target
|
|
83
|
+
bun run start # run dist/index.js after a build
|
|
84
|
+
bun run typecheck # TypeScript check
|
|
85
|
+
bun test ./test # test suite
|
|
86
|
+
bun run test:watch # watch tests
|
|
87
|
+
bun run test:update-snapshots
|
|
46
88
|
```
|
|
47
89
|
|
|
90
|
+
The build writes standalone binaries under `npm/<platform>-<arch>/bin/`. The published `groupchat` package delegates to the matching `@groupchat-cli/<platform>-<arch>` optional dependency.
|
|
91
|
+
|
|
92
|
+
### The old chat UI
|
|
93
|
+
|
|
94
|
+
Earlier versions of this package were a full terminal chat client (channels, DMs, presence, inline `/claude` and `/codex` agents, local `!` shell commands). That UI was retired when the remote agent client became the product; the web app is the chat surface now. The code is preserved under `archived/chat-ui/` (excluded from the build, typecheck, and tests) — see `archived/chat-ui/README.md` for what's there and how to resurrect it.
|
|
95
|
+
|
|
96
|
+
## Contributing
|
|
97
|
+
|
|
98
|
+
Contributions are welcome for new harness integrations and terminal UX improvements.
|
|
99
|
+
|
|
100
|
+
Questions: svapnila at gmail dot com
|
|
101
|
+
|
|
48
102
|
## License
|
|
49
103
|
|
|
50
104
|
AGPL-3.0-or-later
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "groupchat",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "CLI chat client for Groupchat (OpenTUI)",
|
|
5
5
|
"bin": {
|
|
6
6
|
"groupchat": "bin/groupchat"
|
|
@@ -13,26 +13,25 @@
|
|
|
13
13
|
],
|
|
14
14
|
"scripts": {
|
|
15
15
|
"dev": "bun --watch run src/index.tsx",
|
|
16
|
+
"remote": "GROUPCHAT_WS_URL=ws://localhost:4000/socket GROUPCHAT_CONSOLE_URL=http://localhost:3000 bun src/index.tsx",
|
|
16
17
|
"dev:user2": "GROUPCHAT_PROFILE=user2 bun --watch run src/index.tsx",
|
|
17
18
|
"dev:debug": "GROUPCHAT_DEBUG=1 bun run src/index.tsx",
|
|
18
19
|
"dev:debug:watch": "GROUPCHAT_DEBUG=1 bun --watch run src/index.tsx",
|
|
19
20
|
"dev:debug:console": "GROUPCHAT_DEBUG=1 SHOW_CONSOLE=true bun --watch run src/index.tsx",
|
|
20
21
|
"build": "bun run build.ts",
|
|
21
22
|
"start": "bun run dist/index.js",
|
|
22
|
-
"test": "bun test test --preload @opentui/solid/preload",
|
|
23
|
-
"test:
|
|
24
|
-
"test:
|
|
25
|
-
"test:update-snapshots": "bun test test --update-snapshots --preload @opentui/solid/preload",
|
|
26
|
-
"claude:capture-ndjson": "bun run scripts/claude/capture-ndjson.ts",
|
|
23
|
+
"test": "bun test ./test --preload @opentui/solid/preload",
|
|
24
|
+
"test:watch": "bun test ./test --watch --preload @opentui/solid/preload",
|
|
25
|
+
"test:update-snapshots": "bun test ./test --update-snapshots --preload @opentui/solid/preload",
|
|
27
26
|
"typecheck": "tsc --noEmit",
|
|
28
27
|
"prepublishOnly": "bun run typecheck && bun run build"
|
|
29
28
|
},
|
|
30
29
|
"optionalDependencies": {
|
|
31
|
-
"@groupchat-cli/darwin-arm64": "0.
|
|
32
|
-
"@groupchat-cli/darwin-x64": "0.
|
|
33
|
-
"@groupchat-cli/linux-arm64": "0.
|
|
34
|
-
"@groupchat-cli/linux-x64": "0.
|
|
35
|
-
"@groupchat-cli/win32-x64": "0.
|
|
30
|
+
"@groupchat-cli/darwin-arm64": "1.0.0",
|
|
31
|
+
"@groupchat-cli/darwin-x64": "1.0.0",
|
|
32
|
+
"@groupchat-cli/linux-arm64": "1.0.0",
|
|
33
|
+
"@groupchat-cli/linux-x64": "1.0.0",
|
|
34
|
+
"@groupchat-cli/win32-x64": "1.0.0"
|
|
36
35
|
},
|
|
37
36
|
"dependencies": {},
|
|
38
37
|
"devDependencies": {
|