Botticelli is a sophisticated desktop application built with Electron, React, and TypeScript that provides a comprehensive environment for configuring, managing, and deploying conversational agents. Whether you're conducting research experiments, building AI assistants, or creating interactive simulations, Botticelli offers the tools you need to bring your conversational AI projects to life.
- 🤖 Multi-Agent Management: Create and manage both artificial and human agents
- 🧪 Experiment Framework: Design and run controlled experiments with multiple participants
- 💬 Interactive Conversations: Real-time messaging and conversation management
- 🎯 Template System: Reusable interaction and exchange templates
- 🎙️ Audio Support: Voice transcription and audio message handling
- 🌍 Internationalization: Multi-language support (English, French)
- 📊 Simulation Tools: Create and run agent simulations
- ⚡ Trigger System: Automated event-driven interactions
- 🔧 Settings Management: Comprehensive configuration options
Botticelli is built with a modern tech stack:
- Frontend: React 18 with TypeScript, Material-UI Joy components
- Backend: Electron main process with TypeORM for data persistence
- Database: SQLite for local data storage
- State Management: Redux Toolkit with persistence
- Audio Processing: FFmpeg integration for audio handling
- AI Integration: OpenAI API support for AI-powered responses
- Node.js (v18 or higher)
- Yarn (v4.1.1 or higher)
- Git
-
Clone the repository
git clone https://github.com/juancarlosfarah/botticelli.git cd botticelli -
Install dependencies
yarn install
-
Start the development server
yarn dev
The application will open in a new Electron window. You'll be prompted to log in to access the main interface.
# Development
yarn dev # Start development server
yarn start # Start production preview
# Building
yarn build # Build for current platform
yarn build:win # Build for Windows
yarn build:mac # Build for macOS
yarn build:linux # Build for Linux
# Code Quality
yarn lint # Run ESLint
yarn format # Format code with Prettier
yarn typecheck # Run TypeScript type checking- VSCode with the following extensions:
botticelli/
├── src/
│ ├── main/ # Electron main process
│ │ ├── channels/ # IPC communication channels
│ │ ├── entity/ # TypeORM database entities
│ │ └── utils/ # Main process utilities
│ ├── renderer/ # React frontend application
│ │ └── src/
│ │ ├── components/ # React components
│ │ ├── services/ # API services
│ │ └── store/ # Redux store
│ └── shared/ # Shared types and interfaces
├── resources/ # Application resources
└── config/ # Build configuration
- Artificial Agents: AI-powered assistants, evaluators, and participants
- Human Agents: Human assistants and participants
- Agent Types: Different roles and capabilities for various use cases
- Interaction Templates: Reusable conversation patterns
- Exchange Templates: Structured conversation flows
- Participant Management: Assign agents to experiments
- Real-time Messaging: Live conversation capabilities
- Audio Support: Voice transcription and playback
- Message History: Persistent conversation storage
We welcome contributions from the community! Here's how you can help:
- Use the GitHub Issues page
- Include detailed steps to reproduce the issue
- Provide system information and error logs
- Open a new issue with the "enhancement" label
- Describe the feature and its potential benefits
- Consider implementation complexity and impact
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests and ensure code quality (
yarn lint && yarn typecheck) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style and conventions
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Ensure all TypeScript types are properly defined
This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE file for details.
- Juan Carlos Farah - juancarlosfarah
Made with ❤️ and ☕️ in 🇨🇭.
If you find Botticelli useful, please consider giving it a ⭐ on GitHub!