Privacy-first ambient agentic workspace intelligence.
ScreenOps watches live work context in the browser, extracts one structured work intent locally, and sends only that JSON signal to a backend agent. The backend plans real Google Workspace actions, applies risk-based approval, and verifies the result.
Repository: https://github.com/9059Rohith/screenops-codex
Demo video: Link
Live app: https://screenops-mvp.vercel.app/

In the demo, I share a real Discord screen with a message asking me to send the finalized Q3 performance report to Priya Nair by Thursday, including her email address. ScreenOps reads the screen locally, transcribes the related audio locally, and extracts one primary commitment. The Network tab is the privacy proof: no screen frame uploads, no audio file uploads, only the final structured intent JSON crosses the boundary. The backend receives that JSON, plans actions, classifies risk, waits for approval where needed, executes tools, verifies results, and records an audit trail.
Problem Statement
Every workday is full of quiet commitments "I'll send you the report," "let's sync Thursday," "I'll follow up by EOD" made in meetings, chat threads, emails, and documents. None of them get automatically captured, so they live only in someone's memory until they're forgotten, missed, or chased down after the fact. In finance, healthcare, legal, HR, and enterprise operations, that's not a minor inconvenience; it's missed deadlines, compliance exposure, and eroded client trust.
The tools available today force teams to choose between two broken options. Traditional automation platforms require every workflow to be predefined by hand, so they're structurally incapable of noticing a commitment that was never explicitly configured. The newer generation of AI copilots solves that detection problem, but only by continuously streaming raw screen recordings and audio to cloud models which is disqualifying the moment the screen shows client financials, patient records, or privileged legal drafts.
That's the core tension no one has resolved: the screen is the single richest source of truth about what someone just committed to, and simultaneously the most sensitive data surface in the entire workplace. Solving "notice the commitment" without also solving "never expose the screen" isn't a partial solution it's not a solution at all for the industries that need this most.
ScreenOps is built to prove both halves can coexist: local, on-device intent extraction with zero raw screen or audio egress, paired with verified, risk-gated execution on the backend.
ScreenOps keeps private sensing in the browser:
Browser tab
Screen Capture API -> SmolVLM / local OCR
Microphone or tab audio -> Whisper tiny
Screen + audio fusion -> browser intent model
|
v
Structured intent JSON only
|
v
FastAPI backend
|
v
LangGraph agent
route -> enrich -> plan -> classify risk -> approval -> execute -> verify
|
v
Python ScreenOps MCP stdio server
Gmail draft
Calendar reminder
Sheets commitment log
Raw screen frames and raw audio do not leave the browser tab. The backend receives only the final structured intent JSON.
HuggingFaceTB/SmolVLM-256M-Instructonnx-community/whisper-tiny.enHuggingFaceTB/SmolLM2-360M-InstructImplemented:
Asia/Kolkata.16/16 passing.15/15 passing.Partial or future work:
Prerequisites:
Install backend dependencies:
python -m venv .venv
.\.venv\Scripts\python -m pip install -r backend\requirements.txt
Install frontend dependencies:
cd frontend
npm install
Run one-time Google OAuth:
cd ..
.\.venv\Scripts\python scripts\google_auth.py
Start the backend used by the frontend:
.\.venv\Scripts\python -m uvicorn app.main:app --app-dir backend --host 127.0.0.1 --port 8001
Start the frontend:
cd frontend
npm run dev
Open:
http://127.0.0.1:5173
Frontend build:
cd frontend
npm run build
Extraction evals:
cd frontend
npm run eval:extraction
Planning evals:
cd ..
.\.venv\Scripts\python scripts\run_evals.py
Latest verified local results:
16/16.15/15.8001 executed and verified Calendar and Sheets through MCP.Codex/OpenAI was used meaningfully throughout the hackathon build:
Full AI usage documentation is in AI_USAGE.md.
The repository intentionally excludes local secrets and runtime artifacts:
.env.screenops/.venv/node_modules/Use .env.example as the setup template.

The app opens with WebGPU readiness, Google/MCP checks, the live capture panel, and empty intent/agent sections before capture starts.

Chrome prompts for the Discord tab and tab audio sharing so ScreenOps can read the live workspace locally.

The Discord tab is actively shared into ScreenOps while local models are loaded and ready.

ScreenOps shows local screen reading, Whisper transcription, structured intent, and browser LLM raw output before backend action.

The backend receives only structured JSON, plans actions, and executes verified low-risk Calendar and Sheets steps.

The Gmail draft remains pending as a medium-risk action while Calendar and Sheets are already verified.

Gmail contains the generated draft addressed to Priya Nair with the extracted Q3 report follow-up.

Google Calendar contains the ScreenOps reminder on Thursday, June 11 at 9:00 AM.

Google Sheets records the detected commitment with entity, action, deadline, source, and status.

Chrome DevTools is open during live capture to show the network boundary: raw screen pixels, audio chunks, and local model inputs are not uploaded while ScreenOps runs browser-side inference.
5 commits
TypeScript
48.6%
Python
43.0%
CSS
8.1%
Privacy-first ambient agentic workspace intelligence.
ScreenOps watches live work context in the browser, extracts one structured work intent locally, and sends only that JSON signal to a backend agent. The backend plans real Google Workspace actions, applies risk-based approval, and verifies the result.
Repository: https://github.com/9059Rohith/screenops-codex
Demo video: Link
Live app: https://screenops-mvp.vercel.app/

In the demo, I share a real Discord screen with a message asking me to send the finalized Q3 performance report to Priya Nair by Thursday, including her email address. ScreenOps reads the screen locally, transcribes the related audio locally, and extracts one primary commitment. The Network tab is the privacy proof: no screen frame uploads, no audio file uploads, only the final structured intent JSON crosses the boundary. The backend receives that JSON, plans actions, classifies risk, waits for approval where needed, executes tools, verifies results, and records an audit trail.
Problem Statement
Every workday is full of quiet commitments "I'll send you the report," "let's sync Thursday," "I'll follow up by EOD" made in meetings, chat threads, emails, and documents. None of them get automatically captured, so they live only in someone's memory until they're forgotten, missed, or chased down after the fact. In finance, healthcare, legal, HR, and enterprise operations, that's not a minor inconvenience; it's missed deadlines, compliance exposure, and eroded client trust.
The tools available today force teams to choose between two broken options. Traditional automation platforms require every workflow to be predefined by hand, so they're structurally incapable of noticing a commitment that was never explicitly configured. The newer generation of AI copilots solves that detection problem, but only by continuously streaming raw screen recordings and audio to cloud models which is disqualifying the moment the screen shows client financials, patient records, or privileged legal drafts.
That's the core tension no one has resolved: the screen is the single richest source of truth about what someone just committed to, and simultaneously the most sensitive data surface in the entire workplace. Solving "notice the commitment" without also solving "never expose the screen" isn't a partial solution it's not a solution at all for the industries that need this most.
ScreenOps is built to prove both halves can coexist: local, on-device intent extraction with zero raw screen or audio egress, paired with verified, risk-gated execution on the backend.
ScreenOps keeps private sensing in the browser:
Browser tab
Screen Capture API -> SmolVLM / local OCR
Microphone or tab audio -> Whisper tiny
Screen + audio fusion -> browser intent model
|
v
Structured intent JSON only
|
v
FastAPI backend
|
v
LangGraph agent
route -> enrich -> plan -> classify risk -> approval -> execute -> verify
|
v
Python ScreenOps MCP stdio server
Gmail draft
Calendar reminder
Sheets commitment log
Raw screen frames and raw audio do not leave the browser tab. The backend receives only the final structured intent JSON.
HuggingFaceTB/SmolVLM-256M-Instructonnx-community/whisper-tiny.enHuggingFaceTB/SmolLM2-360M-InstructImplemented:
Asia/Kolkata.16/16 passing.15/15 passing.Partial or future work:
Prerequisites:
Install backend dependencies:
python -m venv .venv
.\.venv\Scripts\python -m pip install -r backend\requirements.txt
Install frontend dependencies:
cd frontend
npm install
Run one-time Google OAuth:
cd ..
.\.venv\Scripts\python scripts\google_auth.py
Start the backend used by the frontend:
.\.venv\Scripts\python -m uvicorn app.main:app --app-dir backend --host 127.0.0.1 --port 8001
Start the frontend:
cd frontend
npm run dev
Open:
http://127.0.0.1:5173
Frontend build:
cd frontend
npm run build
Extraction evals:
cd frontend
npm run eval:extraction
Planning evals:
cd ..
.\.venv\Scripts\python scripts\run_evals.py
Latest verified local results:
16/16.15/15.8001 executed and verified Calendar and Sheets through MCP.Codex/OpenAI was used meaningfully throughout the hackathon build:
Full AI usage documentation is in AI_USAGE.md.
The repository intentionally excludes local secrets and runtime artifacts:
.env.screenops/.venv/node_modules/Use .env.example as the setup template.

The app opens with WebGPU readiness, Google/MCP checks, the live capture panel, and empty intent/agent sections before capture starts.

Chrome prompts for the Discord tab and tab audio sharing so ScreenOps can read the live workspace locally.

The Discord tab is actively shared into ScreenOps while local models are loaded and ready.

ScreenOps shows local screen reading, Whisper transcription, structured intent, and browser LLM raw output before backend action.

The backend receives only structured JSON, plans actions, and executes verified low-risk Calendar and Sheets steps.

The Gmail draft remains pending as a medium-risk action while Calendar and Sheets are already verified.

Gmail contains the generated draft addressed to Priya Nair with the extracted Q3 report follow-up.

Google Calendar contains the ScreenOps reminder on Thursday, June 11 at 9:00 AM.

Google Sheets records the detected commitment with entity, action, deadline, source, and status.

Chrome DevTools is open during live capture to show the network boundary: raw screen pixels, audio chunks, and local model inputs are not uploaded while ScreenOps runs browser-side inference.
5 commits
TypeScript
48.6%
Python
43.0%
CSS
8.1%