Infrastructure-as-code for your personal operating system.
You declare desired state. Gemini agents enforce it.
Frontend (Next.js 15) Backend (FastAPI)
├── Dashboard ├── OrchestratorAgent
│ ├── ConstraintCards ├── MonitoringAgent
│ ├── AgentFeed (SSE) ├── DriftDetectionAgent
│ └── PlanApplyModal ├── RemediationAgent (Gemini tool-calling)
├── ManifestEditor ├── Mock APIs (calendar, health, tasks)
└── AuditTrail └── Firebase Firestore (real-time)
cd backend
cp .env.example .env # fill in API keys
pip install -r requirements.txt
python -m app.seed_demo_data # seed demo violations
uvicorn main:app --reloadcd frontend
cp .env.local.example .env.local # fill in Firebase config
npm install
npm run dev| Variable | Description |
|---|---|
GEMINI_API_KEY |
From Google AI Studio |
ELEVENLABS_API_KEY |
ElevenLabs API |
FEATHERLESS_API_KEY |
Featherless API |
FIREBASE_SERVICE_ACCOUNT_PATH |
Path to Firebase service account JSON |
| Variable | Description |
|---|---|
NEXT_PUBLIC_API_URL |
Backend URL (default: http://localhost:8000) |
NEXT_PUBLIC_FIREBASE_* |
Firebase web config values |
Before every demo run:
curl -X POST http://localhost:8000/api/seed-resetOr directly: python -m app.seed_demo_data
- Frontend: Next.js 15, TypeScript, Tailwind CSS, shadcn/ui, Firebase SDK
- Backend: FastAPI, Python 3.12, google-genai SDK
- AI: Gemini 2.5 Flash (agents), Gemini 2.5 Pro (complex conflicts)
- Voice: ElevenLabs TTS
- Scheduling: Featherless API
- Database: Firebase Firestore (real-time)
- Deploy: Vercel (frontend) + Railway (backend)