Skip to content

hackers-reality/friday

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

163 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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
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"
OpenCLI browser automation ✅ Working v1.7.18, --session default, persistent headless Chrome session
OpenCLI bind approach ✅ Working Opens URL via Chrome then bind — avoids automation window hang
Browser navigation by voice ✅ Working Opens URLs, searches, page interaction

🎯 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
Gemini Live (primary) ✅ Working Cloud-hosted, real-time audio + native video feed
Multi-LLM switching 📋 Deferred Incompatible with Live WebSocket — postponed
LangGraph orchestration 🔧 In Progress friday/reasoning.py — reasoning engine promoted from archive
Research tool ✅ Working friday/research.py — real-time web research + reports
Reasoning engine ✅ Working friday/reasoning.py — multi-step reasoning
Self-modifying code 🔧 In Progress friday/github.py — GitHub API-based self-modification
Multi-agent delegation (9 roles) ✅ Working Same roster as Jarvis — research, coding, reasoning, etc.
KYU personality adaptation ✅ Working 4-stage interview → preference learning → system prompt injection
Dreaming / session analysis ✅ NEW friday/dreaming.py — analyzes past sessions while idle, extracts patterns, updates vector memory + knowledge graph
Cron scheduler ✅ NEW friday/scheduler.py — schedule autonomous tasks: status checks, goal reviews, dream cycles, custom commands
Seamless GitHub Device Flow auth ✅ Fixed Hardcoded GitHub App (friday-from-ironman) — zero config, just run and authorize. Auto-opens browser, permanent non-expiring token
GitHub App integration ✅ NEW Iv23liuQ5XPhsBjONt9B — full permissions: read/write repos, PRs, issues, actions, workflows, deployments, pages, secrets, admin projects, codespaces, gists, profile

🧠 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
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)
│   │
│   ├── 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
│   │
│   ├── 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
│   │
│   ├── 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 Python, installs dependencies (skips already-installed), creates .env, adds friday to PATH, and verifies all modules.

After install, edit .env with your API keys, then run:

friday

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

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)
PICOVOICE_ACCESS_KEY Yes Wake word detection
SPOTIFY_CLIENT_ID Yes Spotify control
SPOTIFY_CLIENT_SECRET Yes Spotify auth
GROQ_API_KEY No Fast inference
ANTHROPIC_API_KEY No Claude (coming)
OPENAI_API_KEY No GPT (coming)

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/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
  • 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

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

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors