ORBIT is a FastAPI-based WebSocket server that integrates with a React frontend to provide real-time AI agent interactions. The project includes Gmail and Google Tasks integration through MCP (Model Context Protocol) servers.
- Python 3.13 or higher
- Node.js 18+ and npm
- UV package manager
- Google API credentials (for Gmail and Tasks integration)
If you don't have UV installed, install it first:
Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh# Clone the repository (if not already done)
cd ORBIT
# Create virtual environment and install Python dependencies
uv syncThis will automatically:
- Create a virtual environment
- Install all Python dependencies from
pyproject.toml - Lock dependencies in
uv.lock
cd frontend
npm install- Create a Google Cloud project and enable Gmail and Tasks APIs
- Download credentials and place them in
secrets/credentials.json - The first run will prompt for OAuth authentication
You have several options to run the project:
Start the WebSocket Server:
uv run python websocket_server.pyStart the Frontend (in a new terminal):
cd frontend
npm run devIf you're using VS Code, you can use the built-in tasks:
- Open VS Code in the project directory
- Use
Ctrl+Shift+P(orCmd+Shift+Pon macOS) - Type "Tasks: Run Task" and select:
- "Start WebSocket Server" - Starts the Python backend
- "Start Frontend Dev Server" - Starts the React frontend
Windows:
.\start_servers.ps1Or using Command Prompt:
start_servers.bat# Install development dependencies
uv add --dev pytest black flake8
# Run the server with auto-reload
uv run uvicorn websocket_server:app --reload --host 0.0.0.0 --port 8000
# Run tests (when available)
uv run pytest
# Format code
uv run black .
# Lint code
uv run flake8 .Python packages:
# Add a new dependency
uv add package-name
# Add a development dependency
uv add --dev package-name
# Update all dependencies
uv sync --upgradeFrontend packages:
cd frontend
npm install package-nameFor a detailed explanation of the project's architecture and API design, see the following documents:
ORBIT/
βββ client/ # Python client and agent logic
βββ server/ # MCP servers (Gmail, Google Tasks)
βββ frontend/ # Next.js React frontend
βββ config/ # Configuration files
βββ secrets/ # API credentials (gitignored)
βββ logs/ # Application logs
βββ pyproject.toml # Python project configuration
βββ uv.lock # UV lock file
βββ websocket_server.py # Main FastAPI WebSocket server
βββ README.md # This file
- WebSocket:
ws://localhost:8000/ws- Main WebSocket connection for real-time communication - Health:
http://localhost:8000/health- Health check endpoint - Frontend:
http://localhost:3000- React frontend (development)
Create a .env file in the root directory with:
# Optional: Custom port for WebSocket server
PORT=8000
# Optional: Log level
LOG_LEVEL=INFO- Python version mismatch: Ensure you have Python 3.13+ installed
- UV not found: Make sure UV is properly installed and in your PATH
- Permission errors: On Windows, you might need to run PowerShell as Administrator
- Port already in use: Change the port in the configuration or kill the process using the port
Check the application logs in the logs/ directory:
logs/orbit_websocket.log- WebSocket server logs
If you encounter dependency issues:
# Remove the virtual environment
uv clean
# Reinstall everything
uv sync- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes
- Run tests and linting:
uv run pytest && uv run black . && uv run flake8 . - Commit your changes:
git commit -am 'Add feature' - Push to the branch:
git push origin feature-name - Submit a pull request