Skip to content

MarkusLund/aidebate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

aidebate

AI debate simulator that pits two AI agents against each other to collaboratively solve a problem through structured dialogue.

How it works

Two AI agents receive the same problem and independently form their initial hypotheses (round 0, in parallel). They then take turns responding to each other's arguments until they reach agreement or hit the message limit. When one agent proposes a conclusion (prefixed with AGREED:), the other is asked to confirm or object.

Supported agents

The script auto-detects which CLI tools are available and picks the best pair:

Priority Agent A Agent B
1 Claude Codex
2 Claude Gemini
3 Codex Gemini
4 Single agent fallback (same tool for both sides)

Requires at least one of: claude, codex, gemini. Also requires jq.

Installation

npm install -g aidebate

Or run directly:

bash ai-debate.sh "Your problem here"

Usage

aidebate [OPTIONS] "<problem>"

If no problem argument is provided, you'll be prompted to select an editor (nano, vim, VS Code, or Cursor) to compose a multiline problem. This is useful for complex prompts that don't fit well on a single command line.

Post-debate chat

After a debate concludes (either by agreement or reaching the message limit), you can continue chatting with one of the agents. The agent retains full context from the debate, allowing you to ask follow-up questions, explore specific points, or dive deeper into the topic.

Options

Flag Description Default
--max-rounds N Max number of messages 10
--timeout N API timeout in seconds 60
--claude-model MODEL Claude model (haiku, sonnet, opus) interactive
--codex-model MODEL Codex model (gpt-5.1-codex-mini, gpt-5.2-codex) interactive
--gemini-model MODEL Gemini model (gemini-2.5-flash, gemini-3-flash-preview) interactive
--system-prompt-file F Custom system prompt from file built-in
--output, -o FILE Save debate transcript to JSON file off
--debug Keep raw API responses and show tmpdir off

Examples

# Basic usage with interactive model selection
aidebate "Is P = NP?"

# Specify models directly
aidebate --claude-model sonnet --codex-model gpt-5.2-codex "Explain monads"

# Short debate with debug output
aidebate --max-rounds 4 --debug "Best sorting algorithm for nearly-sorted data"

# Save transcript to file
aidebate --output debate.json "Is functional programming better than OOP?"

Transcript Format

When using --output, the transcript is saved as JSON:

{
  "problem": "Your problem here",
  "agents": {
    "a": {"name": "Claude", "model": "sonnet"},
    "b": {"name": "Codex", "model": "gpt-5.2-codex"}
  },
  "messages": [
    {"agent": "a", "content": "...", "timestamp": "2024-01-15T10:30:00Z"},
    {"agent": "b", "content": "...", "timestamp": "2024-01-15T10:31:00Z"}
  ],
  "conclusion": "The agreed upon conclusion"
}

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages