dayops
Turn raw voice memos into a day plan, enrich with Strava timing, and write to Google Calendar.
What it does
- Reads
.m4afiles fromVOICE_MEMOS_DIR - Transcribes memo audio
- Parses intent and generates a schedule
- Adds Strava run start/end as a calendar event
- Applies calendar updates (and keeps rollback snapshots)
- Runs backend API server on Akash Network for decentralized deployment
Setup
- Copy
.env.exampleto.envand fill all required values. - Install dependencies and CLI entrypoints:
uv syncuv pip install -e .
- Validate:
dayops tui
- Run once:
dayops run
- Install auto-run launchd watcher (reads from
.env):./scripts/install_launchd.sh
Provider config
Google via OpenAI-compatible API
Use these values:
MODEL_PROVIDER=googleMODEL_NAME=gemini-3-flash-preview(or another Gemini model)GEMINI_API_KEY=...GEMINI_OPENAI_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai/
Venice inference
Use these values:
MODEL_PROVIDER=veniceMODEL_NAME=<venice-chat-model>VENICE_INFERENCE_KEY=...VENICE_BASE_URL=https://api.venice.ai/api/v1
Venice STT
Use:
STT_PROVIDER=veniceVENICE_STT_MODEL=nvidia/parakeet-tdt-0.6b-v3
If STT_PROVIDER=gemini, DayOps uses Gemini audio input through the Google OpenAI-compatible endpoint.
CLI
dayops rundayops tuidayops plan generate --date YYYY-MM-DDdayops plan preview --date YYYY-MM-DDdayops plan apply --date YYYY-MM-DDdayops plan revise --from-audio /path/to/file.m4adayops plan rollback --date YYYY-MM-DD
launchd
- Template:
com.kian.dayops.plist - Installer:
./scripts/install_launchd.sh - Required
.envkey:VOICE_MEMOS_DIR - Optional
.envkey:DAYOPS_LAUNCHD_LABEL(defaultcom.kian.dayops)
Backend API
- Start locally:
dayops-api - Health:
GET /healthz - Trigger processing:
POST /run - Plan routes:
POST /plan/generatePOST /plan/previewPOST /plan/applyPOST /plan/revisePOST /plan/rollback
If BACKEND_API_KEY is set in env, send x-api-key: <value> on all POST routes.
Example:
curl -X POST http://localhost:8000/run \
-H "x-api-key: $BACKEND_API_KEY"
Akash deploy
- Build and push container image (for example
ghcr.io/kiankyars/dayops:latest). - Update image/env values in
akash/deploy.yaml. - Deploy from Akash Console using that SDL.
Built With
- akash
- docker
- google-calendar
- obsidian
- openai
- python
- strava
- typer
- venice
Log in or sign up for Devpost to join the conversation.