Skip to content

AnEntrypoint/agentgui

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1,313 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AgentGUI

npm version npm downloads license GitHub Pages

Multi-agent GUI client for AI coding agents with real-time streaming, WebSocket sync, and SQLite persistence.

Supported Agents

Agent Protocol Auto-installable
Claude Code CLI -
OpenCode ACP opencode-ai
Gemini CLI ACP @google/gemini-cli
Kilo Code ACP @kilocode/cli
Goose ACP -
OpenHands ACP -
Augment Code ACP -
Cline ACP -
Kimi CLI ACP -
Qwen Code ACP -
Codex CLI ACP -
Mistral Vibe ACP -
Kiro CLI ACP -
fast-agent ACP -

Main Interface

Why AgentGUI?

Modern AI coding requires juggling multiple agents, each in their own terminal. AgentGUI solves this by providing a unified interface where you can:

  • Compare agents side-by-side - Test the same prompt across Claude Code, Gemini CLI, OpenCode, and others
  • Preserve context - Every conversation, file change, and terminal output is automatically saved
  • Resume interrupted work - Pick up exactly where you left off, even after system restarts
  • Work visually - See streaming responses, file changes, and tool calls in real-time instead of raw JSON

Features

  • πŸ€– Multi-Agent Support - 14 agents: Claude Code, Gemini CLI, OpenCode, Kilo, Goose, OpenHands, Augment, Cline, Kimi, Qwen, Codex, Mistral Vibe, Kiro, fast-agent
  • ⚑ Real-Time Streaming - Watch agents work with live streaming output and tool calls via WebSocket
  • πŸ’Ύ Session Persistence - Full conversation history stored in SQLite with WAL mode
  • πŸ”„ WebSocket Sync - Live updates across multiple clients with automatic reconnection
  • 🎀 Voice Integration - Speech-to-text and text-to-speech powered by Hugging Face Transformers (no API keys)
  • πŸ› οΈ Tool Management - Install and update agent plugins directly from the UI
  • πŸ“ File Browser - Drag-and-drop uploads, direct file editing, and context-aware operations
  • πŸ”Œ Developer Friendly - Hot reload, REST API, WebSocket endpoints, and extensible plugin system

Screenshots

Main Interface Chat View
Main Chat
Files Browser Terminal View
Files Terminal
Tools Management Conversation
Tools Conversation

Quick Start

Using npx (Recommended)

npx agentgui

Manual Installation

git clone https://github.com/AnEntrypoint/agentgui.git
cd agentgui
npm install
npm run dev

Server starts on http://localhost:3000/gm/

System Requirements

  • Node.js 18+ (LTS recommended)
  • SQLite 3
  • Modern browser (Chrome, Firefox, Safari, Edge)
  • At least one supported AI coding agent installed (see table above)
  • Optional: Python 3.9+ for text-to-speech on Windows

Architecture

server.js              HTTP server + WebSocket + all API routes
database.js            SQLite setup (WAL mode), schema, query functions
lib/claude-runner.js   Agent framework - spawns CLI processes, parses stream-json output
lib/acp-manager.js     ACP tool lifecycle - auto-starts HTTP servers, restart on crash
lib/speech.js          Speech-to-text and text-to-speech via @huggingface/transformers
static/index.html      Main HTML shell
static/app.js          App initialization
static/js/client.js    Main client logic
static/js/conversations.js       Conversation management
static/js/streaming-renderer.js  Renders Claude streaming events as HTML
static/js/websocket-manager.js   WebSocket connection handling

Key Details

  • Agent discovery scans PATH for known CLI binaries at startup
  • Database lives at ~/.gmgui/data.db (WAL mode for concurrent access)
  • WebSocket endpoint at /gm/sync for real-time updates
  • ACP tools (OpenCode, Kilo) auto-launch as HTTP servers on startup with health checks

Use Cases

Multi-Agent Comparison: Run the same task through different agents to compare approaches, quality, and speed.

Long-Running Projects: Build complex features across multiple sessions without losing context or conversation history.

Team Collaboration: Share conversation URLs and working directories for pair programming with AI agents.

Agent Development: Test and debug custom agents with full visibility into streaming events and tool calls.

Offline Speech: Use local speech-to-text and text-to-speech without API costs or internet dependency.

REST API

All routes prefixed with /gm:

Conversations:

  • GET /api/conversations - List conversations
  • POST /api/conversations - Create conversation
  • GET /api/conversations/:id - Get conversation with streaming status
  • POST /api/conversations/:id/messages - Send message
  • DELETE /api/conversations/:id - Delete conversation

Agents & Tools:

  • GET /api/agents - List discovered agents
  • GET /api/tools - List detected tools with installation status
  • POST /api/tools/:id/install - Install tool
  • POST /api/tools/:id/update - Update tool

Speech:

  • POST /api/stt - Speech-to-text (raw audio input)
  • POST /api/tts - Text-to-speech (returns audio)
  • GET /api/speech-status - Check model download progress

WebSocket: /gm/sync - Subscribe to conversation/session updates with events like streaming_start, streaming_progress, streaming_complete

Environment Variables

  • PORT - Server port (default: 3000)
  • BASE_URL - URL prefix (default: /gm)
  • STARTUP_CWD - Working directory passed to agents
  • HOT_RELOAD - Enable watch mode (default: true)

Troubleshooting

Server Won't Start

  • Check if port 3000 is in use: lsof -i :3000 (macOS/Linux) or netstat -ano | findstr :3000 (Windows)
  • Try a different port: PORT=4000 npm run dev

Agent Not Detected

  • Verify agent is installed: which claude / where claude
  • Check PATH includes agent binary location
  • Restart server after installing new agents

WebSocket Connection Failed

  • Verify BASE_URL matches your deployment
  • Check browser console for errors
  • Ensure no firewall blocking WebSocket connections

Speech Models Not Downloading

  • Check internet connection and firewall
  • Verify ~/.gmgui/models/ is writable
  • Monitor progress via /api/speech-status endpoint

Development

npm run dev        # Start with watch mode and hot reload
npm start          # Production mode (no watch)
npm test           # Run tests (if available)

Hot reload is enabled by default. File changes trigger automatic restart without losing state.

Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Links

License

MIT Β© AnEntrypoint

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • JavaScript 74.5%
  • HTML 24.1%
  • Other 1.4%