A Privacy-First Daily Brief System for Gmail, Slack & GitHub
ZeroTask is a local-first desktop/web application that aggregates your Gmail, Slack, and GitHub notifications into a single, action-ready daily brief. Built with privacy and security in mind, it runs entirely on your machine with shared service account architecture for company deployment.
- Node.js 18+ and npm
- Python 3.8+ and pip
- Git for version control
-
Clone the repository:
git clone https://github.com/SankaiAI/ZeroTask.git cd ZeroTask -
Start the backend:
cd zerotask-backend python -m venv venv # On Windows: venv\Scripts\activate # On macOS/Linux: source venv/bin/activate pip install -r requirements.txt python -m app.main
-
Start the frontend:
cd zerotask-frontend npm install npm run dev -
Access the application:
- Frontend: http://localhost:3001 (or 3000 if available)
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- π§ Gmail Integration - Read emails and create draft replies (OAuth 2.0)
- π¬ Slack Integration - Individual user OAuth with profile display and API access
- π§ GitHub Integration - Monitor assigned issues and PR reviews (Service Account)
- π€ AI-Powered Summarization - Using local Ollama or BYOK LLM providers
- π Smart Deduplication - Merge related items across platforms
- β‘ Action-Ready Cards - Open, reply, snooze, and follow-up actions
- π Local-First Architecture - All data stored locally
- π Encrypted Token Storage - OAuth tokens and service credentials secured with AES-256
- π€ Individual User Authentication - Personal OAuth flows for Gmail and Slack
- π’ Company Deployment Ready - IT-managed service accounts for GitHub
- π No Central Server - Zero data sent to external services
- π¨βπΌ User Profile Display - Show Slack user avatars, names, emails, and titles
- π― Improved UX - Removed intrusive alert popups, console logging for debugging
- π OAuth Callback Handling - Seamless popup-based OAuth flows with automatic status updates
- π‘οΈ Enhanced Security - Proper token encryption and secure credential management
- Frontend: Next.js 14, TypeScript, Tailwind CSS
- Backend: FastAPI, SQLite, SQLAlchemy
- LLM: Ollama (local) or LiteLLM (BYOK)
- Authentication: Environment-based shared service accounts
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Next.js β β FastAPI β β SQLite β
β Frontend βββββΊβ Backend βββββΊβ Database β
β (Port 3000) β β (Port 8000) β β (Local File) β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β
β βΌ
β βββββββββββββββββββ
β β External β
ββββββββββββββββ€ Services β
β β’ Gmail API β
β β’ Slack API β
β β’ GitHub API β
βββββββββββββββββββ
For company internal deployment, IT teams configure shared service accounts:
# Create service account: zerotask-bot@company.com # Generate PAT with scopes: repo, read:user, notifications export GITHUB_TOKEN=ghp_your_service_account_token
# Create Slack OAuth app for individual user authentication # Configure OAuth scopes: channels:read, chat:write, users:read, users:read.email, channels:history, groups:read, im:read export SLACK_CLIENT_ID=your_oauth_client_id export SLACK_CLIENT_SECRET=your_oauth_client_secret # Configure OAuth redirect URI: https://your-domain.com/oauth2/slack/callback
# Configure Google Cloud OAuth 2.0 credentials export GOOGLE_CLIENT_ID=your_oauth_client_id export GOOGLE_CLIENT_SECRET=your_oauth_client_secret # Configure OAuth redirect URI: http://localhost:8000/oauth2/callback
π See IT_SETUP.md for detailed configuration instructions.
Copy and configure the environment file:
# Backend configuration cd zerotask-backend cp .env.example .env # Edit .env with your service account credentials
- LLM Provider: Choose between Ollama (local) or BYOK providers
- Polling Intervals: Configure how often to check each service
- Daily Brief Time: Set when to generate daily summaries
- Security Settings: Configure encryption and authentication
- PRD.md - Complete Product Requirements Document
- IT_SETUP.md - IT team setup guide for service accounts
- CHANGELOG.md - Version history and changes
- CLAUDE.md - Development governance and contribution rules
GET /api/v1/auth/validate- Check all service configurationsGET /api/v1/auth/status/{provider}- Get provider connection statusGET /api/v1/auth/github/test- Test GitHub connectionGET /api/v1/auth/slack/oauth/status- Get Slack OAuth status and user profileGET /api/v1/auth/slack/oauth/start- Start Slack OAuth flowGET /api/v1/auth/gmail/status- Check Gmail OAuth configurationGET /api/v1/auth/gmail/oauth/start- Start Gmail OAuth flow
GET /api/v1/health- API health checkGET /- Root endpoint with API information
ZeroTask/
βββ zerotask-frontend/ # Next.js frontend
β βββ src/components/ # React components
β βββ src/app/ # App router pages
β βββ src/lib/ # Utilities and helpers
β βββ public/ # Static files and OAuth callbacks
βββ zerotask-backend/ # FastAPI backend
β βββ app/api/ # API endpoints
β βββ app/models/ # SQLAlchemy models
β βββ app/services/ # Business logic (including OAuth services)
β βββ app/utils/ # Utilities and encryption
βββ docs/ # Documentation
# Frontend development cd zerotask-frontend npm run dev # Start development server npm run build # Build for production npm run lint # Run ESLint # Backend development cd zerotask-backend python -m app.main # Start development server pip install -r requirements.txt # Install dependencies
# Frontend testing cd zerotask-frontend npm test # Backend testing cd zerotask-backend pytest
- Configure environment variables for production
- Build frontend application:
cd zerotask-frontend npm run build - Start backend server:
cd zerotask-backend python -m app.main
# Build and run with Docker Compose
docker-compose up --build- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Follow the governance rules in CLAUDE.md
- Ensure PRD compliance for any scope changes
- Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow the PRD - All changes must comply with the Product Requirements Document
- Update CHANGELOG.md - Document all changes following Keep a Changelog format
- Test thoroughly - Ensure all features work across platforms
- Security first - Never commit secrets or compromise privacy-first architecture
- Slack + GitHub integration
- Shared service account architecture
- Basic daily brief generation
- IT setup documentation
- Gmail OAuth integration
- Slack individual user OAuth with profile display
- Enhanced frontend with user profile avatars
- Improved error handling and user experience
- LLM summarization with Ollama
- Priority scoring algorithm
- Follow-up task management
- Advanced deduplication
- Export to Markdown
- Background job scheduling
- Enhanced preferences UI
- Mobile responsiveness
- Local-first architecture - No data leaves your machine
- Encrypted credentials - All tokens encrypted at rest
- Minimal API scopes - Only necessary permissions requested
- No telemetry - Optional opt-in only
- Audit logging - All actions logged locally
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Check the
docs/directory - IT Support: Contact your organization's IT team for service account setup
This project is licensed under the MIT License - see the LICENSE file for details.
- Claude Code - AI-powered development assistant
- FastAPI - Modern Python web framework
- Next.js - React framework for production
- Ollama - Local LLM deployment
- Tailwind CSS - Utility-first CSS framework
Built with privacy in mind. Your data stays on your machine.
Generated with Claude Code - AI-powered development assistant