Jarvis is a comprehensive AI-powered smart home and assistant platform that combines advanced AI capabilities with Home Assistant integration. Built with a modern tech stack, Jarvis provides a complete solution for smart home automation, AI model management, knowledge base systems, and more.
- Full Home Assistant API implementation
- Real-time device control and monitoring
- Entity, device, and area/room registry management
- Event-driven architecture with comprehensive state tracking
- Statistics and historical data analysis
- Multi-provider AI model support (OpenAI, Ollama, Anthropic, Google GenAI)
- Model registry with versioning and provider management
- Pipeline system for complex AI workflows
- Evaluation arena for model comparison and testing
- Real-time WebSocket communication
- Context-aware conversations with memory persistence
- Multi-user chat channels and group management
- Rich message formatting and file attachments
- Intelligent document retrieval and search
- Vector database integration (ChromaDB, Qdrant, Pinecone)
- Content extraction from multiple file formats
- Web search integration with multiple providers
- Audio transcription and text-to-speech
- Image generation and processing
- Video processing capabilities
- Content analysis and tagging
- Comprehensive RESTful API with automatic documentation
- WebSocket support for real-time updates
- Extensible plugin architecture
- Role-based access control and authentication
- Framework: Next.js 15 with React 19
- Styling: Tailwind CSS with Radix UI components
- State Management: React Hooks and Context API
- Real-time: Socket.IO client for WebSocket communication
- UI Components: Custom dashboard with responsive design
- Framework: FastAPI 0.118.0
- Database: SQLAlchemy ORM with multiple database support
- Authentication: JWT-based with OAuth and LDAP support
- Caching: Redis integration
- AI Libraries: LangChain, Transformers, OpenAI, Anthropic SDKs
- Search: ChromaDB, Qdrant, Pinecone vector databases
- Core Models: Users, Chats, Messages, Files, Folders
- AI Models: Models, Pipelines, Functions, Tools
- Home Assistant: States, Events, Statistics, Entity Registry
- Knowledge: Documents, Collections, Retrieval systems
- Media: Audio, Images, Videos with metadata
- Python 3.8+
- Node.js 18+
- Docker (recommended for dependencies)
- PostgreSQL, MySQL, or SQLite database
- Clone the repository:
git clone https://github.com/your-username/jarvis.git
cd jarvis- Backend setup:
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install Python dependencies
pip install -r requirements.txt- Frontend setup:
# Install Node.js dependencies
npm install- Environment configuration:
# Copy and configure environment variables
cp .env.example .env
# Edit .env with your configurationDevelopment Mode:
# Start backend server
python start.py
# In a separate terminal, start frontend development server
npm run devProduction Mode:
# Build frontend
npm run build
# Start server
python start.pyThe application will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8080
- API Documentation: http://localhost:8080/docs
Jarvis provides comprehensive API documentation automatically generated by FastAPI:
- Swagger UI: http://localhost:8080/docs
- ReDoc: http://localhost:8080/redoc
- User registration and login
- JWT token management
- OAuth integration
- Role-based access control
- State management APIs
- Event handling and firing
- Service call execution
- Registry management (entities, devices, areas)
- Statistics and recording
- Model listing and creation
- Provider integration (OpenAI, Ollama, Anthropic)
- Pipeline execution and management
- Model evaluation and comparison
- Message sending and retrieval
- Channel and group management
- File sharing and attachments
- Real-time updates via WebSocket
- Document upload and processing
- Vector search and retrieval
- Collection management
- Content extraction and analysis
Run the test suite with pytest:
pytest tests/Jarvis can be compiled into standalone executables for Windows, Linux, and macOS that include both the frontend and backend:
- Python 3.8+
- Node.js 18+
- All development dependencies installed
- Universal Build (Recommended):
python build-all.py- Platform-Specific Builds:
- Windows:
build-windows.bat - Linux:
build-linux.sh - macOS:
build-macos.sh
For detailed instructions, see BUILDING.md.
The executable will:
- Start the FastAPI backend on port 8080
- Build and serve the Next.js frontend on port 3000
- Run both services as a single application
Jarvis is highly configurable through environment variables. Key configuration options include:
- Database: Multiple database backends supported
- AI Providers: OpenAI, Anthropic, Ollama, Google GenAI
- Vector Stores: ChromaDB, Qdrant, Pinecone, Elasticsearch
- Authentication: JWT, OAuth, LDAP
- File Storage: Local, S3, Azure Blob, Google Cloud Storage
We welcome contributions to Jarvis! Please see our Contributing Guidelines for details on how to get started.
- 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 - see the LICENSE file for details.
- Home Assistant community for inspiration
- FastAPI and Next.js teams for excellent frameworks
- Open source AI libraries and tools
- All contributors to the project
For support, please open an issue on GitHub or contact the development team.