explaingit

albertofettucini/council

17SwiftAudience · pm founderComplexity · 2/5LicenseSetup · easy

TLDR

A native macOS app that sends your question to up to three AI models at once, assigns them roles to encourage different perspectives, then has them critique each other answers anonymously and shows where they disagreed.

Mindmap

mindmap
  root((Council))
    What it does
      Multi-model questions
      Simultaneous answers
      Anonymous peer review
    Advisor roles
      Analyst
      Practitioner
      Skeptic
      Devil Advocate
    Providers supported
      Claude GPT Gemini
      DeepSeek Grok Mistral
      Ollama local models
    Views
      Side by side panels
      Divergence view
      Synthesis view
      Peer review page
    Tech stack
      Swift
      SwiftUI
      macOS 14
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Ask a business or strategy question to Claude, GPT, and Gemini simultaneously and see a summary of where they disagreed.

USE CASE 2

Run a Devil Advocate critique session where one AI model challenges the conclusions of the others on a decision you are considering.

USE CASE 3

Compare AI model responses side by side with live streaming text and track approximate token costs per session.

Tech stack

SwiftSwiftUI

Getting it running

Difficulty · easy Time to first run · 30min

Requires your own API keys for each AI provider, the app is unsigned so macOS will prompt for manual approval on first launch.

Use, copy, modify, and distribute freely for any purpose including commercial use, with the original copyright notice kept.

In plain English

Council is a native macOS application that sends the same question to several AI models at once and then has them critique each other's answers anonymously. The goal is to surface disagreements between models and give you a more complete picture than asking just one AI would provide. You type a question and up to three advisors answer it simultaneously in side-by-side panels with live streaming text. Each seat can be set to one of nine AI providers: Claude, GPT, Gemini, DeepSeek, Grok, Mistral, Perplexity, OpenRouter, or a locally running model through Ollama. Each seat also gets a role (Analyst, Practitioner, or Skeptic) to encourage genuinely different perspectives rather than three models saying the same thing. A Devil's Advocate role is available to challenge whatever the others conclude. Once all advisors have answered, each one sees the other answers without labels identifying which AI wrote them, and critiques them. The app then shows a Divergence view highlighting where the models disagreed, a Synthesis view summarizing points of agreement, and a full Peer Review page with all the critiques together. You can also drop in an image for models that support vision. Everything is stored locally. Your API keys for each provider are kept in the macOS Keychain and never written to exports, session files, or logs. You pay each provider directly with your own keys, Council does not sit in the middle. There is no account, no server, and no telemetry. A running cost estimate shows token counts and approximate spend as the session progresses. The app requires macOS 14 or later, is built with SwiftUI, and has no third-party dependencies. It can be downloaded as a pre-built binary or compiled from source in Xcode 16. Because it is not signed with a paid Apple developer certificate, macOS will warn on first launch and you need to approve it manually. The project is MIT-licensed and has 17 stars on GitHub.

Copy-paste prompts

Prompt 1
I want to use Council to evaluate three AI models takes on a go-to-market strategy for my product. Help me set up API keys for Claude, GPT, and Gemini in the macOS Keychain.
Prompt 2
I am getting a macOS security warning when I launch Council. Walk me through the manual approval steps to open an unsigned app.
Prompt 3
How do I configure Council seat roles so one advisor is an Analyst, one is a Practitioner, and one is a Devil Advocate to challenge the others?
Prompt 4
I submitted a question in Council and all three models agreed. How does the Divergence view work, and what does it show when models genuinely disagree?
Open on GitHub → Explain another repo

← albertofettucini on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.