Skip to content

StressTestor/Agora-ai-agent-visualizer

Repository files navigation

    ___
   /   | ____ _____  _________ _
  / /| |/ __ `/ __ \/ ___/ __ `/
 / ___ / /_/ / /_/ / /  / /_/ /
/_/  |_\__, /\____/_/   \__,_/
      /____/

native desktop app for watching claude code multi-agent debates in real time. also runs debates between any combination of models yourself.

i built this because claude code's multi-agent teams dump JSON into inbox files and there's no native way to watch the conversation unfold. then i added a full debate runner on top. then i kept going.

agora-intro.mp4

install

brew tap stresstestor/tap
brew install --cask agora

or grab the DMG from releases. Apple Silicon only for now.

what it does

watch mode — passive viewer for claude code team debates

  • watches ~/.claude/teams/*/inboxes/*.json via macOS FSEvents (+ 2s poll fallback)
  • parses 5 different inbox JSON formats (array, {messages:[]}, {inbox:[]}, single object, key-value map)
  • deduplicates messages by content hash
  • detects new teams appearing at runtime
  • tracks task status changes from ~/.claude/tasks/
  • color-coded agents: advocate (cyan), critic (red), synthesizer (purple), team-lead (amber), fallback palette for custom agents
  • per-message collapse/expand buttons, content search (Cmd+K), auto-scroll
  • archives previous debate messages when a new debate starts on the same team

debate mode — run your own multi-model debates

  • 13 providers: Anthropic, OpenAI, OpenRouter, Groq, OpenCode, Gemini, DeepSeek, Moonshot, MiniMax, Z.ai, and more
  • streaming text — responses stream in character by character as the model generates them, with a blinking cursor. no waiting for the full response before seeing anything
  • claude code CLI provider — no API key needed, uses your existing CC subscription. runs claude -p as a subprocess so you never touch the OAuth token
  • mix providers per agent in the same debate (e.g. Claude Haiku via CC vs Gemini Flash via API key)
  • 4-step wizard: team name, agents, topics, settings
  • topic refinement — ✦ button on the topics field sends your rough idea to a configured AI and rewrites it into a specific, debatable topic. uses CC by default, configurable in settings
  • import agent configs from existing claude code teams
  • termination modes: fixed rounds, topic cycling, convergence detection, manual stop
  • visibility modes: group (everyone sees everything) or directed (one-to-one)
  • pause/resume/stop/restart controls
  • API keys stored locally at ~/.config/agora/config.json

CLI / TUI mode — run debates from the terminal

no GUI needed. the same binary doubles as a CLI tool with a full ratatui TUI for streaming debates in the terminal.

# run a debate with the TUI (default)
agora debate \
  --name rust-vs-go \
  --agent model-a:groq:llama-3.3-70b-versatile:debater \
  --agent model-b:gemini:gemini-2.5-flash:debater \
  --judge judge:opencode:mimo-v2-pro-free \
  --topic "Is Rust better than Go for backend services?" \
  --rounds 5

# plain text mode (no TUI, just streaming output)
agora debate --plain ...

# list available presets
agora list-presets

# list models for a provider
agora list-models groq

TUI features: agent-colored chat panels, per-turn timing, markdown rendering, vi-style scroll (j/k/PgUp/PgDn), live streaming with cursor indicator. press q to quit (debate thread stops immediately).

27 role presets across 7 categories

category roles
core advocate, critic, synthesizer, moderator
pressure devil's advocate, contrarian, pessimist, optimist
domain domain expert, security auditor, pragmatist, researcher, historian
creative visual designer, brand strategist, art director, minimalist, marketer
business product manager, stakeholder, end user, legal
perspective user advocate, first principles
arena debater, judge

13 debate presets across 6 categories

category presets
deliberation 3-agent deliberation, red team / blue team
technical adversarial probe, architecture decision, go / no-go
product product critique, feature scoping, build vs buy
creative creative review
research research panel, first principles reset
arena 1v1 duel, 3-way arena, provider showdown

role and preset dropdowns have search/filter built in.

providers

provider key required notes
claude code (CLI) no uses CC auth, ~10s per turn (Node startup)
anthropic yes direct API
openai yes direct API
groq yes fast inference, free tier available
gemini yes OpenAI-compatible endpoint
openrouter yes routes to any model
opencode zen yes
deepseek yes
moonshot / kimi yes
minimax yes
z.ai yes

settings

  • api keys — per-provider, stored in ~/.config/agora/config.json at mode 600
  • generation model — provider + model used for topic refinement and other single-shot AI calls. defaults to claude code CLI if unset

build from source

requires rust and tauri CLI:

cargo install tauri-cli --version '^2'
git clone https://github.com/StressTestor/Agora-ai-agent-visualizer.git
cd Agora-ai-agent-visualizer
cargo tauri build

the .app lands in src-tauri/target/release/bundle/macos/. copy to /Applications/ or run directly.

if your root disk is full, build to an external drive:

CARGO_TARGET_DIR=/Volumes/yourDrive/.cargo-tmp cargo tauri build

stack

  • tauri 2 (rust backend, webview frontend)
  • ratatui 0.29 + crossterm 0.28 (terminal UI)
  • clap 4 (CLI argument parsing)
  • notify 6 (FSEvents watcher)
  • reqwest 0.12 (blocking HTTP for provider calls)
  • vanilla HTML/CSS/JS frontend — no framework, no bundler
  • single binary, no runtime deps

license

MIT

About

desktop app for watching claude code multi-agent debates in real time. also runs debates between any combination of models.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors