Modern professionals are overwhelmed:
- 35+ apps switched daily β health trackers, task managers, calendars, emails
- No unified intelligence β nothing connects your wellness with your productivity
- Decision fatigue & burnout β without a single source of truth, priorities slip through
Equinox is an AI-powered life OS that unifies your health, tasks, and emails with multi-agent intelligence β fully traced using Opik for complete LLM observability.
| Agent | Responsibility |
|---|---|
| Supervisor | Routes queries to the appropriate specialist agent |
| Wellness Agent | Handles health, sleep, readiness, and workout queries |
| Productivity Agent | Manages emails, notes, todos, and calendar |
| Briefing Agent | Generates personalized morning summaries |
Wake up to a personalized summary:
- π Sleep Score (calculated from wellness data)
- π§ Critical email count
- β Today's task overview
- π¬ AI-generated motivational summary
Natural language interface to manage your day:
"What are my tasks for today?"
"Do I have any critical emails?"
"How did I sleep last night?"
Every AI agent call is traced with Opik:
- LLM prompts and responses
- Latency and token usage
- Tool calls and agent decisions
- Conversation threading by
thread_id
| Technology | Purpose |
|---|---|
| FastAPI | High-performance Python API |
| LangChain + LangGraph | Multi-agent orchestration |
| Groq (Llama 3.3 70B) | Fast LLM inference |
| PostgreSQL | Persistent data storage |
| Opik | LLM observability & tracing |
| Google OAuth 2.0 | Gmail & Tasks integration |
| Technology | Purpose |
|---|---|
| React 19 + TypeScript | Modern UI framework |
| Vite | Fast build tooling |
| React Router | Client-side navigation |
| React Markdown (GFM) | Rich chat rendering |
- Python 3.10+
- Node.js 18+
- PostgreSQL database
- API Keys:
# Clone the repository
git clone https://github.com/Deep99739/equinox.git
cd equinox
# Configure environment
cp backend/.env.example backend/.env
# Edit backend/.env with your API keys
# Run everything
chmod +x startup.sh
./startup.shCreate backend/.env:
# Required
GROQ_API_KEY=your_groq_api_key
DATABASE_URL=postgresql://user:pass@localhost:5432/equinox
# Opik Observability (Required for tracing)
OPIK_API_KEY=your_opik_api_key
OPIK_WORKSPACE=your_opik_workspace
OPIK_PROJECT_NAME=equinox
# Google OAuth (for Gmail & Tasks)
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secretequinox/
βββ backend/
β βββ agents/
β β βββ briefing/ # Morning briefing agent
β β βββ productivity/ # Email, notes, todos agent
β β βββ wellness/ # Health and fitness agent
β βββ supervisor/ # Query router (LangGraph)
β βββ api/ # REST endpoints
β β βββ briefing.py # Briefing generation
β β βββ todos.py # Task management
β β βββ notes.py # Note-taking
β β βββ google_oauth.py # OAuth flow
β βββ database/ # SQLAlchemy models
β βββ state/ # User token management
β βββ tools/ # Google API utilities
β βββ main.py # FastAPI application
βββ frontend/
β βββ src/
β β βββ pages/
β β β βββ Home/ # Landing page
β β β βββ Chat/ # Agentic chatbot
β β β βββ Briefing/ # Morning briefing
β β β βββ Productivity/# Notes & Todos
β β β βββ Wellness/ # Health dashboard
β β βββ components/ # Shared UI components
β β βββ api/ # API client utilities
β βββ package.json
βββ startup.sh # Development startup script
| Method | Endpoint | Description |
|---|---|---|
GET |
/ping |
Health check |
POST |
/supervisor |
Send message to AI supervisor |
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/briefing/generate |
Generate morning briefing |
POST |
/api/briefing/send-email |
Email briefing to user |
| Method | Endpoint | Description |
|---|---|---|
GET |
/todos/{email} |
Get user todos (Local + Google Tasks) |
POST |
/todos/ |
Create todo |
PATCH |
/todos/{id} |
Toggle/update todo |
DELETE |
/todos/{id} |
Delete todo |
| Method | Endpoint | Description |
|---|---|---|
GET |
/notes/{email} |
Get user notes |
POST |
/notes/ |
Create note |
PATCH |
/notes/{id} |
Update note |
DELETE |
/notes/{id} |
Delete note |
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/history/{email} |
Get all conversation threads |
GET |
/api/history/{email}/{thread_id} |
Get specific thread |
POST |
/api/history/{email}/{thread_id} |
Save thread |
Equinox uses Opik for complete LLM observability:
- β All LangChain agent invocations
- β Tool calls (Gmail, Tasks, Notes)
- β LLM prompts and responses
- β Latency and token usage
- β Conversation threading
- Go to comet.com/opik
- Navigate to the
equinoxproject - View traces grouped by
thread_id
- Debug AI issues β See exactly what the LLM received and responded
- Optimize costs β Monitor token usage across agents
- Improve quality β Analyze agent decisions and tool usage
cd backend
pip install -r requirements.txt
python -m uvicorn main:app --reload --port 8000cd frontend
npm install
npm run dev| Issue | Solution |
|---|---|
OPIK_API_KEY not found |
Set in backend/.env |
| Google OAuth errors | Verify GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET |
| Rate limiting (429) | Groq free tier: 30 req/min. Wait or upgrade. |
| Database connection errors | Verify DATABASE_URL and PostgreSQL is running |
| Briefing shows 0 emails/tasks | Re-authenticate with Google OAuth |
Deepak Kumar
MIT License - see LICENSE for details.
π Equinox β Balance your day with AI
Built with β€οΈ for the Opik Hackathon