Privacy-first browser-local ScreenOps agent demo
0
stars
14
commits
TypeScript
primary language
Jun 7, 2026
updated
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/Ajey95/screenops-mvp
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.
Work commitments are often hidden inside meetings, chats, emails, and documents. Existing automation tools require users to manually create workflows or send sensitive context to cloud AI systems. That is a poor fit for private work environments such as finance, healthcare, legal, HR, or enterprise operations.
The screen is the richest source of context, but it is also the most sensitive.
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.
14 commits
TypeScript
48.6%
Python
43.0%
CSS
8.1%
Privacy-first browser-local ScreenOps agent demo
0
stars
14
commits
TypeScript
primary language
Jun 7, 2026
updated
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/Ajey95/screenops-mvp
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.
Work commitments are often hidden inside meetings, chats, emails, and documents. Existing automation tools require users to manually create workflows or send sensitive context to cloud AI systems. That is a poor fit for private work environments such as finance, healthcare, legal, HR, or enterprise operations.
The screen is the richest source of context, but it is also the most sensitive.
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.
14 commits
TypeScript
48.6%
Python
43.0%
CSS
8.1%