An intelligent brainstorming assistant that listens to conversations, analyzes discussions, and contributes ideas using advanced AI models (Claude Sonnet 4.5, GPT-4, Gemini 2.0).
- Multi-Platform Support: Available as mobile apps (iOS/Android) and desktop applications (Windows/macOS/Linux)
- Voice Recognition: Real-time speech-to-text with speaker diarization
- Voice Calibration & Mapping: Optional per-session calibration step where each participant briefly introduces themselves so diarized speaker tags can be mapped to their first names
- AI Models: Support for Claude Sonnet 4.5, GPT-4, and Gemini 2.0 Pro
- Smart Contributions: AI analyzes conversations, contributes relevant ideas, and targets a length close to the average number of words used by human participants
- Configurable Frequency: Tune how often the AI participates
- Voice Selection: Choose between male and female AI voices
- Session Reports: Comprehensive summaries with full transcripts and AI-generated, Word-compatible (RTF) reports saved locally
- Real-time Updates: WebSocket-based real-time session synchronization
- Session-Level Recording: Optional full-session audio recording stored locally on the device under an
aibro/audiosfolder (Linux, Windows, macOS, Android, iOS) - Previous Sessions Library: Browse, play, share, or delete past session recordings from the device
- Spring Boot 3.2.1 with Java 17
- RESTful APIs for session management
- WebSocket support for real-time communication
- Integration with Claude, OpenAI, and Gemini APIs
- Google Cloud Speech-to-Text and Text-to-Speech
- H2 in-memory database (easily switchable to PostgreSQL)
- Cross-platform mobile and desktop application
- Provider/BLoC for state management
- Audio recording and playback
- Real-time WebSocket communication
- Beautiful, responsive UI
For a more detailed, step-by-step setup guide, see QUICKSTART.md.
- Java 17 or higher
- Maven 3.6+
- Flutter 3.0+
- API Keys:
- Anthropic (Claude)
- OpenAI (GPT-4)
- Google Cloud (Gemini & Speech services)
- Navigate to the backend directory:
cd backend- Build the project:
mvn clean install- Run the application:
mvn spring-boot:runThe backend will start on http://localhost:8080
- Navigate to the Flutter app directory:
cd flutter_app- Install dependencies:
flutter pub get- Run on your preferred platform:
# For Android
flutter run -d android
# For iOS
flutter run -d ios
# For Desktop (Windows)
flutter run -d windows
# For Desktop (macOS)
flutter run -d macos
# For Desktop (Linux)
flutter run -d linuxUsers must configure their API keys in the app settings:
- Open the app
- Navigate to Settings
- Enter your API keys:
- Claude API Key
- OpenAI API Key
- Google Cloud API Key (for Speech services and Gemini)
-
Start a Session:
- First, configure AI model, contribution frequency (1–20), and AI voice (male/female) in the Settings screen
- From the Home screen, tap Start Session
- Enter the number of participants (integer between 1 and 6)
- Enter each participant's first name
- Define the objective of the brainstorming session
- If there are at least 2 participants, you can optionally run a short Calibrate voices step where, in order, each participant briefly introduces themselves so AiBro can map diarized voices to their first names
- During the session, you can optionally start a session-level recording from the session header card; the audio will be stored locally on the device and can be reviewed later
-
During the Session:
- The app listens to conversations
- AI analyzes discussions in real-time
- When AI has an idea:
- Blue light indicator appears
- Sound notification plays
- AI speaks its contribution
- AI contributions aim for a word count similar to the average length of human contributions, so the assistant does not dominate the conversation
- You can toggle a session timer from the session header card, either as a simple elapsed-time indicator or as a countdown to a target session duration; when running, the timer is prominently displayed above the session controls
-
End Session:
- Tap End session in the session header; a confirmation dialog will appear before closing the session
- If there is no discussion and no full-session recording, you are returned to the Home screen
- If there is either a discussion or a full-session recording, you are taken to the Report screen for that session
- From the Report screen you can generate a comprehensive, Word-compatible (RTF) report that includes participants, objective, selected AI model, duration (when available), ideas grouped by participant, a contributions timeline, and an AI-refined textual summary
-
Review Previous Sessions (Recordings):
- From the Home screen, tap Previous sessions
- See a list of all full-session audio recordings stored on the current device, with session id, objective, timestamp, and file name
- For each recording you can:
- Play or stop the audio directly in the app
- Open the recording in the system's default file handler (or its containing folder on desktop platforms)
- Export/share the audio via email or other apps
- Delete the recording from the device
-
Local File Storage (Reports & Audio):
- On each platform, AiBro uses the OS documents directory as a base and creates an
aibrofolder - Reports are generated as Word-compatible
.rtffiles underaibro/reports - Full-session audio recordings are stored under
aibro/audios
- On each platform, AiBro uses the OS documents directory as a base and creates an
POST /api/sessions- Create new sessionGET /api/sessions- List all sessionsGET /api/sessions/{id}- Get session detailsPUT /api/sessions/{id}- Update sessionPOST /api/sessions/{id}/end- End sessionGET /api/sessions/{id}/report- Get session report
POST /api/audio/transcribe- Transcribe audio with speaker diarizationPOST /api/audio/synthesize- Convert text to speechPOST /api/audio/calibrate- Calibrate diarized speakers against participant first names using a short introduction round
POST /api/keys- Save API keysGET /api/keys/validate/{model}- Validate API key for specific model
/ws- WebSocket endpoint/topic/session/{id}/ai- AI contributions/topic/session/{id}/status- Session status updates/topic/session/{id}/contributions- Real-time contributions
aibro/
├── backend/ # Spring Boot backend
│ ├── src/main/java/com/aibro/
│ │ ├── config/ # Configuration classes
│ │ ├── controller/ # REST & WebSocket controllers
│ │ ├── dto/ # Data transfer objects
│ │ ├── model/ # JPA entities
│ │ ├── repository/ # Data repositories
│ │ └── service/ # Business logic
│ ├── src/main/resources/
│ │ └── application.yml # Application configuration
│ └── pom.xml
├── flutter_app/ # Flutter frontend
│ ├── lib/
│ │ ├── models/ # Data models
│ │ ├── services/ # API & business services
│ │ ├── screens/ # UI screens
│ │ ├── widgets/ # Reusable widgets
│ │ └── utils/ # Utility functions
│ ├── assets/ # Images, sounds, animations
│ └── pubspec.yaml
└── README.md
- Spring Boot 3.2.1
- Spring Data JPA
- Spring WebSocket
- Spring Security
- OkHttp3
- H2 Database
- Lombok
- Maven
- Flutter 3.0+
- Provider (State Management)
- Dio (HTTP Client)
- WebSocket Channel
- Audio Recorder
- Audio Players
- PDF / report export (including Word-compatible RTF generation stored under
aibro/reports) - Shared Preferences
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License.
For issues and questions, please create an issue in the repository.