Skip to content

Latest commit

 

History

100 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏠 Agent Meeting Room

Agent Meeting Room logo

A Flask web app where you @mention AI agents into a live group chat.
Local models via Ollama · cloud AI on demand · Streaming debates · Obsidian memory · Add unlimited agents

CI


Agent Meeting Room screenshot


What it does

Imagine a group chat where everyone at the table is an AI — each with a different personality, model, and reasoning style. You type a message, mention the agents you want, and they all respond. You can spark a structured debate, run a free-form group discussion via live streaming, or pull in Claude, Codex, or Gemini as cloud advisors.

  • @mention routing — only the agents you tag reply
  • Debate mode — structured 3-round argument with a final summary
  • Free Talk — agents stream a live discussion on any topic via SSE
  • Meeting templates — Code Review, Product Debate, Research, and Planning starter rooms
  • Memory — save meeting notes directly to an Obsidian vault
  • Searchable memory — find saved Markdown notes from the room UI
  • Optional semantic memory — use embeddings and TurboVec to find related notes by meaning
  • Transcript export — download the current meeting as a Markdown file
  • Structured deliveries — turn a meeting into PR descriptions, issue drafts, plans, release notes, and review summaries
  • Meeting history — search the current room and jump back to earlier messages
  • Project context — load a local repo/folder so agents can review and plan with codebase context
  • Cloud agent commands — Claude, Codex/OpenAI, and Gemini/Google can join on demand

Agents

All local agents run any Ollama-compatible model — swap by editing the "model" field in agents.py. Defaults are chosen to run under 8GB VRAM.

Agent Default Model VRAM Personality
@mistral mistral ~4 GB Sharp analytical thinker
@phi3 phi3 ~2 GB Creative lateral thinker
@gemma2 gemma2:2b ~1.5 GB Balanced careful summarizer
@deepseek deepseek-r1:7b ~4.7 GB Deep step-by-step reasoner
@claude claude-sonnet-4-6 API Collaborative nuanced advisor
@codex OPENAI_MODEL (gpt-4.1-mini default) API Coding and product advisor
@gemini / @google GEMINI_MODEL (gemini-2.5-flash default) API Research and planning advisor

Swap a model: open agents.py → change the "model" value to anything from ollama list.


Adding your own agents — unlimited LLMs

The AGENTS dict in agents.py is the only place you need to touch. You can add as many models as your hardware can handle — any model in ollama list works.

Step 1 — pull the model

ollama pull llama3
ollama pull qwen2:7b
ollama pull codellama
# or any model from https://ollama.com/library

Step 2 — add an entry to agents.py

"llama3": {
    "model":       "llama3",          # must match exactly what ollama list shows
    "name":        "Llama3",          # display name in the UI
    "color":       "#E8A838",         # any hex color for the chat bubble
    "personality": """You are Llama3, a well-rounded and helpful thinker.
You are direct, practical, and friendly. Keep responses under 150 words
unless asked for detail. You are in a group meeting with other AI agents."""
},

Step 3 — restart the app. Your new agent shows up in the agents bar automatically and is @mentionable by the key name (e.g. @llama3).

Hardware guidance

VRAM What runs comfortably
6–8 GB 2–3 agents simultaneously (e.g. Mistral + Phi3 + Gemma2)
12–16 GB 4–5 agents (full default set + 1–2 extras)
24 GB+ 6+ agents, larger 13B+ models

Agents load on-demand per message — you're not running them all in parallel unless using @all or @debate.


Customization

Agent Meeting Room is meant to feel like your own digital table, not a fixed demo. Open Customize to tune the room without changing code:

Customization Behavior
Agent display names Rename agents in the UI without changing the @mention key
Agent avatars Choose an image/logo URL or use the generated initials fallback
Agent accent colors Pick each agent's chip, name, and message highlight color
Persona cards Edit role, tone, expertise, and meeting behavior from a simple form
Saved presets Save and load teams such as Code Review, Product Debate, Research, or Planning
Meeting templates Apply Code Review, Product Debate, Research, or Planning templates with starter prompts
Room identity Set an optional room title, purpose, and logo for demos or recurring meetings
Free Talk duration Choose short or long discussions, from quick 5-minute syncs to longer 30-minute sessions
TTS voices Let browser speech synthesis read agent replies, with optional voice name hints per agent

Customizations are stored locally in agent_profiles.json, which is ignored by Git so each room can keep its own private setup.


Structured deliveries

After a meeting, click Structured Delivery to generate a Markdown draft from the current conversation. Built-in formats include Code Review Summary, Product Decision Memo, Research Brief, Research Action Brief, Implementation Plan, Bug Report, Release Notes Draft, GitHub Issue Draft, and Pull Request Description.

Research Action Brief proof

Each draft can be copied or downloaded, so the room can move from discussion to a practical artifact without needing another tool.

The Research Action Brief is built for turning large research sessions into something usable: the strongest evidence, the sellable asset it should become, approval gates, risks, and the next 7-day execution step.


Meeting history

The Meeting History panel gives the current room a searchable timeline with message counts, participant counts, and quick jump links back to earlier user or agent messages. The UI restores the server-side in-memory history on reload, so active desktop sessions feel less fragile.


Project context

Click Project Context and enter a local folder path to load a concise codebase summary into the room. Agent Meeting Room indexes useful text files, skips heavy folders such as .git, node_modules, venv, dist, and build, then adds the project summary to future agent prompts.

This is useful for code review meetings, implementation planning, release planning, and project improvement debates without pasting files manually.


Semantic memory

Keyword memory search works out of the box. For deeper retrieval, Agent Meeting Room also has an optional semantic memory path that indexes saved notes with embeddings and TurboVec.

To try it:

ollama pull nomic-embed-text
pip install numpy turbovec

Then set:

SEMANTIC_MEMORY_ENABLED=true
SEMANTIC_MEMORY_MODEL=nomic-embed-text

When available, the Search Memory panel can switch from Keyword to Semantic memory. If TurboVec, NumPy, or the embedding model is missing, the app keeps working and explains that semantic search is unavailable.


Download & install

Option A — Portable EXE (simplest)

  1. Go to Releases
  2. Download AgentMeetingRoom.exe
  3. Double-click — browser opens automatically

Option B — Build the Windows installer

The repo includes AgentMeetingRoom_Setup.iss for Inno Setup if you want a full installer with desktop and Start Menu shortcuts.

  1. Run build.bat to create dist/AgentMeetingRoom.exe
  2. Open AgentMeetingRoom_Setup.iss with Inno Setup 6
  3. Build the setup package — output is written to dist/

Prerequisite for both: Ollama must be installed and at least one model pulled.

ollama pull mistral

Option C — Native desktop shell

The repo also includes a Tauri desktop build that bundles the Flask backend sidecar and opens the app in a native WebView window:

npm run desktop:tauri

This requires Node.js, Rust/Cargo, Python, and the Visual Studio C++ Build Tools.

There is also a lighter Pake experiment that wraps an already-running local Flask URL:

npm install
npm run desktop:pake:msi

See docs/PAKE_DESKTOP.md for details.

Option D — Run from source (developers)

See Quick Start below.


Quick Start

Step 1 — Install Ollama (required)

Ollama runs the local AI models. Without it, local agents won't respond.

Platform Download
Windows ollama.com/download/windows
macOS ollama.com/download/mac
Linux curl -fsSL https://ollama.com/install.sh | sh

After installing, pull at least one model:

ollama pull mistral        # ~4 GB — recommended starting point
ollama pull phi3           # ~2 GB — lightweight
ollama pull gemma2:2b      # ~1.5 GB — very lightweight
ollama pull deepseek-r1:7b # ~4.7 GB — deep reasoning

Ollama must be running before you start Agent Meeting Room.
It starts automatically on Windows/macOS after install. On Linux: ollama serve


Step 2 — Clone and install Python dependencies

git clone https://github.com/GhravenLabs/Agent-Meeting-Room
cd Agent-Meeting-Room
pip install -r requirements.txt

Requires Python 3.11+. Check with python --version.


Step 3 — Configure (copy .env)

cp .env.example .env

Open .env and set:

Variable Required? What it does
ANTHROPIC_API_KEY Optional Enables @claude — get one at console.anthropic.com
OPENAI_API_KEY Optional Enables @codex
OPENAI_MODEL Optional Overrides the @codex model, default gpt-4.1-mini
GEMINI_API_KEY / GOOGLE_API_KEY Optional Enables @gemini and @google
GEMINI_MODEL Optional Overrides the Gemini model, default gemini-2.5-flash
MEMORY_BACKEND Optional local (default), obsidian, or none
OBSIDIAN_VAULT_PATH Optional Only if MEMORY_BACKEND=obsidian
SEMANTIC_MEMORY_ENABLED Optional Enables TurboVec-backed semantic note search
SEMANTIC_MEMORY_MODEL Optional Ollama embedding model, default nomic-embed-text

Memory is optional. By default it saves notes to ./meeting_notes/ next to app.py — no Obsidian needed.


Step 4 — Run

python app.py
# Windows: double-click start.bat

Open http://localhost:5000

The startup log tells you exactly what's working:

==================================================
  Agent Meeting Room
==================================================
  ✓ Ollama running  (4 model(s) available)
      · mistral
      · phi3
      · gemma2:2b
      · deepseek-r1:7b
  ✓ Memory: local folder  (./meeting_notes)
  .. Claude API: no key set  (@claude will not respond)
     Add ANTHROPIC_API_KEY to .env for @claude
  .. Codex API: no key set  (@codex will not respond)
     Add OPENAI_API_KEY to .env for @codex
  .. Gemini API: no key set  (@gemini will not respond)
     Add GEMINI_API_KEY or GOOGLE_API_KEY to .env for @gemini
==================================================
  Open: http://localhost:5000
==================================================

Testing

Run the built-in test suite with Python's standard unittest runner:

python -m unittest discover -s tests
# Windows: double-click test.bat

The tests cover customization persistence, Flask route validation, Free Talk duration clamping, and memory note filename handling.


Usage

What you type What happens
@mistral explain quantum computing Only Mistral replies
@phi3 @gemma2 brainstorm ideas Phi3 and Gemma2 reply
@all what should I build next? All local agents reply
@claude review this plan Claude API responds
@codex make an implementation plan Codex/OpenAI responds
@gemini compare these options Gemini/Google responds
@debate is AI good or bad? 3-round structured debate
(no mention) All local agents reply

For Free Talk, click the Free Talk button → give a topic → agents discuss live in real time.


Project Structure

agent-meeting-room/
├── app.py              Flask routes and SSE streaming
├── agents.py           Agent definitions, Ollama + cloud API calls, debate logic
├── memory.py           Obsidian vault integration
├── templates/
│   └── index.html      Single-page frontend (Vanilla JS + SSE)
├── start.bat           Windows one-click launcher
├── .env.example        Environment variable template
└── requirements.txt

Requirements

Requirement Required? Notes
Python 3.11+ ✅ Required python.org
Ollama ✅ Required For local agents — must be running
Cloud API keys Optional Only for @claude, @codex, @gemini, and @google
Obsidian Optional Only if you want Obsidian memory — not needed

Tech Stack

Backend: Python · Flask · Server-Sent Events
Local AI: Ollama (Mistral · Phi3 · Gemma2 · DeepSeek)
Cloud AI: Anthropic Claude API · OpenAI/Codex · Google Gemini Frontend: Vanilla JS · SSE streaming
Memory: Pluggable — local folder (default) · Obsidian vault (optional) · or disabled



AI Assistance Transparency

I use AI-assisted development tools while building and maintaining this project. All code, design decisions, testing, commits, and releases are reviewed and shipped by me as the repository owner; AI tools are not listed as project contributors.

License

MIT — see LICENSE


Contributing

See CONTRIBUTING.md — adding a new agent takes about 5 lines.

Changelog

See CHANGELOG.md for release history.

About

Flask multi-agent AI chat with Ollama, cloud agents, SSE debates, memory, and research-to-action drafts.

Topics

Resources

Contributing

Security policy

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages