Skip to content

Latest commit

 

History

210 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

F.R.I.D.A.Y.

Female Replacement Intelligent Digital Assistant Youth

A fully autonomous, Iron Man-inspired AI agent for Windows
Built by Arnav · Co-leader of NexSemble

Python Gemini Live License: MIT Platform Status Version Tests


"Sometimes you gotta run before you can walk." — Tony Stark


Index


What is Friday?

Friday is not a chatbot. It is a fully autonomous desktop AI agent that lives on your Windows machine, watches your screen, listens to your voice, understands your goals, and takes action — [...]

Think of it as having a real-world version of Tony Stark's FRIDAY running on your PC. It monitors what you're doing, proactively comments and helps, controls your entire desktop via voice, manages[...]

What makes Friday different from other agents: she learns who you are. Import your conversation history from Claude, ChatGPT, or Gemini and Friday extracts your preferences, communication styl[...]

Friday is open source, Windows-native, self-hosted, and built to eventually compete with commercial agents like Devin, Cline, and Claude Code.


Feature Overview

🎙️ Voice & Audio

Feature Status Details
Gemini Live native audio ✅ Working Primary voice interface via friday_live.py
Groq Whisper STT ✅ Working Fallback speech-to-text
Porcupine wake word ✅ Working "Hey Friday" detection via voice_wake.py
Multi-TTS engine support 🔧 In Progress ElevenLabs, Google TTS, pyttsx3
Typing effect output ✅ Working Terminal typing effect for responses
Audio crackling fix ✅ Fixed Jitter buffer increased to 12 chunks (~2.4s), smoother drain, no discontinuity

👁️ Vision & Screen Awareness

Feature Status Details
Live API native video feed ✅ Working Automatic ~1 FPS, 720p streaming — model sees screen without calling any tool
Active window detection ✅ Working screen_watcher.py via pywinctl
Gemini Vision analysis ✅ Working Screen-to-description pipeline
Vision-grounded clicking ✅ Working vision_click() — finds elements by description
Background monitor with proactivity ✅ Working Unsolicited observations via Gemini proactivity
Error detection on screen 🔧 In Progress Detects visible Python/JS errors
Visual search ✅ Working "Friday find the word X on screen"

🖥️ Desktop Automation & Control

Feature Status Details
Mouse & keyboard control ✅ Working pyautogui-based via friday/tools.py
App launching & closing ✅ Working open_app(), close_app() — system discovery chain
Spotify control ✅ Working (Web API + keyboard fallback) Full Spotify API — search, play, queue, volume
Netflix/streaming control 🔧 In Progress Vision-based navigation
File system access ✅ Working With run_cmd + system access
Roblox launcher ✅ Working Web search place ID → roblox:// URI
Microsoft Store launcher ✅ Working ms-windows-store:// URI
Windows Clock (alarms, timers, stopwatch, reminders, focus) ✅ Working Persistent clock state, background thread scheduling, native notifications

🌐 Browser Integration

Feature Status Details
Playwright bridge (navigate/extract/search) ✅ Working browser_use_bridge.py — direct Playwright persistent context, no CDP timeout
Persistent Chrome profile ✅ Working friday_memory/friday_chrome_profile — keeps sessions, cookies, logins
browser-use Agent (complex multi-step) ✅ Available run_browser_task() — LLM-powered Agent for multi-step browser tasks
Instagram DM via bridge ✅ Working Persistent login, draft & send DMs
Cross-browser history search ✅ Working Chrome, Brave, Edge, Opera SQLite (3650 days, 10000 limit)
History-based recall & open ✅ Working "Open that Jarvis repo I was looking at"
Browser navigation by voice ✅ Working Opens URLs, searches, page interaction
No C:\Temp data leakage ✅ Fixed All browser data redirected to FRIDAY_MEMORY/friday_temp/ — never fills C drive

🎯 Goals & Productivity Enforcement

Feature Status Details
Goal tracking & persistence ✅ Working friday/goals.py + friday_memory/goals.json
Course/deadline tracking ✅ Working URL, deadline, description, verification method
OKR scoring engine ✅ Working progress*0.5 + streak*0.3 + time_factor*0.2
Morning plan + evening review ✅ Working Auto-advances streaks, flags gaps
Google Calendar integration ✅ Working List events + sync to goals via calendar_tool_handler
Escalating intervention (4 levels) ✅ Working L1:warn → L2:close → L3:URL+lock → L4:escalate
Tab closing enforcement ✅ Working Closes distracting tabs, reopens course URL
StayFree integration ✅ Working Reads local usage data (4 extension IDs, Edge/Brave/Chrome), process fallback
Knowledge graph auto-extraction ✅ Working Post-tool hook extracts entities + relationships

📬 Communication & Messaging

Feature Status Details
Desktop toast notifications ✅ Fixed PowerShell Windows.UI.Notifications + plyer fallback — all messages deliver now
Gmail read/send ✅ Working friday_gmail.py via Gmail API
Instagram DM ✅ Working instagram_messenger.py via OpenCLI
Alexa smart home ✅ Working alexa_webhoOK_server.py
WhatsApp messaging 📋 Planned Via web automation

🤖 AI & LLM

Feature Status Details
OpenCode Zen API (big-pickle) ✅ Primary config.yaml — free unlimited-token model for all tasks (code_gen, browse, reasoning, research, planning)
Gemini Live (fallback) ✅ Working Cloud-hosted, real-time audio + native video feed
NVIDIA NIM integration ✅ Working Large-context models (128K tokens) via nim_client.py + nim_router.py — Qwen 3 Coder 480B, Nemotron Omni 30B
Model router ✅ Working config.yaml model_map — automatic model selection by task type with fallback chain
Multi-agent delegation (9 roles) ✅ Working Agent profiles (Veronica, Forge, Ghost, Atlas, Jarvis, etc.) with per-role tool access control
Parallel sub-agent spawning ✅ Working opencode_bridge.py — spawn agents via Zen API or local opencode serve
Townhall (AI civilization) ✅ NEW 11 AI agents with personalities, relationships, memories, moods, spontaneous chats, mobility
Dreaming system ✅ NEW Agents generate LLM-powered dreams/reflections while idle
Deep research agent (Veronica) ✅ Working research_agent.py — browser-based OSINT agent, recursive scraping, PDF reports
Reasoning engine ✅ Working friday/reasoning.py — multi-step reasoning
KYU personality adaptation ✅ Working 4-stage interview → preference learning → system prompt injection
Cron scheduler ✅ NEW friday/scheduler.py — schedule autonomous tasks: status checks, goal reviews, dream cycles, custom commands
GitHub seamless auth ✅ Fixed Hardcoded GitHub App (Iv23liuQ5XPhsBjONt9B) — zero config, auto-opens browser

🧠 Memory & User Understanding

Feature Status Details
Cross-chatbot history import ✅ Working Import chats from Claude, ChatGPT, Gemini — Friday reads and learns from them
Preference extraction ✅ Working Parses imported conversations to build a user profile: likes, dislikes, habits, tone
KYU personality adaptation ✅ Working 4-stage interview → preference learning → kyu_adapt() → system prompt
Persistent memory vault ✅ Working friday/vector_memory.py — ChromaDB-based semantic memory
Knowledge graph ✅ Working friday/knowledge_graph.py — auto-extracts entities after every tool call
Semantic memory search ✅ Working Pulls relevant past context before every response
Memory import tool handler ✅ Working Processes chat exports into user profile + knowledge graph

📄 File Generation

Feature Status Details
Universal file generator ✅ Working file_generator.py — all formats

🐙 GitHub Integration

Feature Status Details
Pre-configured GitHub App ✅ Done friday-from-ironman — Client ID hardcoded, zero config needed
Device Flow authorization ✅ Done github_authorize() — auto-opens browser, just enter code and authorize
Token auto-refresh ✅ Done For expiring tokens; permanent tokens (no expiry) also supported
Repository operations ✅ Working Read/write files, create repos, list branches, commit history
Pull request operations ✅ Working Create, merge, list, review (AI-powered with Gemini)
Proactive PR manager ✅ NEW pr_manager_tool — polls GH repos for open PRs, auto-reviews new ones, background 5min polling
Issue tracking ✅ Working Create, list, search, label management
Code search ✅ Working Search across repos with GitHub code search API
Self-modification ✅ Working Read → modify → commit — Friday can edit her own code
Account permissions ✅ Full read/write: repos, actions, PRs, issues, workflows, deployments, pages, secrets, projects (admin), codespaces, gists, profile
Code files ✅ Working .py, .js, .ts, .html, .css, .sh, .yaml
Documents 🔧 In Progress .md, .txt, .docx, .pdf
Config/server files 🔧 In Progress Dockerfile, nginx.conf, .env

🚀 System & Startup

Feature Status Details
Windows startup on boot ✅ Working protector_tool(action='startup', startup_action='install') via HKCU Run
System protector ✅ NEW protector_tool — prevents unauthorized shutdown/lid-close, monitors lid state, Win+X+U, Alt+F4, Ctrl+C, smart override based on uptime/resources
Keepalive (prevents GOAWAY) ✅ Working keepalive_task() pings every 45s
Auto-reconnect ✅ Working 5s reconnect loop on disconnect
Background operation ✅ Working asyncio task-based

🖼️ Dashboard & UI

Feature Status Details
HTML Dashboard ✅ Stable Port 8080, 12+ panels, dark theme, scanline overlay, animations, 10s auto-refresh
REST API ✅ Stable Port 8090, 19 endpoints (health, state, tools, tasks, memory, authority, snapshots, sidecars, goals, system, logs, capabilities, mission, briefing, workspace, diagnostic, CV context)
POST endpoint ✅ Stable /api/sidecars/register, /api/sidecars/heartbeat for remote sidecar auth
Desktop UI 🔧 In Progress PyQt6/Tkinter
Dark neon theme ✅ Done Navy/cyan/teal, scanline CRT overlay, glow text

📷 Camera CV (LLM-Only)

Feature Status Details
Background camera capture ✅ Stable OpenCV VideoCapture in daemon thread, configurable interval
Object detection ✅ Stable MobileNet-SSD (COCO 80 classes) via OpenCV DNN, auto-downloads model
People detection ✅ Stable HOG descriptor (built into OpenCV, no download)
Motion detection ✅ Stable Frame differencing with Gaussian blur
Scene analysis ✅ Stable Brightness, contrast, lighting, dominant colors (K-means)
Gemini Vision integration ✅ Optional Rich scene description when API key available
LLM-only ✅ By design Results consumed via cv_tool("context") — never shown to user
Wired into awareness ✅ Done situational_awareness() includes CV context automatically

🔌 Sidecar Network

Feature Status Details
Remote sidecar dispatch ✅ Stable HTTP POST to sidecar endpoint, timeout handling
Local command execution ✅ Stable ping, capabilities, exec (shell), system_info, shutdown
UDP multicast discovery ✅ Stable 239.255.42.69:42069, listener + announcer threads
JWT token auth ✅ Stable HMAC-SHA256, no PyJWT dependency, no-expiry token support
Token management ✅ Stable generate, list, revoke, verify via sidecar_network_tool()
Installable sidecar package ✅ Stable sidecar_package/pip install .friday-sidecar CLI
Sidecar CLI ✅ Stable --install-token, --server URL --token TOKEN, auto-registration, heartbeat loop

🛡️ Authority & Safety

Feature Status Details
Risk classification ✅ Stable 9 levels: read_only → background_autonomy
Configurable policy ✅ Stable Disk-persisted, modes: auto, ask, dry_run, block_all
Decision engine ✅ Stable should_allow_tool() with audit logging
Hook enforcement ✅ Stable Pre-hook runs on every tool call in live.py
Auto-snapshot ✅ Stable Snapshot created before destructive operations (delete, write, move, copy)
Blocked tools list ✅ Stable Per-tool blocking via authority_tool("block", tool=...)

🧩 Tool Registry

Feature Status Details
Central metadata ✅ Stable 150+ tools with category, risk, description
Introspection API ✅ Stable get_tool_metadata(), list_tool_registry(), check_tool_registry_consistency()
Capability matrix ✅ Stable 40+ systems with status/dependencies/notes
Capability report ✅ Stable Auto-generated markdown at friday_reports/capability_report.md
Iron Man features ✅ Stable damage_report(), suit_check(), morning_plan(), evening_review() with history

🧠 Memory Tree

Feature Status Details
Markdown knowledge base ✅ Stable Persistent pages under friday_memory/memory_tree/
Daily notes ✅ Stable Auto-created daily notes with focus/tasks/reflections
Full-text search ✅ Stable Search across all pages and daily notes
Profile sync ✅ Stable Auto-generates pages from user_profile.json
Backlinks ✅ Stable [[PageName]] cross-references
Context injection ✅ Stable build_memory_tree_context() for LLM system prompt
CLI access ✅ Stable python -m friday.cli memory-tree

🔀 Model Router

Feature Status Details
Multi-provider ✅ Stable Gemini, OpenAI, Anthropic, local models
Smart routing ✅ Stable Resolve best model by task type (chat, vision, code, fast)
Cost tracking ✅ Stable Per-model cost accumulation, session stats
Health checks ✅ Stable Provider health with latency measurement
Configurable ✅ Stable JSON config, primary/fallback/code/vision/fast/local model mapping

🧩 Extension Registry

Feature Status Details
Extension lifecycle ✅ Stable register, update, remove, list for all extension types
MCP server management ✅ Stable stdio-based MCP server registry with health checks
Capability discovery ✅ Stable Search extensions by capability keywords
Health monitoring ✅ Stable HTTP/TCP/process health checks for all registered items
5 extension types ✅ Stable mcp, tool, bridge, hook, adapter

🩺 Diagnostics & CLI

Feature Status Details
System diagnostics ✅ Stable 25+ health checks (modules, paths, config, hardware)
Performance benchmarks ✅ Stable I/O, JSON serialization, dict lookup benchmarks
agent-spawn command ✅ Stable python -m friday.cli agent-spawn for sub-agent task
config command ✅ Stable Interactive API key management
doctor command ✅ Stable python -m friday.cli doctor with verbose/JSON modes
suit-check command ✅ Stable Pre-flight system verification via CLI
damage-report command ✅ Stable System risk assessment via CLI
memory-tree commands ✅ Stable Full read/write/search/daily-note CLI interface
sidecar commands ✅ Stable Token generation, discovery, health via CLI
snapshots commands ✅ Stable List, create, restore, delete via CLI
dashboard commands ✅ Stable Start, stop, URL via CLI

Architecture

E:\F.R.I.D.A.Y\
│
├── friday.py               ← PRIMARY ENTRY POINT (with 5x auto-restart loop)
│
├── friday/                 ← CORE PACKAGE (all modules)
│   ├── live.py             ← Main engine: Gemini Live session, 150+ tool declarations, TOOL_MAP
│   │   ├── Gemini Live audio/video (native WebSocket)
│   │   ├── keepalive_task() — prevents GOAWAY timeout
│   │   ├── _build_session_config() — system prompt with FRIDAY identity
│   │   ├── Phase 14/15/16 module imports (tool_registry, authority, snapshots, sidecar, autonomy, dashboard_api, capabilities, ironman)
│   │   └── Audio playback (jitter buffer, 4800 frames_per_buffer)
│   │
│   ├── tools.py            ← 150+ tool implementations (bridge to all modules)
│   │   ├── Desktop automation (mouse, keyboard, apps)
│   │   ├── Browser control (OpenCLI bind approach)
│   │   ├── File operations (generate, search, open)
│   │   ├── Spotify, Netflix, email, Instagram, Roblox, MS Store
│   │   ├── GitHub (20+ operations), Clock, Goals, KYU, Research
│   │   └── situational_awareness() includes CV camera context
│   │
│   ├── opencli.py          ← OpenCLI v1.7.18 wrapper (session-based browser automation)
│   │
│   ├── browser_use_bridge.py ← Playwright bridge — persistent context, navigate/extract/search, no C:\Temp
│   │
│   ├── desktop_use_bridge.py ← pywinauto UIA + win32 fallback — native Windows app control
│   │
│   ├── townhall_engine.py  ← AI civilization — 11 agents with personalities, LLM-powered dreams
│   │
│   ├── agent_profiles.py   ← 9 tool-based agent profiles (Veronica, Forge, Ghost, Atlas, etc.)
│   │
│   ├── dreaming.py         ← Background LLM-powered dream cycles for agent growth
│   │
│   ├── github.py           ← GitHub API + OAuth Device Flow
│   │
│   ├── goals.py            ← Goal/OKR system
│   │
│   ├── clock.py            ← Windows Clock
│   │
│   ├── stayfree.py         ← StayFree screen time
│   │
│   ├── gmail.py            ← Gmail + Calendar
│   │
│   ├── web.py              ← Browser history search
│   │
│   ├── kyu.py              ← KYU personality adaptation
│   │
│   ├── knowledge_graph.py  ← Auto-extracts entities + relationships post-tool
│   │
│   ├── multi_agent.py      ← 9-role multi-agent delegation
│   │
│   ├── research.py         ← Autonomous web research
│   │
│   ├── research_agent.py   ← Veronica — deep research OSINT agent (browser-based, recursive scraping, PDF reports)
│   │
│   ├── nim_client.py       ← NVIDIA NIM inference client (supports 128K context, vision models, tool use)
│   │
│   ├── nim_router.py       ← NIM model router by task type (research, code_gen, vision, browse, etc.)
│   │
│   ├── reasoning.py        ← Multi-step reasoning engine
│   │
│   ├── hooks.py            ← Pre/post/error tool hooks (authority enforcement, auto-snapshot, logging, KG, KYU, episodic, skills)
│   │
│   ├── notify.py           ← Desktop toast notifications
│   │
│   ├── vector_memory.py    ← ChromaDB semantic memory
│   │
│   ├── _paths.py           ← Centralized path resolution
│   │
│   ├── memory_import.py    ← Full memory pipeline + doctor/review/pin actions
│   │
│   ├── skills/             ← Agent skill files (Claude-like pattern)
│   │   ├── pdf/SKILL.md    ← PDF creation guide for LLM agents
│   │   ├── svg/SKILL.md    ← SVG/diagram generation guide
│   │   ├── chart/SKILL.md  ← Chart creation guide
│   │   ├── docx/SKILL.md   ← Word document creation guide
│   │   ├── pptx/SKILL.md   ← PowerPoint creation guide
│   │   ├── code_gen/       ← Code generation patterns
│   │   ├── osint/          ← OSINT investigation patterns
│   │   └── ...
│   │
│   ├── tool_registry.py    ← Central metadata for 150+ tools
│   ├── authority.py        ← 9-level risk classification + policy + audit
│   ├── snapshots.py        ← File/directory snapshot/restore/diff
│   ├── sidecar.py          ← Sidecar registry + HTTP remote dispatch
│   ├── sidecar_network.py  ← UDP multicast discovery + JWT token auth
│   ├── autonomy.py         ← Durable task queue with retry/reflection
│   ├── dashboard_api.py    ← REST API (19 endpoints, port 8090)
│   ├── dashboard.py        ← HTML dashboard (12+ panels, port 8080)
│   ├── capabilities.py     ← Capability matrix (40+ systems)
│   ├── ironman.py          ← Damage report, suit check, morning/evening review
│   ├── cv_engine.py        ← Background camera CV (DNN object detection, HOG, motion)
│   ├── profile_schema.py   ← JSON Schema validation for user_profile
│   ├── memory_tree.py       ← Persistent Markdown knowledge base with daily notes & backlinks
│   ├── model_router.py      ← Multi-provider model routing with cost tracking & health checks
│   ├── extension_registry.py ← Extension & MCP server lifecycle management
│   ├── diagnostics.py       ← System diagnostics & performance benchmarks
│   ├── cli.py               ← CLI interface (doctor, status, memory-tree, sidecar, etc.)
│   └── startup.py          ← Windows startup + background service launcher
│
├── sidecar_package/        ← Installable sidecar for remote devices
│   ├── setup.py
│   └── friday_sidecar/
│       ├── __init__.py
│       └── client.py       ← CLI: friday-sidecar --server URL --token TOKEN
│
├── archive/                ← 23 experiment modules
│
├── friday_memory/          ← RUNTIME DATA (gitignored)
│   ├── user_profile.json
│   ├── authority_policy.json
│   ├── sidecars.json
│   ├── snapshots.json
│   ├── cv/
│   ├── sidecar_network/
│   ├── ironman_reports/
│   └── ...
│
│   └── ...
│
│   config/                  ← Configuration files (model_router.json, extension_registry.json, ...)

Quick Start

Quick Install

# PowerShell — installs everything, one command
powershell -ExecutionPolicy Bypass -NoProfile -File install.ps1

The installer checks prerequisites (Python, Git, Node.js), creates a .venv, installs dependencies, runs an interactive onboarding wizard for all API keys (OpenCode Zen, NVIDIA, Google, Groq, GitHub, Telegram, Discord, OSINT, Social Media), creates friday_memory/, adds friday to PATH, and verifies all modules.

After install:

friday

That's it. FRIDAY starts the dashboard, API, sidecar heartbeat, memory checks, and live voice engine with structured terminal output.

First-time setup: The onboarding wizard walks you through getting your OPENCODE_ZEN_API_KEY (free at opencode.ai), which is the primary LLM brain. All other keys are optional and can be added later via the dashboard or by editing .env.

Usage

friday                          # Full supervisor: dashboard + voice engine
friday dashboard start          # Start dashboard services (background)
friday dashboard stop           # Stop dashboard services
friday dashboard status         # Dashboard health + URLs + latency
friday dashboard open           # Open dashboard in browser
friday status                   # System health: dashboard, sidecar, memory
friday doctor                   # Diagnostics: modules, ports, configs
friday doctor --verbose         # Full diagnostic report
friday fix                      # Auto-repair common issues
friday memory-tree read people  # Read from memory tree
friday sidecar status           # Sidecar network status

Environment Variables

Variable Required Purpose
GOOGLE_API_KEY Yes Gemini Live (brain + vision)
OPENCODE_ZEN_API_KEY Yes OpenCode Zen API — primary LLM (free, unlimited tokens, big-pickle model)
PICOVOICE_ACCESS_KEY No Wake word detection
SPOTIFY_CLIENT_ID No Spotify control
SPOTIFY_CLIENT_SECRET No Spotify auth
GROQ_API_KEY No Fast inference / Whisper STT
NVIDIA_NIM_API_KEY No NVIDIA NIM fallback models (Qwen 3 Coder 480B, Nemotron Omni 30B)
NVIDIA_VISION_API_KEY No NVIDIA NIM vision models (camera/screen analysis)
GITHUB_TOKEN No GitHub API for OSINT features
SHODAN_API_KEY No Shodan device search
VIRUSTOTAL_API_KEY No VirusTotal file/URL reputation
TELEGRAM_BOT_TOKEN No Telegram bot for remote commands
DISCORD_BOT_TOKEN No Discord bot integration
INSTAGRAM_USER/_PASS No Instagram automation
REDDIT_CLIENT_ID/_SECRET No Reddit API access

Create .env from .env.example:

copy .env.example .env

Add to Windows Startup

FRIDAY can auto-start with Windows:

python -m friday.cli config
# Or ask: "Friday, add yourself to Windows startup"

Voice Commands

Friday responds to natural language. No rigid syntax required.

Screen & Vision

"Friday, what do you see on my screen?"
"Friday, is there an error on my screen?"
"Friday, find the word msconfig on my screen"
"Friday, click the play button"

Apps & Desktop

"Friday, open Spotify"
"Friday, play Naruto OST on Spotify"
"Friday, open VS Code"
"Friday, close Chrome"
"Friday, play Bloxfruits on Roblox"

Browser & History

"Friday, open the Jarvis repo I was loOKing at — the one by vierisid"
"Friday, what was I reading about LangGraph earlier?"
"Friday, open my IITM course"

Messaging & Communication

"Friday, message Mangesh on Instagram — tell him I'll be back soon"
"Friday, send an email to dev@example.com with a job offer letter from NexSemble"
"Friday, read my latest emails"

Goals & Productivity

"Friday, I have an IITM 8-week course ending May 31st at iitm.course.url — track it"
"Friday, what are my goals today?"
"Friday, how long have I been on YouTube today?"
"Friday, what's my screen time?"

Smart Home

"Friday, tell Alexa to switch off the lights"
"Friday, switch off my bedroom lights"

LLM & System

"Friday, switch to Claude"
"Friday, what LLM are you using?"
"Friday, do a deep research on NVIDIA's new GPU architecture and generate a report"
"Friday, generate a Python Flask server file"

Memory & Learning

"Friday, I've imported my Claude chat history — learn from it"
"Friday, what do you know about me?"
"Friday, update your understanding of my preferences"
"Friday, forget what I told you about X"

Module Reference

File Purpose
friday.py Root entry point. Gemini Live session launch with 5x auto-restart
friday/live.py Main engine. 150+ tool declarations, TOOL_MAP, audio playback, system prompt, Phase 14-16 integration
friday/tools.py 150+ tool bridge functions — desktop, browser, files, GitHub, clock, goals, CV-aware situational_awareness
friday/opencli.py OpenCLI v1.7.18 wrapper — session-based browser automation + site adapters
friday/github.py GitHub API (20+ ops) + Device Flow OAuth + AI PR review
friday/goals.py Goal tracking, OKR scoring, 4-level progressive enforcement
friday/clock.py Windows Clock — alarms, timers, stopwatch, reminders, focus mode
friday/stayfree.py StayFree screen time detection (multi-browser, multi-extension)
friday/gmail.py Gmail read/draft/send + Calendar + unified Google OAuth
friday/web.py Cross-browser SQLite history search
friday/kyu.py KYU personality adaptation — 4-stage interview + preference learning
friday/knowledge_graph.py Auto-extracts entities + relationships after every tool call
friday/multi_agent.py 9-role multi-agent delegation system
friday/research.py Autonomous web research + report generation
friday/research_agent.py Veronica — deep research OSINT agent with recursive scraping, LLM-driven search decisions, PDF reports (24 chart types, 100+ pages)
friday/nim_client.py NVIDIA NIM inference client — chat, vision, structured output, 128K context
friday/nim_router.py NIM model router — resolves best model by task type, configurable via config.yaml
friday/reasoning.py Multi-step reasoning engine
friday/hooks.py Pre/post/error tool hooks (authority enforcement, auto-snapshot, KG, logging, KYU, episodic, skills)
friday/notify.py Desktop toast notifications (PowerShell + plyer)
friday/dreaming.py Dreaming system — session analysis while idle
friday/scheduler.py Cron scheduler for autonomous tasks
friday/vector_memory.py ChromaDB semantic memory
friday/_paths.py Centralized path resolution
friday/workflow.py RPA workflow engine
friday/plugin.py Plugin system
friday/memory_import.py Full memory pipeline: import, TF-IDF, audit, clean, confidence, redaction, conflict detection, decay, doctor
friday/tool_registry.py Central metadata for 150+ tools — category, risk, description, consistency checker
friday/authority.py 9-level tool risk classification, configurable policy, decision engine, audit log
friday/snapshots.py File/directory SHA-256 snapshot, restore, diff, indexed registry
friday/sidecar.py Sidecar registry, heartbeat, HTTP remote dispatch, local exec (ping/shutdown/exec)
friday/sidecar_network.py UDP multicast discovery, HMAC-JWT token auth/generate/verify/revoke
friday/autonomy.py Durable task queue — 6 states, retry/backoff, pause/resume, reflection metadata
friday/dashboard_api.py REST API (19 endpoints, port 8090), POST /api/sidecars/register + /heartbeat
friday/dashboard.py HTML dashboard (12+ panels, port 8080), dark theme, auto-refresh, animations
friday/capabilities.py Capability matrix (40+ systems), auto-generated markdown report
friday/ironman.py Iron Man features: damage_report, suit_check, morning_plan, evening_review
friday/cv_engine.py Background camera CV — OpenCV DNN object detection (COCO 80), HOG people, motion, scene analysis (LLM-only)
friday/profile_schema.py JSON Schema validation for user_profile.json
friday/startup.py Windows startup integration + background dashboard/sidecar service launcher

Development Roadmap

v1.0 — Foundation OK

  • Gemini Live voice interface
  • Groq Whisper STT
  • Porcupine wake word detection
  • Screen capture & vision
  • Desktop automation (mouse, keyboard)
  • App launching
  • Deep research tool
  • File generation
  • Spotify API integration (Client ID + Secret)
  • Cross-chatbot history import (Claude, ChatGPT, Gemini)
  • User preference extraction from imported chats

v1.1 — Intelligence Layer OK

  • Active window detection (stable)
  • Proactive screen commentary (non-command-triggered)
  • Vision-grounded clicking (vision_click)
  • Cross-browser history search
  • Goal memory + enforcement system
  • Real OpenCLI browser control (95 tools)
  • StayFree integration
  • Instagram DM (working)
  • Gmail integration

v1.2 — Autonomy OK

  • Google Calendar integration
  • Windows startup (Task Scheduler)
  • Semantic memory (vector search with ChromaDB)
  • Self-modification system (GitHub API-based code editing)
  • LangGraph orchestration (graph-based agent routing)
  • Multi-LLM switching (deferred — incompatible with Live WebSocket)

v1.3 — Full Autonomy 🚀

  • Package reorganization (friday/ package, archive/ cleanup)
  • 120+ tools (up from 60)
  • OKR scoring engine (progress*0.5 + streak*0.3 + time_factor*0.2)
  • 4-level progressive goal enforcement (L1 warn → L4 escalate)
  • Morning plan + evening review auto-advancement
  • StayFree extended detection (4 extension IDs, Edge/Brave paths, process fallback)
  • Windows Clock integration (alarms, timers, stopwatches, reminders, focus mode)
  • GitHub OAuth Device Flow (no redirect server, polling-based)
  • GitHub 20+ API operations (create repo, issues, PR merge, search, branches, etc.)
  • Roblox + Microsoft Store URI launchers
  • OpenCLI v1.7.18 + bind approach (fixes browser open hang)
  • KYU personality adaptation (4-stage interview → preference learning)
  • 9-role multi-agent delegation (same as Jarvis roster)
  • Knowledge graph auto-extraction (post-tool hook)
  • Research + Reasoning engines promoted from archive
  • FRIDAY identity system prompt (she/her, witty, full autonomy)
  • Tool-call ceiling removed (all calls execute)
  • Audio crackling fixed (4800 frames_per_buffer, jitter buffer)
  • 1008 GoAway reconnection fixed (removed pa.terminate())
  • Centralized path resolution (friday/_paths.py)

v1.4 — Self-Improvement & Seamless Auth 🧠

  • Desktop notifications fixed (PowerShell toast + plyer fallback, no more silent failures)
  • Vision improved (1 FPS 720p automatic streaming, model sees screen without calling tools)
  • Audio crackling fixed (increased jitter buffer to 12 chunks, smoother drain)
  • Clock glitchiness fixed (notifications dependency resolved, display cleaned up)
  • Dreaming system — analyzes past sessions while idle, extracts patterns, updates memory + knowledge graph
  • Cron scheduler — schedule autonomous tasks (status checks, goal reviews, dream cycles, custom)
  • GitHub Device Flow simplified — only client ID needed (no secret), auto-opens browser
  • GitHub OAuth setup wizard — step-by-step guidance for creating the OAuth app
  • Episodic archive — SQLite FTS5 full-text search across all past sessions, auto-records all tool calls
  • Skill curator — auto-prunes failing skills, archives stale ones, suggests merges
  • Self-improvement pipeline — propose → review → apply code changes to own source
  • Crash watcher — real-time Windows Event Log crash monitoring, auto-detection + analysis
  • Proactive PR manager — polls GitHub repos for new PRs, auto-reviews with Gemini
  • System protector — prevents unauthorized shutdown/lid-close, detects Win+X+U/Alt+F4/Ctrl+C, smart override based on system health
  • Windows startup registration — protector_tool with HKCU Run key, install/remove/status

v2.0 — Desktop App 🌟

  • Tool registry — central metadata for 150+ tools
  • Authority & action policy — 9-level risk classification, configurable policy, audit log
  • File/directory snapshots — SHA-256, restore, diff, indexed registry
  • Sidecar system — registry, heartbeat, capability reporting, HTTP remote dispatch
  • Autonomy engine — durable task queue with retry/backoff/reflection
  • Capability matrix — 40+ systems with status and dependencies
  • Dashboard REST API — 19 endpoints, port 8090, POST support for sidecar registration
  • Advanced HTML dashboard — 12+ panels, dark theme, CRT overlay, animations, 10s auto-refresh
  • Memory upgrades — redaction, conflict detection, decay, review queue, doctor diagnostic
  • Iron Man features — damage report, suit check, morning briefing, evening review
  • Profile schema validation — JSON Schema for user_profile.json
  • Authority + auto-snapshot hooks — enforced on every tool call
  • Background camera CV — object detection, people counting, motion, scene analysis (LLM-only)
  • Sidecar network — UDP multicast discovery, HMAC-JWT token auth, no-expiry tokens
  • Installable sidecar package — pip install .friday-sidecar CLI for remote devices
  • CV context wired into situational_awareness() — LLM sees camera without user knowing
  • NIM model benchmark (20 models) — qwen3-coder-480b #1, nemotron-omni-30b #2
  • NIM key separation — research (NVIDIA_NIM_API_KEY) vs vision (NVIDIA_VISION_API_KEY)
  • Deep research agent (Veronica) — browser-based OSINT with recursive scraping, PDF report generation
  • Skill-based tool descriptions — Claude-like pattern: tools reference skills/pdf/SKILL.md
  • Veronica report fix — 3-tier fallback (LLM synthesis → markdown parsing → structured sections), no more raw data dumps
  • Camera auto-switching — FRIDAY can switch/list/cycle cameras via cv_tool
  • Native Windows app (PyQt6 or Tauri)
  • Settings panel with key vault
  • Plugin system
  • Packaged installer (.exe)

Contributing

Friday is an open source project built solely by Arnav Phulari, shared publicly through NexSemble — a peer-learning and collaborative tech community in Pune, India[...]

Pull requests are welcome. For major changes, open an issue first.

# Fork and clone
git clone https://github.com/your-username/friday.git

# Create feature branch
git checkout -b feature/your-feature-name

# Make changes, then push
git push origin feature/your-feature-name

# Open a Pull Request on GitHub

Guidelines

  • Keep Windows-native compatibility (no Docker, no mandatory WSL2)
  • Never hardcode localhost — use OLLAMA_BASE_URL from env
  • Every new tool must be registered in friday_live.py's execute_tool()
  • Test on Windows 10 and 11

Known Issues

Issue Status Workaround
Gemini GOAWAY timeout on long idle Fixed keepalive_task() pings every 45s
Gemini 1008 GoAway on long tool sequences Mitigated Tool-ceiling removed; user accepts risk
Chrome SQLite locked when browser open Fixed Copy to temp before reading
pyautogui coordinates break on resolution change In Progress Use vision_click() instead
OpenCLI browser open <url> hangs on Windows Fixed Now opens via webbrowser + bind instead
Spotify "No active device" error In Progress Open Spotify app first, then retry
See_screen Gemini API 429 (rate limit) Workaround Falls back to Gemini 1.5 Flash automatically
SDK bug: send_realtime_input raises ValueError with >1 arg Known Only passes one argument at a time
SyncMutex lock_async log noise Cosmetic Non-fatal, safe to ignore
Audio crackling on long sessions Fixed Larger jitter buffer (12 chunks), smoother drain, exception_on_underflow=True
CV engine MobileNet-SSD model download on first use First-run delay ~7MB download, cached after that
Sidecar UDP discovery limited to LAN By design Use --server URL flag for WAN connections
JWT tokens stored in plaintext on disk Known Encrypted storage planned for v2.1
NVIDIA NIM intermittent HTTP 500 errors Mitigated Old key had ~30% error rate; key separated into research vs vision, new key resolves most issues
Deep research PDF report synthesis Fixed LLM was generating 1000+ JSON sections with 128K max_tokens → truncated output → raw data dump. Fixed: reduced to 80+ sections, 32K max_tokens, 3-tier fallback with LLM re-synthesis
deepseek-ai/deepseek-v4-flash times out Known Unreliable on NIM; replaced with qwen/qwen3-coder-480b-a35b-instruct as primary
Playwright + UIA COM access violation Mitigated Playwright browser tests corrupt UIA COM tree. Desktop functions auto-fallback to win32 backend

License

MIT License — see LICENSE for details.


Author

Friday is solely built by Arnav (@hackers-reality)
Co-leader of NexSemble — a peer-learning and collaborative tech community based in Pune, Maharashtra, India.

"This is not a chatbot . This is Friday — the real one."


Community — Join NexSemble

Friday is built in public and shared through NexSemble — a community of builders, hackers, and learners who ship real projects together. Come talk Friday, AI agents, and whatever you're bui[...]


Star the repo if Friday helped you. She deserves it.

GitHub stars

About

Iron Man's F.R.I.D.A.Y. for your Windows PC — autonomous AI agent with voice, vision, screen control, goal enforcement & full desktop automation.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages