Ambient intelligence that turns your screen, voice, emails, and meetings into executed tasks — automatically.
The platform runs continuously in the background and:
- Records screen frames, microphone audio, emails, and meeting recordings
- Extracts actionable tasks from all of that data using an LLM (Claude)
- Creates issues in Linear for every confirmed task
- Dispatches the right autonomous agent to actually complete the task
No manual triage. No forgotten follow-ups. Work gets done.
┌─────────────────────────────────────────────────────────────────┐
│ INGESTION LAYER │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌────────┐ ┌─────────┐ │
│ │ Screen (MSS) │ │ Audio (Whisp)│ │ Gmail │ │Meetings │ │
│ └──────┬───────┘ └──────┬───────┘ └───┬────┘ └────┬────┘ │
└─────────┼─────────────────┼──────────────┼─────────────┼───────┘
│ │ │ │
└────────────┬────┘ └──────┬──────┘
▼ ▼
┌─────────────────────────────────────────────────────────────────┐
│ PROCESSOR LAYER │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Task Detector (Claude) │ │
│ │ — Extracts tasks with category, priority, confidence │ │
│ │ — Task types: calendar, document, communication, │ │
│ │ access, hr, engineering, general │ │
│ └──────────────────────────┬──────────────────────────────┘ │
│ │ │
│ ┌──────────────────────────▼──────────────────────────────┐ │
│ │ Deduplicator — prevents duplicate tasks │ │
│ └──────────────────────────┬──────────────────────────────┘ │
└─────────────────────────────┼───────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ INTEGRATION LAYER │
│ │
│ Linear — issue created, linked to source & agent │
└─────────────────────────────┬───────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ AGENT LAYER │
│ │
│ ┌───────────────┐ ┌──────────────┐ ┌────────────────────┐ │
│ │ OpenClaw │ │ Hermes │ │ Claude Co-Work │ │
│ │ (engineering)│ │ (comms/cal) │ │ (general/ops) │ │
│ └───────────────┘ └──────────────┘ └────────────────────┘ │
│ │
│ Dispatcher routes each task to the right agent based on │
│ category, or DEFAULT_AGENT env var overrides all routing. │
└─────────────────────────────────────────────────────────────────┘
| Category | Examples | Default agent |
|---|---|---|
calendar |
"Schedule a 1:1 with Alex next week" | Hermes |
document |
"Fill out the W-9 and send it back" | Claude Co-Work |
communication |
"Reply to the vendor's proposal" | Hermes |
access |
"Provision John in Okta" | Claude Co-Work |
hr |
"Update Sarah's start date in Rippling" | Claude Co-Work |
engineering |
"Review the open PR for the auth service" | OpenClaw |
general |
Anything else | Claude Co-Work |
operations-enablement/
├── ingestion/
│ ├── screen/ # MSS-based continuous screen capture
│ ├── audio/ # Sounddevice recording + Whisper transcription
│ ├── email/ # Gmail polling via Google API
│ └── meetings/ # Meeting recording ingest (Zoom/Meet stubs)
├── processor/
│ ├── task_detector/ # Claude-powered task extraction
│ ├── context_builder/
│ └── deduplicator/ # Prevents duplicate task creation
├── agents/
│ ├── dispatcher/ # Routes tasks to the right agent
│ ├── openclaw/ # Engineering agent
│ ├── hermes/ # Comms / calendar agent
│ └── claude_cowork/ # General-purpose agent
├── integrations/
│ ├── linear/ # GraphQL issue creation
│ ├── okta/ # User provisioning
│ ├── rippling/ # HR operations
│ ├── calendar/ # Google Calendar
│ └── pdf/ # PDF fill & send
├── api/ # FastAPI HTTP surface
├── scripts/
│ └── run_ambient.py # Start the ambient recording pipeline
├── config/
│ └── settings.py # Pydantic settings (loaded from .env)
└── tests/
# 1. Clone
git clone https://github.com/a37ai/operations-enablement
cd operations-enablement
# 2. Create env
cp .env.example .env
# Fill in API keys (see .env.example)
# 3. Install
pip install -e ".[dev]"
# 4. Run the ambient pipeline
python scripts/run_ambient.py
# 5. Or run the API server
uvicorn api.main:app --reload
# 6. Test task detection manually
curl -X POST http://localhost:8000/tasks/detect \
-H "Content-Type: application/json" \
-d '{"text": "Hey, can you send the NDA to John at Acme by Friday?", "source_type": "email"}'| Service | Status | Purpose |
|---|---|---|
| Linear | ✅ Ready | Task tracking |
| Anthropic Claude | ✅ Ready | Task detection + agent execution |
| Google Gmail | ✅ Ready | Email ingestion |
| Google Calendar | Planned | Calendar tasks |
| Okta | Planned | Access provisioning |
| Rippling | Planned | HR operations |
| Zoom / Google Meet | Planned | Meeting recording ingest |
Set DEFAULT_AGENT in .env to force a single agent for all tasks:
DEFAULT_AGENT=claude_cowork # options: openclaw | hermes | claude_cowork
Leave unset for automatic routing based on task category.
- Fork the repo
- Create a feature branch (
git checkout -b feat/my-feature) - Open a PR against
main