Inspiration
We built Noro because knowledge work is drowning in context switches. We’re constantly juggling tabs, shifting context, and losing our place.
People switch screens about every 47 seconds on average.
— Gloria Mark, discussed on Microsoft WorkLab’s podcast
Regain control of your focus and attention68% of workers say they don’t have enough uninterrupted focus time.
— Microsoft Work Trend Index 2023
Will AI Fix Work?
Noro is a Productivity Intelligence Agent that senses your current context, analyzes what you’re doing, and helps you get your flow back—so you can finish the work that matters.
What it does
- 🧠 Understands your current work: Noro captures browser context (active tab, open tabs, and optional screenshots).
- ⚡ Analyzes and summarizes: Uses Amazon Bedrock with Claude 4.5 Sonnet (primary) for fast, accurate summaries; routes analytics to Amazon Nova Pro.
- ⏱️ Suggests next steps: From reopening your last tab to starting a 25-minute focus timer.
- 🪄 Learns your flow: Groups related tabs into smart activities like “Q4 Sales Pipeline” or “Research Notes.”
Focus Score
$$ F \;=\; \frac{1}{1 + e^{-\left(a I \;+\; b P \;-\; c D \;+\; d\right)}} $$
Where
- (I \in [0,1]) — intent clarity
- (P \in [0,1]) — progress (normalized)
- (D \in [0,1]) — distraction level
- (a,b,c,d \ge 0) — tunable weights/bias
Could be used for
- If (F < 0.35) → start Focus Mode
- If (0.35 \le F < 0.7) → surface one nudge (close distractors / reopen active tab)
- If (F \ge 0.8) → log a streak, keep UI quiet, defer notifications
How we built it
🧩 System Architecture
[Chrome Extension] → [API Gateway] → [AWS Lambda] → [DynamoDB] → [Amazon Bedrock]
Key Components
Frontend: Chrome extension capturing tab metadata.
Backend:
- Normalizes payloads (supports both our canonical schema and teammate JSON with
sessionId/windows[*].tabs[*]). - Clusters tabs into AI-labeled activities, prioritizes the active tab, and returns ranked activities immediately.
- Persists only derived summaries (no screenshot storage).
- Endpoints:
GET /health,POST /context,GET /insights.
- Normalizes payloads (supports both our canonical schema and teammate JSON with
AI Models (Amazon Bedrock):
- Claude 4.5 Sonnet — primary summarizer (text + vision).
- Amazon Nova Pro — optional deeper analytics.
- Textract (optional OCR) gated by
USE_TEXTRACT=true. - Models are configured via env (e.g.,
BEDROCK_MODEL,ANALYTICS_MODEL).
- Claude 4.5 Sonnet — primary summarizer (text + vision).
Database: DynamoDB
- PK:
USER#{user_id} - SK:
SESSION#{timestampISO} - Attrs:
summary/summary_text,next_actions,confidence (Decimal),tab_hashes,correlation_id,ttl.
- PK:
Security & Ops:
- API Key auth via
x-api-key, CORS enabled (GET, POST, OPTIONS). - Optional AWS WAF WebACL for IP rate limiting.
- CloudWatch logs for Lambda + API Gateway access logs (include
$context.requestId). - Key env vars:
DDB_TABLE,USE_BEDROCK,BEDROCK_REGION,BEDROCK_MODEL,ANALYTICS_MODEL,USE_TEXTRACT.
- API Key auth via
Challenges we ran into
- AWS Lambda packaging with shared libraries.
- JSON parsing failures from LLM responses — solved with strict regex-based extractors.
- API Gateway’s access log format quirks.
- Bedrock Vision timing out on large image payloads.
Top Accomplishments
- 🚀 Shipped a real backend: /health, /context, and /insights all return live data end-to-end.
- 🔒 Prod guardrails: API key auth, CORS, WAF IP rate limiting, and CloudWatch logs so we can actually operate this.
Top Learnings
- 🧯 Strict JSON extraction + deterministic fallbacks prevented demo-day fires.
- 🧮 DynamoDB needs Decimal (not float) to avoid write errors.
What's next for Noro: The Productivity Intelligence Agent
- OS-wide Sensemaking (Cluely-inspired, reimagined): A privacy-first local agent that moves beyond the browser to map your entire desktop in real time—fusing active apps (Chrome, VS Code, Slack, Notion), window focus, files-in-use, meetings, and media into a live work graph. All analysis happens on-device with automatic redaction and zero keystroke capture, enabling intent-aware nudges without compromising privacy.
- Live Focus Rooms (StudyStream × Noro): Integrate with StudyStream to pair Noro’s real-time context sensing with virtual accountability rooms—auto-detect deep work, auto-mute distractions, share goal + timer, show streaks, and surface “nudge” prompts when attention drifts.
- Plugin & API Ecosystem: Skills for Jira/Linear/GitHub/Salesforce; webhooks + declarative “skill cards” so teams can add actions without heavy code.
- Personal Knowledge Graph: People ↔ projects ↔ docs ↔ tasks auto-linked across apps; natural-language and semantic search (e.g., “the spreadsheet where we changed UAT dates last Friday”).
- Routines & Automations: “When I open Project Plan, switch to Do Not Disturb and start a focus timer”; “If a meeting starts, capture agenda + action items and push to Docs + Jira.”
- Team Awareness (privacy-preserving): Anonymous, opt-in roll-ups (handoffs, context drift, meeting load) to improve team flow.
- Accessibility First: Voice command palette, captioned summaries, keyboard-only flows, high-contrast modes.
Tagline: Sense your work. Understand your context. Get your flow back with Noro.
Built With
- amazon-cloudwatch
- amazon-dynamodb
- amazon-web-services
- bedrock
- boto3
- claude
- css3
- html5
- javascript
- manifest3
- node.js
- nova
- python
- typescript
- waf

Log in or sign up for Devpost to join the conversation.