A multi-tenant AI copilot that gives users unified chat access to Gmail, Google Calendar, Notion, Slack, Discord, Zoom, local files, images, and code — powered by LangGraph agents running on Groq LLMs, with Composio handling third-party OAuth.
- Unified Chat Interface — one conversation window to interact with all your connected services
- LangGraph ReAct Agent — router → tool executor → router loop with full conversation memory per session
- Groq LLMs — fast inference with
llama-3.3-70b-versatile - Composio OAuth — per-user connected accounts for Gmail, Calendar, Notion, Slack, Discord, Zoom
- Local Tools — read/search files and analyze code directly from the workspace
- Auth — Google OAuth + dev credentials via NextAuth.js
- Persistent User Mapping — SQLite stores user → Composio entity ID across server restarts
| Layer | Technology |
|---|---|
| Frontend | Next.js 14 (App Router), Tailwind CSS, Framer Motion, NextAuth.js |
| Backend | Python 3.12+, FastAPI, LangGraph, LangChain-Groq |
| LLM | Groq (llama-3.3-70b-versatile) |
| Integrations | Composio (Gmail, Calendar, Notion, Slack, Discord, Zoom) |
| Database | SQLite via SQLAlchemy async |
| Package Manager | uv (backend), pnpm (frontend) |
omniagent/
├── backend/ # Python FastAPI + LangGraph agent
│ ├── app/
│ │ ├── agents/ # LangGraph state, nodes, graph, prompts
│ │ ├── api/ # chat (WebSocket), auth, connections routes
│ │ ├── db/ # SQLAlchemy models + async engine
│ │ ├── services/ # Composio client, auth/entity mapping, memory
│ │ └── tools/ # Composio tools + local file/code tools
│ ├── tests/
│ └── pyproject.toml
└── frontend/ # Next.js chat UI
└── src/
├── app/ # chat, connections, login pages
├── components/ # ChatWindow, MessageBubble, ServiceCard, etc.
├── hooks/ # WebSocket streaming hook
└── lib/ # API client, NextAuth config
- Python 3.12+ with
uv - Node.js 20 LTS with
pnpm - Groq API key (free tier works)
- Composio API key (for SaaS integrations)
- Google OAuth credentials (for login)
git clone https://github.com/Gagan0406/OmniAgent.git
cd OmniAgentcd backend
uv syncCreate backend/.env:
GROQ_API_KEY=your_groq_api_key
GROQ_MODEL=llama-3.3-70b-versatile
COMPOSIO_API_KEY=your_composio_api_key
DATABASE_URL=sqlite+aiosqlite:///./omni_copilot.dbStart the backend:
uv run uvicorn app.main:app --reload --port 8000cd frontend
pnpm installCreate frontend/.env.local:
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=any-random-string
NEXT_PUBLIC_BACKEND_URL=http://localhost:8000
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secretGetting Google credentials: Go to Google Cloud Console → APIs & Services → Credentials → Create OAuth 2.0 Client ID (Web). Add
http://localhost:3000/api/auth/callback/googleas an authorized redirect URI.
Start the frontend:
pnpm dev- Sign in with Google (or use dev credentials)
- Go to Connections (
/connections) - Click Connect next to any service (Gmail, Notion, Slack, etc.)
- Complete the OAuth flow — the agent can now access that service on your behalf
cd backend
uv run pytest10 tests covering the agent graph, tools, and API endpoints. All external services (Groq, Composio) are mocked.
| Service | Actions |
|---|---|
| Gmail | Fetch emails, send email, create draft, get attachment |
| Google Calendar | List events, create event, delete event |
| Notion | Search pages, get page, create page |
| Slack | Send message, list channels |
| Discord | Top 3 actions (send message, read messages, list channels) |
| Zoom | Top 3 actions (create meeting, list meetings, get meeting) |
| Local Files | Read files, list directory, search content |
| Code | Analyze code files, grep across codebase |
Have I received any emails from my manager today?
Schedule a 1-hour meeting tomorrow at 2pm called "Design Review"
Search my Notion for notes about the Q2 roadmap
Send a message to #general on Slack saying "Standup in 5 mins"
Create a Zoom meeting for the team this Friday at 10am
Read the file backend/app/agents/nodes.py and explain what it does
User → NextAuth (login) → Next.js frontend
↓ WebSocket
FastAPI backend
↓
LangGraph ReAct Agent
┌─────────────────────┐
│ router (ChatGroq) │
│ ↓ │
│ tool_executor │
│ ↓ │
│ router (loop) │
└─────────────────────┘
↓
┌───────────────┼──────────────┐
Composio tools Local tools Code tools
(Gmail, Notion, (file read, (analyze,
Slack, Discord, search) grep)
Zoom, Calendar)
| Phase | Description | Status |
|---|---|---|
| 1A | Backend scaffold, local tools, LangGraph router | ✅ Done |
| 1B | Real Groq LLM router, Composio wired | ✅ Done |
| 2 | Next.js animated chat UI | ✅ Done |
| 3 | Auth — NextAuth.js, Google login | ✅ Done |
| 4 | SQLite persistence, conversation continuity | ✅ Done |
| 5 | Discord + Zoom tools, Composio SDK v1 migration | ✅ Done |
| 6 | CI/CD, Docker, error boundaries, rate limits | 🔄 In Progress |
MIT