"I'm helping!" - Ralph Wiggum
An autonomous AI assistant that manages your inbox, messages, and business tasks. It monitors Gmail and WhatsApp, proposes actions based on your rules, and executes approved tasks automatically.
Status: Gold Tier Complete | Gmail + WhatsApp Automation Working
Gmail/WhatsApp β AI analyzes β Proposes action β You approve β AI executes
- Monitors Gmail and WhatsApp for new messages
- Analyzes using Claude (via Claude Code CLI)
- Proposes responses based on your Company Handbook
- Asks permission for important actions (Human-in-the-Loop)
- Executes approved actions automatically
- Reports CEO briefings on demand
Privacy-First: Runs locally. Your data stays on your machine.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β External Sources β
β Gmail API β WhatsApp Web β
βββββββββββββββ¬ββββββββββββββ΄βββββββββββββββ¬βββββββββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Watchers β
β GmailWatcher β WhatsAppWatcher β
β (OAuth API) β (Playwright) β
βββββββββββββββ¬ββββββββββββββ΄βββββββββββββββ¬βββββββββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Obsidian Vault β
β /Needs_Action β /Pending_Approval β /Approved β /Done β
βββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Ralph Wiggum Loop (5 min) β
β Reads task + Company_Handbook.md + Business_Goals.md β
β β β
β Claude Code CLI (claude --print) β
β β β
β Proposes action with confidence β
βββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββ
β
βββββββββββββββββ΄ββββββββββββββββ
βΌ βΌ
ββββββββββββββββββββββββ ββββββββββββββββββββββββ
β Auto-Approve β β Human Review β
β (confidence β₯85%) β β (CEO Dashboard) β
ββββββββββββ¬ββββββββββββ ββββββββββββ¬ββββββββββββ
β β
βββββββββββββββββ¬βββββββββββββββββ
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MCP Executors β
β EmailMCP (Gmail API) β WhatsAppMCP (Playwright) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The web dashboard at localhost:3000 shows:
- System status (watchers running, health)
- Task queue with real-time updates
- Pending approvals (approve/reject with one click)
- Activity feed from audit logs
- Social channel connections
| Requirement | Installation |
|---|---|
| Python 3.11+ | python.org |
| UV package manager | pip install uv |
| Node.js 18+ | nodejs.org |
| Bun (for frontend) | npm install -g bun |
| Claude Code CLI | npm install -g @anthropic-ai/claude-code |
| Playwright | playwright install chromium |
git clone https://github.com/yourusername/digital-fte.git
cd digital-fte
# Backend dependencies
cd backend
uv sync
# Frontend dependencies
cd ../frontend
bun install# Backend config
cd backend
cp .env.example .envEdit backend/.env:
# Required
CLAUDE_CODE_PATH=claude
CLAUDE_CODE_MODEL=sonnet
VAULT_PATH=../AI_Employee_Valut
# Gmail (optional - for email automation)
GOOGLE_CREDENTIALS_PATH=credentials.json
GMAIL_ENABLED=true
# WhatsApp (optional - for message automation)
WHATSAPP_ENABLED=true
WHATSAPP_POLL_INTERVAL=120
WHATSAPP_USER_DATA_DIR=.whatsapp_session- Go to Google Cloud Console
- Create project β Enable Gmail API
- Create OAuth 2.0 credentials (Desktop app)
- Download as
credentials.jsontobackend/ - First run will open browser for authorization
- Ensure
WHATSAPP_ENABLED=truein.env - Run the backend - browser opens WhatsApp Web
- Scan QR code with your phone
- Session saved in
.whatsapp_session/(persistent)
Terminal 1 - Backend:
cd backend
uv run digital-fte startTerminal 2 - Frontend:
cd frontend
bun devOpen: http://localhost:3000
cd backend
# Start the orchestrator (main loop)
uv run digital-fte start
# Check system status
uv run digital-fte status
# Generate CEO briefing
uv run digital-fte briefing
# Approve a pending task
uv run digital-fte approve <task-filename>
# Reject a pending task
uv run digital-fte reject <task-filename>
# Show version
uv run digital-fte versiondigital-fte/
βββ backend/ # Python backend
β βββ src/digital_fte/
β β βββ orchestrator.py # Main brain (Ralph loop)
β β βββ config.py # Settings
β β βββ models.py # Pydantic models
β β βββ cli.py # CLI interface
β β βββ watchers/
β β β βββ gmail_watcher.py # Gmail API integration
β β β βββ whatsapp_watcher.py # Playwright automation
β β β βββ filesystem_watcher.py # Vault monitoring
β β βββ mcp/
β β βββ email_mcp.py # Send emails
β β βββ whatsapp_mcp.py # Send WhatsApp messages
β βββ .env # Configuration
β
βββ frontend/ # Next.js dashboard
β βββ src/
β βββ app/ # Pages + API routes
β βββ components/ # Dashboard UI
β
βββ AI_Employee_Valut/ # Obsidian vault (task storage)
β βββ Needs_Action/ # New tasks
β βββ Pending_Approval/ # Awaiting human review
β βββ Approved/ # Ready to execute
β βββ Done/ # Completed
β βββ Rejected/ # Declined tasks
β βββ Company_Handbook.md # Your operating rules
β βββ Business_Goals.md # KPIs and priorities
β βββ Logs/ # Audit trail
β
βββ .claude/skills/ # Claude Code skill definitions
βββ CLAUDE.md # Project context for Claude
βββ CHECKPOINT.md # Development progress
The AI reads two files before every decision:
## Email Response Protocol
- Client emails: respond within 4 hours
- Urgent (P0): respond within 1 hour
## Financial Authority
- Auto-approve: subscriptions < $20/month
- Always ask: anything > $50
## VIP Contacts
- Jane (CEO client) - always priority P0## Q1 2026 Targets
- Monthly revenue: $10,000
- Response time: < 4 hours
- Client satisfaction: 95%+Edit these files to customize AI behavior.
| Feature | Status | Description |
|---|---|---|
| Gmail Read | β Working | Detects new emails, creates tasks |
| Gmail Reply | β Working | Sends replies via Gmail API |
| WhatsApp Read | β Working | Detects unread messages |
| WhatsApp Reply | β Implemented | Sends via Playwright (needs testing) |
| HITL Workflow | β Working | Approve/reject via dashboard or CLI |
| CEO Briefing | β Working | Weekly business reports |
| CEO Dashboard | β Working | Real-time web UI at localhost:3000 |
| Audit Logging | β Working | JSONL + Markdown logs |
| Auto-Approve | β Working | High-confidence actions skip review |
Edit AI_Employee_Valut/Company_Handbook.md:
## VIP Contacts (Always Priority P0)
- Alice Chen - key client
- Bob Smith - investorEdit backend/.env:
HITL_CONFIDENCE_THRESHOLD=0.90 # Higher = more human reviewGMAIL_ENABLED=false
WHATSAPP_ENABLED=false# Delete old session and restart
rm -rf backend/.whatsapp_session
uv run digital-fte start# Delete token and re-authorize
rm backend/token.pickle
uv run digital-fte start# Check frontend is running
cd frontend
bun dev
# Check API routes work
curl http://localhost:3000/api/status- Backend: Python 3.11, UV, Pydantic, Playwright
- Frontend: Next.js 14, React, Tailwind CSS, shadcn/ui
- AI: Claude Code CLI (Claude Pro subscription)
- Storage: Obsidian Vault (Markdown files)
- APIs: Gmail API, WhatsApp Web (Playwright)
MIT License
- Built for the Claude Code Digital FTE Hackathon
- Powered by Anthropic Claude
- Ralph Wiggum mascot inspired by The Simpsons
Built with Claude Code