Enterprise-grade multi-provider AI chat interface with file upload capabilities
SynAI is a production-ready, privacy-first AI chat interface that supports multiple AI providers in a unified experience. Built with enterprise-grade architecture, comprehensive testing, and designed for extensibility.
- 🤖 Multi-Provider Support: OpenAI GPT, Anthropic Claude, Perplexity AI
- 📎 File Upload Capabilities: Images, PDFs, documents with intelligent content extraction
- 💬 Advanced Chat Features: Conversation branching, search, templates, and history
- 🎨 Modern UI/UX: Responsive design, dark/light themes, accessibility-first
- 🔒 Privacy-First Architecture: All data stored locally, zero external tracking
- 🏢 Enterprise Ready: Comprehensive testing, CI/CD, security auditing
- 🔧 Developer Friendly: TypeScript, extensive documentation, contribution guidelines
- Node.js 18+ and npm 9+
- Modern web browser
- API keys for desired AI providers
# Clone the repository
git clone https://github.com/SashankBhamidi/SynAI.git
cd SynAI
# Install dependencies
npm install
# Start development server
npm run devVisit http://localhost:3000 to access SynAI.
- Click the Settings icon in the interface
- Add your API keys:
- OpenAI: Get API Key
- Anthropic: Get API Key
- Perplexity: Get API Key
Security Note: API keys are stored locally in your browser and never transmitted to external servers.
- OpenAI GPT Models: GPT-4, GPT-3.5 Turbo with various configurations
- Anthropic Claude: Claude-3 family with different capability tiers
- Perplexity AI: Web-enhanced AI responses with real-time information
- Conversation Management: Organize chats in folders, search conversations
- Message Templates: Pre-defined prompts for common use cases
- Conversation Branching: Explore different conversation paths
- Export/Import: Share conversations and settings
- Image Analysis: Upload and analyze images with AI vision models
- PDF Processing: Extract and process content from PDF documents
- Document Support: Handle various document formats with intelligent parsing
- Responsive Design: Optimized for desktop, tablet, and mobile
- Accessibility: WCAG 2.1 compliant with keyboard navigation
- Customizable Themes: Dark/light modes with custom color schemes
- Keyboard Shortcuts: Power-user features for efficient navigation
SynAI follows enterprise-grade architectural patterns:
src/
├── components/ # Reusable UI components
│ ├── ui/ # Base design system components
│ └── ... # Feature-specific components
├── services/ # AI provider integrations
│ └── providers/ # Individual provider implementations
├── utils/ # Utilities and helpers
├── hooks/ # Custom React hooks
├── types/ # TypeScript type definitions
└── contexts/ # React context providers
- Separation of Concerns: Clear boundaries between UI, business logic, and data
- Provider Pattern: Extensible AI provider integration system
- Component Composition: Reusable, testable component architecture
- Type Safety: Comprehensive TypeScript coverage
- Error Handling: Robust error boundaries and graceful degradation
# Start development server
npm run dev
# Run tests
npm test
# Type checking
npm run typecheck
# Linting and formatting
npm run lint
npm run lint:check
# Build for production
npm run build
# Preview production build
npm run preview- Unit Tests: Component and utility function testing
- Integration Tests: AI provider service testing
- End-to-End Tests: Critical user flow validation
- Type Checking: Comprehensive TypeScript validation
- ESLint: Code quality and consistency enforcement
- TypeScript Strict Mode: Enhanced type safety
- Automated Testing: CI/CD pipeline integration
- Security Auditing: Dependency vulnerability scanning
We welcome contributions from the community! SynAI is designed to be contributor-friendly with comprehensive documentation and clear guidelines.
- 🐛 Bug Reports: Help us identify and fix issues
- 💡 Feature Requests: Suggest new capabilities
- 🔧 Code Contributions: Implement features and fixes
- 📚 Documentation: Improve guides and examples
- 🎨 Design: Enhance UI/UX and accessibility
- Read our Contributing Guide
- Check Good First Issues
- Join our Discussions
- Review the Code of Conduct
See our detailed Development Guide for complete setup instructions.
| Resource | Description |
|---|---|
| Setup Guide | Complete installation and configuration |
| API Integration | Adding new AI providers |
| Architecture Guide | Technical architecture overview |
| Deployment Guide | Production deployment instructions |
| Contributing Guide | Contribution guidelines and workflows |
- Be Respectful: Follow our Code of Conduct
- Be Helpful: Assist other community members
- Be Constructive: Provide actionable feedback and suggestions
- Be Patient: Maintainers and contributors are volunteers
- Documentation: Check our docs first
- Search Issues: Look for existing solutions
- GitHub Discussions: Ask questions and share ideas
- Create Issues: Report bugs or request features
Security is a top priority for SynAI:
- Privacy-First: No data collection or external tracking
- Local Storage: API keys and conversations stored locally
- Security Auditing: Regular dependency vulnerability scanning
- Responsible Disclosure: Security Policy
- ✅ Stable: Production-ready with comprehensive testing
- 🔄 Active Development: Regular updates and improvements
- 🤝 Community Driven: Open to contributions and feedback
- 📈 Growing: Expanding feature set and provider support
- Thanks to all contributors who have helped improve SynAI
- Built with amazing open source technologies and libraries
- Inspired by the AI community's commitment to accessible AI tools
This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
✅ You CAN:
- Use for personal projects and learning
- Modify and adapt the code
- Share your modifications (under same license)
- Use for educational and research purposes
❌ You CANNOT:
- Use for commercial purposes or profit
- Host competing commercial services
- Sell or monetize the software
🌐 Official commercial hosting is exclusively provided at synai.site as a free service.
See the LICENSE file for complete terms.
Made with ❤️ by Sashank Bhamidi and the SynAI community