agentgui 1.0.621 → 1.0.623

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/docs/index.html CHANGED
@@ -1,616 +1,267 @@
1
1
  <!DOCTYPE html>
2
- <html lang="en">
2
+ <html lang="en" data-theme="dark">
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <meta name="description" content="AgentGUI - Multi-agent GUI for AI coding assistants. Real-time streaming interface for Claude Code, Gemini CLI, OpenCode, and more.">
6
+ <meta name="description" content="AgentGUI - Multi-agent GUI for Claude Code, Gemini CLI, OpenCode and more. Real-time streaming, dark mode, voice, and SQLite persistence.">
7
7
  <title>AgentGUI - Multi-Agent GUI for AI Coding Assistants</title>
8
-
8
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/rippleui@1.12.1/dist/css/styles.css"/>
9
+ <script src="https://cdn.tailwindcss.com"></script>
9
10
  <style>
10
- * {
11
- margin: 0;
12
- padding: 0;
13
- box-sizing: border-box;
14
- }
15
-
16
- :root {
17
- --primary: #3b82f6;
18
- --primary-dark: #1e40af;
19
- --secondary: #10b981;
20
- --bg-dark: #111827;
21
- --bg-darker: #0f172a;
22
- --text-light: #f9fafb;
23
- --text-gray: #9ca3af;
24
- --border: #374151;
25
- }
26
-
27
- body {
28
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
29
- line-height: 1.6;
30
- color: #333;
31
- background: #ffffff;
32
- }
33
-
34
- /* Hero Section */
35
- .hero {
36
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
37
- color: white;
38
- padding: 120px 20px 80px;
39
- text-align: center;
40
- position: relative;
41
- overflow: hidden;
42
- }
43
-
44
- .hero::before {
45
- content: '';
46
- position: absolute;
47
- top: 0;
48
- left: 0;
49
- right: 0;
50
- bottom: 0;
51
- background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 120"><path fill="%23ffffff" fill-opacity="0.1" d="M0,0 L1200,0 L1200,60 Q600,120 0,60 Z"/></svg>') no-repeat bottom;
52
- background-size: cover;
53
- }
54
-
55
- .hero-content {
56
- max-width: 900px;
57
- margin: 0 auto;
58
- position: relative;
59
- z-index: 1;
60
- }
61
-
62
- .hero h1 {
63
- font-size: 3.5rem;
64
- font-weight: 800;
65
- margin-bottom: 1.5rem;
66
- line-height: 1.2;
67
- }
68
-
69
- .hero p {
70
- font-size: 1.3rem;
71
- margin-bottom: 2.5rem;
72
- opacity: 0.95;
73
- }
74
-
75
- .badges {
76
- display: flex;
77
- gap: 10px;
78
- justify-content: center;
79
- flex-wrap: wrap;
80
- margin-bottom: 2rem;
81
- }
82
-
83
- .badges img {
84
- height: 20px;
85
- }
86
-
87
- .cta-buttons {
88
- display: flex;
89
- gap: 1rem;
90
- justify-content: center;
91
- flex-wrap: wrap;
92
- }
93
-
94
- .btn {
95
- padding: 14px 32px;
96
- border-radius: 8px;
97
- text-decoration: none;
98
- font-weight: 600;
99
- font-size: 1.1rem;
100
- transition: all 0.3s ease;
101
- display: inline-block;
102
- }
103
-
104
- .btn-primary {
105
- background: white;
106
- color: #667eea;
107
- box-shadow: 0 4px 14px rgba(0,0,0,0.2);
108
- }
109
-
110
- .btn-primary:hover {
111
- transform: translateY(-2px);
112
- box-shadow: 0 6px 20px rgba(0,0,0,0.3);
113
- }
114
-
115
- .btn-secondary {
116
- background: rgba(255,255,255,0.2);
117
- color: white;
118
- border: 2px solid white;
119
- }
120
-
121
- .btn-secondary:hover {
122
- background: rgba(255,255,255,0.3);
123
- transform: translateY(-2px);
124
- }
125
-
126
- /* Container */
127
- .container {
128
- max-width: 1200px;
129
- margin: 0 auto;
130
- padding: 0 20px;
131
- }
132
-
133
- /* Section */
134
- .section {
135
- padding: 80px 20px;
136
- }
137
-
138
- .section-title {
139
- text-align: center;
140
- font-size: 2.5rem;
141
- font-weight: 700;
142
- margin-bottom: 1rem;
143
- color: #1f2937;
144
- }
145
-
146
- .section-subtitle {
147
- text-align: center;
148
- font-size: 1.2rem;
149
- color: #6b7280;
150
- margin-bottom: 4rem;
151
- max-width: 700px;
152
- margin-left: auto;
153
- margin-right: auto;
154
- }
155
-
156
- /* Features Grid */
157
- .features-grid {
158
- display: grid;
159
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
160
- gap: 2.5rem;
161
- margin-top: 3rem;
162
- }
163
-
164
- .feature-card {
165
- background: white;
166
- border: 1px solid #e5e7eb;
167
- border-radius: 12px;
168
- padding: 2rem;
169
- transition: all 0.3s ease;
170
- }
171
-
172
- .feature-card:hover {
173
- box-shadow: 0 10px 30px rgba(0,0,0,0.1);
174
- transform: translateY(-5px);
175
- }
176
-
177
- .feature-icon {
178
- font-size: 2.5rem;
179
- margin-bottom: 1rem;
180
- }
181
-
182
- .feature-card h3 {
183
- font-size: 1.3rem;
184
- margin-bottom: 0.8rem;
185
- color: #1f2937;
186
- }
187
-
188
- .feature-card p {
189
- color: #6b7280;
190
- line-height: 1.7;
191
- }
192
-
193
- /* Screenshots */
194
- .screenshot-gallery {
195
- display: grid;
196
- grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
197
- gap: 2rem;
198
- margin-top: 3rem;
199
- }
200
-
201
- .screenshot-item {
202
- border-radius: 12px;
203
- overflow: hidden;
204
- box-shadow: 0 4px 20px rgba(0,0,0,0.1);
205
- transition: all 0.3s ease;
206
- }
207
-
208
- .screenshot-item:hover {
209
- transform: scale(1.03);
210
- box-shadow: 0 8px 30px rgba(0,0,0,0.15);
211
- }
212
-
213
- .screenshot-item img {
214
- width: 100%;
215
- height: auto;
216
- display: block;
217
- }
218
-
219
- .screenshot-caption {
220
- padding: 1rem;
221
- background: #f9fafb;
222
- text-align: center;
223
- font-weight: 600;
224
- color: #374151;
225
- }
226
-
227
- /* Code Block */
228
- .code-block {
229
- background: #1f2937;
230
- color: #f9fafb;
231
- padding: 2rem;
232
- border-radius: 12px;
233
- font-family: 'Courier New', monospace;
234
- font-size: 1.1rem;
235
- position: relative;
236
- margin: 2rem 0;
237
- }
238
-
239
- .code-block pre {
240
- margin: 0;
241
- overflow-x: auto;
242
- }
243
-
244
- .copy-btn {
245
- position: absolute;
246
- top: 1rem;
247
- right: 1rem;
248
- background: #374151;
249
- color: white;
250
- border: none;
251
- padding: 8px 16px;
252
- border-radius: 6px;
253
- cursor: pointer;
254
- font-size: 0.9rem;
255
- transition: background 0.2s;
256
- }
257
-
258
- .copy-btn:hover {
259
- background: #4b5563;
260
- }
261
-
262
- /* Architecture */
263
- .architecture {
264
- background: #f9fafb;
265
- padding: 3rem;
266
- border-radius: 12px;
267
- margin-top: 3rem;
268
- }
269
-
270
- .architecture pre {
271
- background: white;
272
- padding: 2rem;
273
- border-radius: 8px;
274
- overflow-x: auto;
275
- font-size: 0.9rem;
276
- line-height: 1.6;
277
- border: 1px solid #e5e7eb;
278
- }
279
-
280
- /* Footer */
281
- .footer {
282
- background: #1f2937;
283
- color: #9ca3af;
284
- text-align: center;
285
- padding: 3rem 20px;
286
- }
287
-
288
- .footer-links {
289
- display: flex;
290
- gap: 2rem;
291
- justify-content: center;
292
- margin-bottom: 1.5rem;
293
- flex-wrap: wrap;
294
- }
295
-
296
- .footer-links a {
297
- color: #9ca3af;
298
- text-decoration: none;
299
- transition: color 0.2s;
300
- }
301
-
302
- .footer-links a:hover {
303
- color: white;
304
- }
305
-
306
- /* Responsive */
307
- @media (max-width: 768px) {
308
- .hero h1 {
309
- font-size: 2.5rem;
310
- }
311
-
312
- .hero p {
313
- font-size: 1.1rem;
314
- }
315
-
316
- .section-title {
317
- font-size: 2rem;
318
- }
319
-
320
- .features-grid {
321
- grid-template-columns: 1fr;
322
- }
323
-
324
- .screenshot-gallery {
325
- grid-template-columns: 1fr;
326
- }
327
- }
11
+ .hero-gradient { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); }
12
+ .screenshot-item { transition: transform 0.3s ease, box-shadow 0.3s ease; }
13
+ .screenshot-item:hover { transform: translateY(-4px); box-shadow: 0 16px 48px rgba(0,0,0,0.4); }
14
+ pre, code { font-family: 'Courier New', monospace; }
15
+ .arch-diagram { background: #0f172a; border: 1px solid #1e293b; border-radius: 12px; padding: 1.5rem; overflow-x: auto; color: #94a3b8; font-size: 0.8rem; line-height: 1.6; }
328
16
  </style>
329
17
  </head>
330
- <body>
331
- <!-- Hero Section -->
332
- <section class="hero">
333
- <div class="hero-content">
334
- <h1>AgentGUI</h1>
335
- <p>Multi-agent GUI for AI coding assistants. One interface for all your AI agents.</p>
336
-
337
- <div class="badges">
18
+ <body class="bg-base-1 text-content1">
19
+
20
+ <!-- Hero -->
21
+ <section class="hero-gradient text-white py-24 px-4 text-center">
22
+ <div class="max-w-3xl mx-auto">
23
+ <h1 class="text-5xl font-bold mb-4">AgentGUI</h1>
24
+ <p class="text-xl text-white/80 mb-6">Multi-agent GUI for Claude Code, Gemini CLI, OpenCode &amp; more.<br>Real-time streaming, dark mode, voice, and SQLite persistence.</p>
25
+ <div class="flex flex-wrap justify-center gap-2 mb-8">
338
26
  <img src="https://img.shields.io/npm/v/agentgui?color=brightgreen" alt="npm version">
339
27
  <img src="https://img.shields.io/npm/dw/agentgui?color=brightgreen" alt="weekly downloads">
340
28
  <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="license">
341
29
  </div>
342
-
343
- <div class="cta-buttons">
344
- <a href="https://github.com/AnEntrypoint/agentgui" class="btn btn-primary">View on GitHub</a>
345
- <a href="https://www.npmjs.com/package/agentgui" class="btn btn-secondary">npm Package</a>
30
+ <div class="flex flex-wrap justify-center gap-3">
31
+ <a href="https://github.com/AnEntrypoint/agentgui" class="btn btn-primary btn-lg btn-rounded">View on GitHub</a>
32
+ <a href="https://www.npmjs.com/package/agentgui" class="btn btn-ghost btn-lg btn-rounded border border-white/30">npm Package</a>
346
33
  </div>
347
34
  </div>
348
35
  </section>
349
36
 
350
37
  <!-- Quick Start -->
351
- <section class="section">
352
- <div class="container">
353
- <h2 class="section-title">Get Started in Seconds</h2>
354
- <p class="section-subtitle">No installation required. Run with npx and start coding with AI agents instantly.</p>
355
-
356
- <div class="code-block">
357
- <button class="copy-btn" onclick="copyCode(this)">Copy</button>
358
- <pre><code>npx agentgui</code></pre>
38
+ <section class="py-16 px-4 text-center">
39
+ <div class="max-w-2xl mx-auto">
40
+ <h2 class="text-3xl font-bold mb-2">Get Started in Seconds</h2>
41
+ <p class="text-content3 mb-6">No installation required. Run with npx and start coding with AI agents instantly.</p>
42
+ <div class="relative bg-[#0f172a] rounded-xl p-6 text-left border border-[#1e293b]">
43
+ <button class="btn btn-sm btn-ghost absolute top-3 right-3 text-content3" onclick="navigator.clipboard.writeText('npx agentgui');this.textContent='Copied!';setTimeout(()=>this.textContent='Copy',2000)">Copy</button>
44
+ <pre class="text-green-400 text-lg">$ npx agentgui</pre>
359
45
  </div>
360
-
361
- <p style="text-align: center; color: #6b7280; margin-top: 1rem;">
362
- Server starts at <strong>http://localhost:3000/gm/</strong>
363
- </p>
46
+ <p class="text-content3 mt-3 text-sm">Server starts at <code class="text-blue-400">http://localhost:3000/gm/</code></p>
364
47
  </div>
365
48
  </section>
366
49
 
367
50
  <!-- Why AgentGUI -->
368
- <section class="section">
369
- <div class="container">
370
- <h2 class="section-title">Why AgentGUI?</h2>
371
- <p class="section-subtitle">Stop juggling multiple terminal windows. Work with all your AI agents in one unified interface.</p>
372
-
373
- <div class="features-grid">
374
- <div class="feature-card">
375
- <h3>📊 Compare Side-by-Side</h3>
376
- <p>Test the same prompt across Claude Code, Gemini CLI, OpenCode, and others to find the best approach for your task.</p>
51
+ <section class="py-16 px-4 bg-base-2">
52
+ <div class="max-w-5xl mx-auto">
53
+ <h2 class="text-3xl font-bold text-center mb-2">Why AgentGUI?</h2>
54
+ <p class="text-content3 text-center mb-10">Stop juggling multiple terminal windows. One interface for all your AI agents.</p>
55
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
56
+ <div class="card p-6">
57
+ <h3 class="font-bold text-lg mb-2">📊 Compare Side-by-Side</h3>
58
+ <p class="text-content3">Test the same prompt across Claude Code, Gemini CLI, OpenCode, and others to find the best approach.</p>
377
59
  </div>
378
-
379
- <div class="feature-card">
380
- <h3>💾 Never Lose Context</h3>
381
- <p>Every conversation, file change, and terminal output is automatically saved. Resume interrupted work exactly where you left off.</p>
60
+ <div class="card p-6">
61
+ <h3 class="font-bold text-lg mb-2">💾 Never Lose Context</h3>
62
+ <p class="text-content3">Every conversation, file change, and terminal output is automatically saved. Resume exactly where you left off.</p>
382
63
  </div>
383
-
384
- <div class="feature-card">
385
- <h3>👁️ See Everything</h3>
386
- <p>Watch streaming responses, file changes, and tool calls in real-time instead of parsing raw JSON in your terminal.</p>
64
+ <div class="card p-6">
65
+ <h3 class="font-bold text-lg mb-2">👁️ See Everything</h3>
66
+ <p class="text-content3">Watch streaming responses, file changes, and tool calls in real-time instead of parsing raw JSON.</p>
387
67
  </div>
388
68
  </div>
389
69
  </div>
390
70
  </section>
391
71
 
392
72
  <!-- Features -->
393
- <section class="section" style="background: #f9fafb;">
394
- <div class="container">
395
- <h2 class="section-title">Features</h2>
396
- <p class="section-subtitle">Everything you need to work with multiple AI coding agents in one place.</p>
397
-
398
- <div class="features-grid">
399
- <div class="feature-card">
400
- <div class="feature-icon">🤖</div>
401
- <h3>Multi-Agent Support</h3>
402
- <p>Auto-discovers 14 AI coding agents including Claude Code, Gemini CLI, OpenCode, Kilo, Goose, Cline, Codex, Kiro, and more.</p>
73
+ <section class="py-16 px-4">
74
+ <div class="max-w-5xl mx-auto">
75
+ <h2 class="text-3xl font-bold text-center mb-2">Features</h2>
76
+ <p class="text-content3 text-center mb-10">Everything you need to work with multiple AI coding agents in one place.</p>
77
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
78
+ <div class="card p-6">
79
+ <div class="text-4xl mb-3">🤖</div>
80
+ <h3 class="font-bold text-lg mb-2">Multi-Agent Support</h3>
81
+ <p class="text-content3">Auto-discovers 14 AI coding agents: Claude Code, Gemini CLI, OpenCode, Kilo, Goose, Cline, Codex, Kiro, and more.</p>
403
82
  </div>
404
-
405
- <div class="feature-card">
406
- <div class="feature-icon">⚡</div>
407
- <h3>Real-Time Streaming</h3>
408
- <p>WebSocket-based streaming for instant responses. Watch your agent work in real-time with live execution visualization.</p>
83
+ <div class="card p-6">
84
+ <div class="text-4xl mb-3">⚡</div>
85
+ <h3 class="font-bold text-lg mb-2">Real-Time Streaming</h3>
86
+ <p class="text-content3">WebSocket-based streaming for instant responses. Watch your agent work live with execution visualization.</p>
409
87
  </div>
410
-
411
- <div class="feature-card">
412
- <div class="feature-icon">💾</div>
413
- <h3>Persistent Storage</h3>
414
- <p>SQLite database stores all conversations, sessions, and execution history. Resume where you left off.</p>
88
+ <div class="card p-6">
89
+ <div class="text-4xl mb-3">💾</div>
90
+ <h3 class="font-bold text-lg mb-2">Persistent Storage</h3>
91
+ <p class="text-content3">SQLite WAL mode stores all conversations, sessions, and execution history. Resume where you left off.</p>
415
92
  </div>
416
-
417
- <div class="feature-card">
418
- <div class="feature-icon">📁</div>
419
- <h3>File Management</h3>
420
- <p>Integrated file browser with drag-and-drop uploads. Direct file editing and context-aware operations.</p>
93
+ <div class="card p-6">
94
+ <div class="text-4xl mb-3">📁</div>
95
+ <h3 class="font-bold text-lg mb-2">File Management</h3>
96
+ <p class="text-content3">Integrated file browser with drag-and-drop uploads. Direct file editing and context-aware operations.</p>
421
97
  </div>
422
-
423
- <div class="feature-card">
424
- <div class="feature-icon">🎤</div>
425
- <h3>Speech Capabilities</h3>
426
- <p>Built-in speech-to-text and text-to-speech via Hugging Face Whisper. No API keys required.</p>
98
+ <div class="card p-6">
99
+ <div class="text-4xl mb-3">🎤</div>
100
+ <h3 class="font-bold text-lg mb-2">Voice I/O</h3>
101
+ <p class="text-content3">Built-in speech-to-text and text-to-speech via Hugging Face Whisper. No API keys required.</p>
427
102
  </div>
428
-
429
- <div class="feature-card">
430
- <div class="feature-icon">🔧</div>
431
- <h3>Developer Friendly</h3>
432
- <p>Hot reload, REST API, WebSocket endpoints, and extensible plugin system for custom agents.</p>
103
+ <div class="card p-6">
104
+ <div class="text-4xl mb-3">🔧</div>
105
+ <h3 class="font-bold text-lg mb-2">Developer Friendly</h3>
106
+ <p class="text-content3">Hot reload, REST API, WebSocket endpoints, and extensible plugin system for custom agents.</p>
433
107
  </div>
434
108
  </div>
435
109
  </div>
436
110
  </section>
437
111
 
438
112
  <!-- Screenshots -->
439
- <section class="section">
440
- <div class="container">
441
- <h2 class="section-title">Screenshots</h2>
442
- <p class="section-subtitle">See AgentGUI in action</p>
443
-
444
- <div class="screenshot-gallery">
445
- <div class="screenshot-item">
446
- <img src="screenshot-light.png" alt="Light Mode">
447
- <div class="screenshot-caption">Light Mode</div>
113
+ <section class="py-16 px-4 bg-base-2">
114
+ <div class="max-w-6xl mx-auto">
115
+ <h2 class="text-3xl font-bold text-center mb-2">Screenshots</h2>
116
+ <p class="text-content3 text-center mb-10">See AgentGUI in action</p>
117
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
118
+ <div class="screenshot-item rounded-xl overflow-hidden border border-base-3">
119
+ <img src="screenshot-light.png" alt="Light Mode" class="w-full">
120
+ <div class="bg-base-3 text-center py-2 px-3 text-sm font-semibold">Welcome Screen · Light Mode</div>
448
121
  </div>
449
-
450
- <div class="screenshot-item">
451
- <img src="screenshot-dark.png" alt="Dark Mode">
452
- <div class="screenshot-caption">Dark Mode</div>
122
+ <div class="screenshot-item rounded-xl overflow-hidden border border-base-3">
123
+ <img src="screenshot-dark.png" alt="Dark Mode" class="w-full">
124
+ <div class="bg-base-3 text-center py-2 px-3 text-sm font-semibold">Welcome Screen · Dark Mode</div>
453
125
  </div>
454
-
455
- <div class="screenshot-item">
456
- <img src="screenshot-dark-conversation.png" alt="Active Conversation">
457
- <div class="screenshot-caption">Active Conversation</div>
126
+ <div class="screenshot-item rounded-xl overflow-hidden border border-base-3">
127
+ <img src="screenshot-dark-conversation.png" alt="Live Streaming" class="w-full">
128
+ <div class="bg-base-3 text-center py-2 px-3 text-sm font-semibold">Live Agent Streaming</div>
129
+ </div>
130
+ </div>
131
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-4 mt-4">
132
+ <div class="screenshot-item rounded-xl overflow-hidden border border-base-3">
133
+ <img src="screenshot-conversation.png" alt="Tool Use & Code Output" class="w-full">
134
+ <div class="bg-base-3 text-center py-2 px-3 text-sm font-semibold">Tool Use &amp; Code Output</div>
135
+ </div>
136
+ <div class="screenshot-item rounded-xl overflow-hidden border border-base-3">
137
+ <img src="screenshot-tools.png" alt="Tools & Extensions" class="w-full">
138
+ <div class="bg-base-3 text-center py-2 px-3 text-sm font-semibold">Tools &amp; Extensions Manager</div>
458
139
  </div>
459
140
  </div>
460
141
  </div>
461
142
  </section>
462
143
 
463
144
  <!-- Use Cases -->
464
- <section class="section">
465
- <div class="container">
466
- <h2 class="section-title">Use Cases</h2>
467
- <p class="section-subtitle">Practical scenarios where AgentGUI shines</p>
468
-
469
- <div class="features-grid">
470
- <div class="feature-card">
471
- <h3>Multi-Agent Comparison</h3>
472
- <p>Run the same task through different agents to compare approaches, code quality, and execution speed.</p>
145
+ <section class="py-16 px-4">
146
+ <div class="max-w-5xl mx-auto">
147
+ <h2 class="text-3xl font-bold text-center mb-2">Use Cases</h2>
148
+ <p class="text-content3 text-center mb-10">Practical scenarios where AgentGUI shines</p>
149
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
150
+ <div class="card p-6">
151
+ <h3 class="font-bold text-lg mb-2">Multi-Agent Comparison</h3>
152
+ <p class="text-content3">Run the same task through different agents to compare approaches, code quality, and execution speed.</p>
473
153
  </div>
474
-
475
- <div class="feature-card">
476
- <h3>Long-Running Projects</h3>
477
- <p>Build complex features across multiple sessions without losing context or conversation history.</p>
154
+ <div class="card p-6">
155
+ <h3 class="font-bold text-lg mb-2">Long-Running Projects</h3>
156
+ <p class="text-content3">Build complex features across multiple sessions without losing context or conversation history.</p>
478
157
  </div>
479
-
480
- <div class="feature-card">
481
- <h3>Team Collaboration</h3>
482
- <p>Share conversation URLs and working directories for pair programming with AI agents.</p>
158
+ <div class="card p-6">
159
+ <h3 class="font-bold text-lg mb-2">Team Collaboration</h3>
160
+ <p class="text-content3">Share conversation URLs and working directories for pair programming with AI agents.</p>
483
161
  </div>
484
-
485
- <div class="feature-card">
486
- <h3>Agent Development</h3>
487
- <p>Test and debug custom agents with full visibility into streaming events and tool calls.</p>
162
+ <div class="card p-6">
163
+ <h3 class="font-bold text-lg mb-2">Agent Development</h3>
164
+ <p class="text-content3">Test and debug custom agents with full visibility into streaming events and tool calls.</p>
488
165
  </div>
489
-
490
- <div class="feature-card">
491
- <h3>Offline Speech</h3>
492
- <p>Use local speech-to-text and text-to-speech without API costs or internet dependency.</p>
166
+ <div class="card p-6">
167
+ <h3 class="font-bold text-lg mb-2">Offline Speech</h3>
168
+ <p class="text-content3">Use local speech-to-text and text-to-speech without API costs or internet dependency.</p>
493
169
  </div>
494
-
495
- <div class="feature-card">
496
- <h3>Code Review Sessions</h3>
497
- <p>Review AI-generated changes in a visual diff view with file browser integration.</p>
170
+ <div class="card p-6">
171
+ <h3 class="font-bold text-lg mb-2">Code Review</h3>
172
+ <p class="text-content3">Review AI-generated changes in a visual view with file browser and conversation history.</p>
498
173
  </div>
499
174
  </div>
500
175
  </div>
501
176
  </section>
502
177
 
503
178
  <!-- Architecture -->
504
- <section class="section" style="background: #f9fafb;">
505
- <div class="container">
506
- <h2 class="section-title">Architecture</h2>
507
- <p class="section-subtitle">Built for performance, reliability, and extensibility</p>
508
-
509
- <div class="architecture">
510
- <pre><code>┌─────────────────────────────────────────────────────────────────┐
511
- Browser Client
512
- ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────┐
513
- │ │ UI Layer │ │ WebSocket │ │ Streaming Renderer │ │
514
- │ Components │ │ Manager │ │ (Event Processor)
515
- │ └──────────────┘ └──────────────┘ └──────────────────────────┘ │
516
- └─────────────────────────────────────────────────────────────────┘
517
-
518
- ┌─────────▼─────────┐
519
- HTTP + WS
520
- │ Server │
521
- │ (server.js) │
522
- └─────────┬─────────┘
523
-
524
- ┌─────────────────────┼─────────────────────┐
525
- │ │ │
526
- ┌───────▼────────┐ ┌─────────▼─────────┐ ┌───────▼────────┐
527
- │ SQLite DB │ │ Agent Runner │ │ Speech │
528
- (database.js) (claude-runner.js)│ │ (speech.js) │
529
- └────────────────┘ └─────────┬─────────┘ └────────────────┘
530
-
531
- ┌─────────▼─────────┐
532
- │ Agent CLI Tools │
533
- │ (spawned procs) │
534
- └───────────────────┘</code></pre>
179
+ <section class="py-16 px-4 bg-base-2">
180
+ <div class="max-w-5xl mx-auto">
181
+ <h2 class="text-3xl font-bold text-center mb-2">Architecture</h2>
182
+ <p class="text-content3 text-center mb-10">Built for performance, reliability, and extensibility</p>
183
+ <div class="arch-diagram">
184
+ <pre>┌─────────────────────────────────────────────────────┐
185
+ │ Browser Client │
186
+ ┌─────────────┐ ┌──────────────┐ ┌───────────────┐
187
+ │ UI Layer │ │ WebSocket │ Streaming │ │
188
+ │ │ Components │ │ Manager │ │ Renderer │ │
189
+ └─────────────┘ └──────────────┘ └───────────────┘
190
+ └─────────────────────────┬───────────────────────────┘
191
+ │ HTTP + WebSocket
192
+ ┌────────▼────────┐
193
+ │ server.js │
194
+ HTTP + WS API
195
+ └────────┬────────┘
196
+ ┌─────────────────┼─────────────────┐
197
+ ┌───────▼──────┐ ┌────────▼────────┐ ┌──────▼──────┐
198
+ SQLite DB │ │ Agent Runner │ │ Speech │
199
+ │ (WAL mode) │ │ (claude-runner) │ │ (Whisper) │
200
+ └──────────────┘ └────────┬────────┘ └─────────────┘
201
+
202
+ ┌────────▼────────┐
203
+ CLI Processes
204
+ │ claude / gemini │
205
+ └─────────────────┘</pre>
535
206
  </div>
536
-
537
- <div class="features-grid" style="margin-top: 3rem;">
538
- <div class="feature-card">
539
- <h3>REST API</h3>
540
- <p>Complete REST API for conversations, messages, agents, tools, and speech operations.</p>
207
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6 mt-8">
208
+ <div class="card p-6">
209
+ <h3 class="font-bold text-lg mb-2">REST API</h3>
210
+ <p class="text-content3">Complete REST API for conversations, messages, agents, tools, and speech operations.</p>
541
211
  </div>
542
-
543
- <div class="feature-card">
544
- <h3>WebSocket Sync</h3>
545
- <p>Real-time bidirectional communication with event-based streaming and subscription model.</p>
212
+ <div class="card p-6">
213
+ <h3 class="font-bold text-lg mb-2">WebSocket Sync</h3>
214
+ <p class="text-content3">Real-time bidirectional communication with event-based streaming and subscription model.</p>
546
215
  </div>
547
-
548
- <div class="feature-card">
549
- <h3>SQLite WAL Mode</h3>
550
- <p>Write-Ahead Logging for concurrent reads and writes without blocking.</p>
216
+ <div class="card p-6">
217
+ <h3 class="font-bold text-lg mb-2">SQLite WAL Mode</h3>
218
+ <p class="text-content3">Write-Ahead Logging for concurrent reads and writes without blocking.</p>
551
219
  </div>
552
220
  </div>
553
221
  </div>
554
222
  </section>
555
223
 
556
- <!-- Installation Options -->
557
- <section class="section">
558
- <div class="container">
559
- <h2 class="section-title">Installation Options</h2>
560
-
561
- <div style="max-width: 800px; margin: 0 auto;">
562
- <h3 style="margin: 2rem 0 1rem;">Quick Start (Recommended)</h3>
563
- <div class="code-block">
564
- <button class="copy-btn" onclick="copyCode(this)">Copy</button>
565
- <pre><code>npx agentgui</code></pre>
566
- </div>
224
+ <!-- Installation -->
225
+ <section class="py-16 px-4">
226
+ <div class="max-w-2xl mx-auto">
227
+ <h2 class="text-3xl font-bold text-center mb-10">Installation Options</h2>
567
228
 
568
- <h3 style="margin: 2rem 0 1rem;">Manual Installation</h3>
569
- <div class="code-block">
570
- <button class="copy-btn" onclick="copyCode(this)">Copy</button>
571
- <pre><code>git clone https://github.com/AnEntrypoint/agentgui.git
572
- cd agentgui
573
- npm install
574
- npm run dev</code></pre>
575
- </div>
229
+ <h3 class="font-semibold text-lg mb-3">Quick Start (Recommended)</h3>
230
+ <div class="relative bg-[#0f172a] rounded-xl p-5 border border-[#1e293b] mb-8">
231
+ <button class="btn btn-sm btn-ghost absolute top-3 right-3 text-content3" onclick="navigator.clipboard.writeText('npx agentgui');this.textContent='Copied!';setTimeout(()=>this.textContent='Copy',2000)">Copy</button>
232
+ <pre class="text-green-400">$ npx agentgui</pre>
233
+ </div>
234
+
235
+ <h3 class="font-semibold text-lg mb-3">Manual Installation</h3>
236
+ <div class="relative bg-[#0f172a] rounded-xl p-5 border border-[#1e293b] mb-8">
237
+ <button class="btn btn-sm btn-ghost absolute top-3 right-3 text-content3" onclick="navigator.clipboard.writeText('git clone https://github.com/AnEntrypoint/agentgui.git\ncd agentgui\nnpm install\nnpm run dev');this.textContent='Copied!';setTimeout(()=>this.textContent='Copy',2000)">Copy</button>
238
+ <pre class="text-green-400">$ git clone https://github.com/AnEntrypoint/agentgui.git
239
+ $ cd agentgui
240
+ $ npm install
241
+ $ npm run dev</pre>
242
+ </div>
576
243
 
577
- <h3 style="margin: 2rem 0 1rem;">System Requirements</h3>
578
- <ul style="list-style: none; padding: 0;">
579
- <li style="padding: 0.5rem 0; color: #4b5563;">✓ Node.js 18+ (LTS recommended)</li>
580
- <li style="padding: 0.5rem 0; color: #4b5563;">✓ npm or bun package manager</li>
581
- <li style="padding: 0.5rem 0; color: #4b5563;">✓ At least one AI coding agent (Claude Code, Gemini CLI, etc.)</li>
582
- </ul>
244
+ <h3 class="font-semibold text-lg mb-3">System Requirements</h3>
245
+ <div class="card p-5 space-y-2">
246
+ <div class="flex items-center gap-2"><span class="badge badge-success badge-sm">✓</span> <span class="text-content2">Node.js 18+ (LTS recommended)</span></div>
247
+ <div class="flex items-center gap-2"><span class="badge badge-success badge-sm">✓</span> <span class="text-content2">npm or bun package manager</span></div>
248
+ <div class="flex items-center gap-2"><span class="badge badge-success badge-sm">✓</span> <span class="text-content2">At least one AI coding agent (Claude Code, Gemini CLI, etc.)</span></div>
583
249
  </div>
584
250
  </div>
585
251
  </section>
586
252
 
587
253
  <!-- Footer -->
588
- <footer class="footer">
589
- <div class="container">
590
- <div class="footer-links">
591
- <a href="https://github.com/AnEntrypoint/agentgui">GitHub</a>
592
- <a href="https://www.npmjs.com/package/agentgui">npm</a>
593
- <a href="https://github.com/AnEntrypoint/agentgui/issues">Issues</a>
594
- <a href="https://github.com/AnEntrypoint/agentgui#readme">Documentation</a>
254
+ <footer class="bg-base-2 border-t border-base-3 py-10 px-4 text-center">
255
+ <div class="max-w-4xl mx-auto">
256
+ <div class="flex flex-wrap justify-center gap-6 mb-4">
257
+ <a href="https://github.com/AnEntrypoint/agentgui" class="text-content2 hover:text-content1 transition-colors">GitHub</a>
258
+ <a href="https://www.npmjs.com/package/agentgui" class="text-content2 hover:text-content1 transition-colors">npm</a>
259
+ <a href="https://github.com/AnEntrypoint/agentgui/issues" class="text-content2 hover:text-content1 transition-colors">Issues</a>
260
+ <a href="https://github.com/AnEntrypoint/agentgui#readme" class="text-content2 hover:text-content1 transition-colors">Documentation</a>
595
261
  </div>
596
- <p>MIT License © 2025 AnEntrypoint</p>
597
- <p style="margin-top: 1rem;">Made with ❤️ by the AgentGUI team</p>
262
+ <p class="text-content3 text-sm">MIT License © 2025 AnEntrypoint · Made with ❤️ by the AgentGUI team</p>
598
263
  </div>
599
264
  </footer>
600
265
 
601
- <script>
602
- function copyCode(btn) {
603
- const codeBlock = btn.nextElementSibling;
604
- const text = codeBlock.textContent;
605
-
606
- navigator.clipboard.writeText(text).then(() => {
607
- const originalText = btn.textContent;
608
- btn.textContent = 'Copied!';
609
- setTimeout(() => {
610
- btn.textContent = originalText;
611
- }, 2000);
612
- });
613
- }
614
- </script>
615
266
  </body>
616
267
  </html>
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentgui",
3
- "version": "1.0.621",
3
+ "version": "1.0.623",
4
4
  "description": "Multi-agent ACP client with real-time communication",
5
5
  "type": "module",
6
6
  "main": "server.js",