agentgui 1.0.580 → 1.0.582
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 +21 -0
- package/package.json +1 -1
- package/static/js/client.js +14 -0
package/README.md
CHANGED
|
@@ -9,6 +9,15 @@ Multi-agent GUI client for AI coding agents (Claude Code, Gemini CLI, OpenCode,
|
|
|
9
9
|
|
|
10
10
|

|
|
11
11
|
|
|
12
|
+
## Why AgentGUI?
|
|
13
|
+
|
|
14
|
+
Modern AI coding requires juggling multiple agents, each in their own terminal. AgentGUI solves this by providing a unified interface where you can:
|
|
15
|
+
|
|
16
|
+
- **Compare agents side-by-side** - Test the same prompt across Claude Code, Gemini CLI, OpenCode, and others
|
|
17
|
+
- **Preserve context** - Every conversation, file change, and terminal output is automatically saved
|
|
18
|
+
- **Resume interrupted work** - Pick up exactly where you left off, even after system restarts
|
|
19
|
+
- **Work visually** - See streaming responses, file changes, and tool calls in real-time instead of raw JSON
|
|
20
|
+
|
|
12
21
|
## Features
|
|
13
22
|
|
|
14
23
|
- 🤖 **Multi-Agent Support** - Switch between Claude Code, Gemini CLI, OpenCode, Kilo, and more from one interface
|
|
@@ -84,6 +93,18 @@ static/js/websocket-manager.js WebSocket connection handling
|
|
|
84
93
|
- WebSocket endpoint at `/gm/sync` for real-time updates
|
|
85
94
|
- ACP tools (OpenCode, Kilo) auto-launch as HTTP servers on startup with health checks
|
|
86
95
|
|
|
96
|
+
## Use Cases
|
|
97
|
+
|
|
98
|
+
**Multi-Agent Comparison**: Run the same task through different agents to compare approaches, quality, and speed.
|
|
99
|
+
|
|
100
|
+
**Long-Running Projects**: Build complex features across multiple sessions without losing context or conversation history.
|
|
101
|
+
|
|
102
|
+
**Team Collaboration**: Share conversation URLs and working directories for pair programming with AI agents.
|
|
103
|
+
|
|
104
|
+
**Agent Development**: Test and debug custom agents with full visibility into streaming events and tool calls.
|
|
105
|
+
|
|
106
|
+
**Offline Speech**: Use local speech-to-text and text-to-speech without API costs or internet dependency.
|
|
107
|
+
|
|
87
108
|
## REST API
|
|
88
109
|
|
|
89
110
|
All routes prefixed with `/gm`:
|
package/package.json
CHANGED
package/static/js/client.js
CHANGED
|
@@ -753,6 +753,12 @@ class AgentGUIClient {
|
|
|
753
753
|
this._serverProcessingEstimate = 0.7 * this._serverProcessingEstimate + 0.3 * serverTime;
|
|
754
754
|
}
|
|
755
755
|
|
|
756
|
+
// Always subscribe to the session so blocks are not lost regardless of which conversation is active
|
|
757
|
+
if (this.wsManager.isConnected) {
|
|
758
|
+
this.wsManager.subscribeToSession(data.sessionId);
|
|
759
|
+
this.wsManager.sendMessage({ type: 'subscribe', conversationId: data.conversationId });
|
|
760
|
+
}
|
|
761
|
+
|
|
756
762
|
// If this streaming event is for a different conversation than what we are viewing,
|
|
757
763
|
// just track the state but do not modify the DOM or start polling
|
|
758
764
|
if (this.state.currentConversation?.id !== data.conversationId) {
|
|
@@ -760,6 +766,14 @@ class AgentGUIClient {
|
|
|
760
766
|
this.state.streamingConversations.set(data.conversationId, true);
|
|
761
767
|
this.updateBusyPromptArea(data.conversationId);
|
|
762
768
|
this.emit('streaming:start', data);
|
|
769
|
+
|
|
770
|
+
// Auto-load if no conversation is currently selected (e.g. server resumed on startup)
|
|
771
|
+
if (!this.state.currentConversation && !this._isLoadingConversation) {
|
|
772
|
+
this._isLoadingConversation = true;
|
|
773
|
+
this.loadConversationMessages(data.conversationId).finally(() => {
|
|
774
|
+
this._isLoadingConversation = false;
|
|
775
|
+
});
|
|
776
|
+
}
|
|
763
777
|
return;
|
|
764
778
|
}
|
|
765
779
|
|