__ __ __ __ ___ ___ _ ___
| | | | | \ | \ | | / _]
| | | | | \| \| | / [_
| _ | | | D | D | |___| _]
| | | : | | | | [_
| | | | | | | |
|__|__|\__,_|_____|_____|_____|_____|
A sophisticated terminal-based chat application that enables multi-bot conversations with AI assistants. Built with Go and Bubble Tea, Huddle provides a rich TUI experience for managing discussions with specialized AI bots and custom commands.
- Specialized AI Bots: Pre-configured bots with specific expertise (Product Manager, Senior Developer, UX Designer)
- Intelligent Response Strategy: AI-powered analysis determines which bots should respond based on conversation context
- JSON-Structured Communication: Prevents multi-persona responses and ensures consistent bot behavior
- Dynamic Bot Management: Add/remove bots from discussions with real-time UI updates
- Rich TUI: Beautiful terminal interface with panels for discussions, chat, and participants
- Syntax Highlighting: Code blocks are automatically highlighted using Chroma
- Message History: Persistent SQLite database stores all conversations
- Real-time Indicators: Visual feedback for bot thinking and response states
Comprehensive slash command system inspired by Claude Code:
/help- Show available commands and usage/clear- Clear current discussion messages/export [format]- Export discussion to markdown, JSON, or text/info- Show discussion and system statistics/quit- Exit application
Create your own commands using Markdown files with YAML frontmatter:
---
description: Show system status and current time
usage: /status
---
# System Status
**Current Time:** $TIME $DATE
**Active Discussion:** $DISCUSSION
**User:** $USER
$ uptime
$ df -hFeatures:
- YAML frontmatter for metadata
- Variable substitution (
$TIME,$DATE,$DISCUSSION,$USER,$1,$2, etc.) - Shell command execution with enhanced formatting
- Automatic command discovery from
.huddle/commands/
- Charm Integration: Beautiful styling using Lip Gloss and Glamour
- Command Output: Styled terminal output with borders, colors, and proper spacing
- Responsive Layout: Adapts to terminal size changes
- Mouse Support: Click to focus panels and interact with UI elements
- Go + Bubble Tea: Modern TUI framework for responsive interfaces
- SQLite Database: Reliable local storage for conversations
- Modular Architecture: Clean separation of concerns with dedicated packages
- Error Handling: Comprehensive error handling with user-friendly messages
- Concurrent Processing: Multi-bot responses handled efficiently
- Go 1.21 or higher
- Terminal with mouse support (recommended)
git clone https://github.com/scottharvey/huddle.git
cd huddle
go build .
./huddle- Launch Huddle: Run
./huddlein your terminal - Create Discussion: Use
[+ New Discussion]or start typing a message - Add Bots: Select bots from the Available Bots panel
- Start Chatting: Type your message and press Enter
- Tab - Switch between panels
- β/β or j/k - Navigate lists
- Enter - Send message or select item
- Esc or Ctrl+C - Quit application
- d - Delete discussion (in discussions panel)
- r - Rename discussion (in discussions panel)
- Discussions: Manage conversation threads
- Chat: View messages and bot responses
- Participants: Add/remove bots from discussions
- Input: Type messages and commands
Create custom commands by adding Markdown files to .huddle/commands/:
- Create command file:
.huddle/commands/mycommand.md - Add YAML frontmatter with description and usage
- Write command content with variables and shell commands
- Use command: Type
/mycommandin chat
Example commands included:
/status- System information and resource usage/brainstorm <topic>- Start brainstorming session/summarize- Summarize current discussion
Bots are defined in bots/ directory with JSON configurations and markdown prompts:
bots/
βββ sarah/
β βββ config.json # Bot metadata and capabilities
β βββ prompt.md # System prompt and personality
βββ alex/
β βββ config.json
β βββ prompt.md
βββ jordan/
βββ config.json
βββ prompt.md
Create a .env file for configuration:
# AI API Configuration
OPENAI_API_KEY=your_api_key_here
CLAUDE_API_KEY=your_claude_key_here
# Database Configuration
DB_PATH=./huddle.db
# Debug Mode
DEBUG=falsehuddle/
βββ internal/
β βββ ai/ # LLM integration and strategy analysis
β βββ bot/ # Bot management and definitions
β βββ commands/ # Command system implementation
β βββ config/ # Configuration management
β βββ db/ # Database operations
β βββ tui/ # Terminal UI components
β βββ types/ # Common data structures
βββ bots/ # Bot configurations and prompts
βββ .huddle/
β βββ commands/ # Custom user commands
βββ main.go
- Create bot directory in
bots/ - Add
config.jsonwith bot metadata - Create
prompt.mdwith system prompt - Bot will be automatically discovered
- Fork the repository
- Create feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open Pull Request
You: I need to design a new mobile app feature for task management
Sarah (Product Manager): Let me break down the requirements...
Alex (Senior Developer): From a technical perspective, we'll need...
Jordan (UX Designer): For the user experience, I'd recommend...
/status
# Shows system status with current time, uptime, and disk usage
/brainstorm mobile app features
# Starts structured brainstorming session
/export markdown
# Exports current discussion to markdown file
MIT License - see LICENSE file for details.
- Bubble Tea - Excellent TUI framework
- Lip Gloss - Terminal styling
- Chroma - Syntax highlighting
- Claude Code - Command system inspiration
Built with β€οΈ using Go and the Charm ecosystem