plugins/omi-clickup-app/README.md
Voice-activated ClickUp task creation through OMI. Say trigger phrase + task details → AI creates task automatically.
Trigger phrases: create clickup task, create click up task, add clickup task, add click up task
Collection flow:
Example:
You: "Create ClickUp task fix login bug by tomorrow 5pm"
[segment 1/5...]
You: "users can't sign in high priority"
[segment 2/5...]
[5 second pause → processes 2 segments]
✅ Task created: "Fix login bug" (Priority: High, Due: Oct 31 5pm)
Create .env file:
# ClickUp OAuth (from app.clickup.com/settings/apps)
CLICKUP_CLIENT_ID=your_client_id
CLICKUP_CLIENT_SECRET=your_client_secret
OAUTH_REDIRECT_URL=https://your-app-url.com/auth/callback
# OpenAI for AI extraction
OPENAI_API_KEY=your_openai_key
# OMI API for notifications
OMI_APP_ID=your_omi_app_id
OMI_APP_SECRET=your_omi_app_secret
# Server config
APP_HOST=0.0.0.0
APP_PORT=8000
https://your-app-url.com/auth/callback.envpython3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python main.py
Test at: http://localhost:8000/test?dev=true
# Push to GitHub
git init && git add . && git commit -m "Initial"
git remote add origin <your-repo-url>
git push -u origin main
# On Railway:
# 1. New Project → Deploy from GitHub
# 2. Add environment variables from .env
# 3. Generate domain (Settings → Networking)
# 4. Update OAUTH_REDIRECT_URL to Railway domain
In OMI Developer Settings:
| Field | Value |
|---|---|
| Webhook URL | https://your-app-url.com/webhook |
| App Home URL | https://your-app-url.com/ |
| Auth URL | https://your-app-url.com/auth |
| Setup Completed URL | https://your-app-url.com/setup-completed |
clickup/
├── main.py # FastAPI app + UI + endpoints
├── clickup_client.py # ClickUp API wrapper
├── task_detector.py # AI task extraction (OpenAI)
├── simple_storage.py # File-based user storage
├── requirements.txt # Dependencies
├── railway.toml # Railway deployment config
├── runtime.txt # Python version
└── Procfile # Process config
Core pattern (reusable):
/webhook)asyncio background task)/auth, /auth/callback)To adapt:
clickup_client.py with target service APItask_detector.py for different data structurefastapi==0.104.1
uvicorn==0.24.0
openai==1.3.7
httpx==0.25.2
pytz==2023.3
python-dotenv==1.0.0
requests==2.31.0
MIT License