← Discover MCPs and Agents
F
AgentAI & MLGitHub

Friday

Your real-life F.R.I.D.A.Y. — a voice-controlled, self-improving AI OS that perceives your screen, remembers everything, writes production code, and gets smarter every week. One founder = one team.

Links

README

From the repo.

Python 3.11+ React 18 FastAPI SQLite MIT License 632 tests passing

Friday

Your real-life F.R.I.D.A.Y. — an autonomous AI operating system for solo founders.

Voice-controlled. Self-improving. ADHD-native. Device-aware. Budget-tracked.
One founder + Friday = a full engineering team.

"Will that be all, sir?" — No. Friday does more. Friday is what comes after Jarvis.


In the MCU, Tony Stark replaced J.A.R.V.I.S. with F.R.I.D.A.Y. — an AI that didn't just answer questions, but ran the suit, managed the lab, and made the calls when Tony couldn't. This project is the real-world version: an always-on AI chief of staff that perceives your workflow, remembers everything, writes production code, controls your devices, manages your budget, and gets smarter every week — autonomously.

Friday is not a chatbot with a microphone. It's an operating system that wraps around your entire workflow — perceiving what you're doing via screen awareness, remembering everything across projects in a battle-tested dual-SQLite memory system, generating production-quality code through an OpenCode factory with writer≠reviewer enforcement, controlling your PC and server by voice, dictating text hands-free, analyzing your screen with vision models, setting timers and reminders, delivering morning briefings, monitoring server health around the clock, decomposing complex requests into multi-step background tasks, tracking your spend per AI provider, shadow-testing new models before promoting them, and getting measurably better every Saturday — without you lifting a finger.

The thesis: most of what slows a solo founder down isn't coding ability — it's context-switching overhead, decision fatigue, forgotten context, and the constant tax of re-explaining what you're working on. Friday eliminates all of it.

You: "Friday, build the entire payment module for ACFO"
       ↓ intent classified (COMPLEX) → memory retrieved (project facts, architecture decisions)
       ↓ brain decomposes into 5-step plan → TaskManager executes in background
       ↓ Step 1: research existing payment patterns → Step 2: generate models
       ↓ Step 3: generate API endpoints → Step 4: write tests → Step 5: review
       ↓ progress streamed to dashboard + voice notification on completion
Friday: "Payment module complete. 5 steps, 12 files modified. Tests pass. Cost: $0.23."

You: "Open YouTube" → 0 tokens. Pattern-matched, browser opens instantly.
You: "Set a timer for 25 minutes" → 0 tokens. Timer set, TTS confirmation.
You: "How's the server?" → 0 tokens. Health report via TTS.
You: "What's on my screen?" → Screenshot → vision model → spoken description.
You: "Dictate" → Continuous speech-to-text typed at your cursor. Zero brain tokens.

Why Friday Exists

ProblemHow Friday solves it
"What was I working on?"Dual-SQLite memory (FACTS + WARM) + morning briefings reconstruct your full context
Context-switching kills momentumADHD-native focus tracking detects drift, parks side-quests, nudges you back
AI coding tools produce inconsistent outputOpenCode factory: spec → generate → review (writer≠reviewer) → validate → deliver
Every AI tool starts from zeroFriday remembers architecture decisions, coding patterns, and past mistakes permanently
Token costs spiral with dumb context injection60-70% of commands use zero tokens (pattern-matched). Complexity classification + budget tracking for the rest
AI assistants require constant hand-holdingScreen awareness + full device control + dictation + proactive timers/reminders
No way to know if a cheaper model would workShadow validation A/B tests new models silently, promotes when statistically proven
Complex tasks need babysittingTaskManager decomposes into steps, executes in background, retries failures, reports when done
Server goes down at 3 AMSystem monitor checks CPU/memory/disk/services every 60s, auto-restarts, sends alerts

Architecture

┌───────────────────────────────────────────────────────────────────────┐
│                         YOUR MACHINE (Client)                          │
│  ┌────────────┐  ┌─────────────┐  ┌───────────────────────────────┐  │
│  │ Wake Word  │  │   Screen    │  │  Full PC Device Controller    │  │
│  │ (Porcupine)│  │  Awareness  │  │  Windows / Linux / macOS      │  │
│  └─────┬──────┘  └──────┬──────┘  │  50+ actions: apps, windows,  │  │
│        │  Mic capture    │ Window  │  media, clipboard, files,     │  │
│        ▼    + VAD        ▼ track   │  system, network, brightness  │  │
│  ┌─────────────────────────────────┴──────────────────────────────┐  │
│  │   WebSocket Client (WSS + Auth) + Dictation Mode              │  │
│  │   Voice stream │ Dictation stream │ Device results              │  │
│  └──────────────────────┬─────────────────────────────────────────┘  │
└─────────────────────────┼────────────────────────────────────────────┘
                          │  Persistent connection (JWT / shared secret)
┌─────────────────────────┼────────────────────────────────────────────┐
│  SERVER                 ▼                                             │
│  ┌────────────────────────────────────────────────────────────────┐  │
│  │              Category-Based Orchestrator                        │  │
│  │  1. Transcribe → 2. Classify intent (10 categories)            │  │
│  │  3. Route: builtin│device│server│proactive│mode│screen│        │  │
│  │           memory│adhd│briefing│brain  → 4. Respond + TTS       │  │
│  │  5. Log outcome (model=pattern_match, cost=$0 for 60-70%)      │  │
│  └───┬──────────┬──────────┬──────────┬─────────┬──────────────┘  │
│      │          │          │          │         │                   │
│  ┌───▼───┐  ┌──▼───┐  ┌──▼──────┐  ┌▼──────┐ ┌▼───────────────┐ │
│  │Memory │  │Brain │  │OpenCode │  │Task   │ │Device Control  │ │
│  │FACTS  │  │Router│  │Bridge   │  │Manager│ │PC (50+ cmds)   │ │
│  │WARM   │  │GPT/  │  │build,   │  │multi- │ │Server (svc,    │ │
│  │runs   │  │Claude│  │critic,  │  │step   │ │docker, deploy, │ │
│  │routing│  │Ollama│  │research │  │plans  │ │git, security)  │ │
│  └───────┘  └──────┘  └─────────┘  └───────┘ └────────────────┘ │
│                                                                    │
│  ┌────────┐ ┌────────────┐ ┌────────┐ ┌──────────────────────┐   │
│  │ Budget │ │   Shadow   │ │  ADHD  │ │  Self-Improve        │   │
│  │Tracker │ │ Validator  │ │Tracker │ │ Saturday Review       │   │
│  │per-prov│ │ A/B test   │ │focus,  │ │ Night Shift          │   │
│  │caps    │ │ promote/   │ │drift,  │ │ Morning Briefing     │   │
│  │runway  │ │ reject     │ │nudge   │ │ Consolidation        │   │
│  └────────┘ └────────────┘ └────────┘ └──────────────────────┘   │
│                                                                    │
│  ┌────────────┐ ┌──────────────┐ ┌────────────────────────────┐  │
│  │ Proactive  │ │   System     │ │  Screen Reader             │  │
│  │ Engine     │ │  Monitor     │ │  Vision model analysis     │  │
│  │ timers,    │ │  CPU/mem/    │ │  OCR, summarize, explain   │  │
│  │ reminders, │ │  disk/svc    │ │  error, evaluate design    │  │
│  │ pomodoro,  │ │  alerts,     │ │                            │  │
│  │ breaks     │ │  auto-restart│ │                            │  │
│  └────────────┘ └──────────────┘ └────────────────────────────┘  │
│                                                                    │
│  ┌─────────────────────────────────────────────────────────────┐  │
│  │  Dashboard (React SPA) — dark-mode mission control          │  │
│  │  Memory · War Room · Tasks · Routing · Focus · Chat         │  │
│  │  Monitor · Timers · Reminders · Screen · Dictation          │  │
│  └─────────────────────────────────────────────────────────────┘  │
└────────────────────────────────────────────────────────────────────┘

Features

Zero-Token Intent Classification

The biggest cost optimization: 60-70% of voice commands never touch an LLM. A comprehensive regex-based classifier handles 10 intent categories with extracted parameters:

CommandCategoryTokens used
"Open YouTube"device/open_url0
"Set a timer for 25 minutes"proactive/timer0
"Restart nginx"server/service_restart0
"What's on my screen?"screen/analyze0 (classification)
"Remember that ACFO launches June 15"memory/store0
"I'm working on the payment module"adhd/set_focus0
"Morning briefing"briefing/deliver0
"Dictate"mode/dictation_start0
"What time is it?"builtin/time0
"Build me a payment module"brain/thinkContext-budgeted

Always-On Perception

  • Wake word detection via Porcupine — say "Friday" and talk naturally
  • Screen awareness — tracks your active window, detects which project you're in, captures context every 5 seconds
  • Voice Activity Detection — knows when you've stopped speaking, handles interruptions
  • < 2 second end-to-end voice response latency for simple commands

Full PC & Server Control

50+ device actions by voice or dashboard — never touch a terminal:

PC actions (cross-platform: Windows, Linux, macOS):

  • Window management — open, close, minimize, maximize, snap left/right, focus, list, kill process
  • Apps & browser — open any app, open known sites (YouTube, GitHub, Gmail, etc.), Google search, new tab, close tab
  • Media — play/pause, next/previous track, volume control, mute
  • Typing & clipboard — type text, press keys, copy, paste, select all, undo, redo, save
  • Files — create folders, delete files, find files, list directories, zip/unzip, disk usage
  • System — lock screen, sleep, shutdown, restart, brightness, DND, system info, Wi-Fi status, Bluetooth

Server actions (direct shell on remote server):

  • Service management — restart/start/stop nginx, postgres, redis, docker, pm2
  • Monitoring — server health, disk space, CPU/memory, active sessions, service logs
  • DevOps — deploy projects, rollback, git status/log/pull, Docker container listing
  • Database — list tables, check sizes, run queries
  • Security — firewall status, SSL cert expiry, open ports

Dictation Mode

Say "Friday, dictate" and everything you say is transcribed and typed at your cursor in real time. Zero brain tokens — pure STT passthrough. Say "Friday, stop dictating" to end.

Screen Understanding

Vision-powered screen analysis via multimodal models:

  • "What's on my screen?" — general description of visible content
  • "Read this to me" — OCR-style text extraction
  • "Summarize this page" — condensed summary of what you're looking at
  • "What does this error mean?" — error explanation and suggested fixes
  • "Rate this design" — UI/UX evaluation and feedback

Proactive Engine

Timers, reminders, and productivity tools — all by voice:

  • Timers — "Set a timer for 25 minutes", "Cancel the timer", "Show my timers"
  • Reminders — "Remind me to call the dentist in 30 minutes", persistent across restarts
  • Pomodoro — "Start a pomodoro" → 25-minute focus timer with break prompt
  • Break nudges — configurable reminders to stand up and stretch
  • Deadline alerts — warns when stored deadlines are approaching
  • Budget anomaly detection — alerts when daily spend spikes above normal

System Monitoring

Always-on server health checks running every 60 seconds:

  • CPU, memory, and disk usage tracking with configurable thresholds
  • Watched service health (nginx, postgres, redis, etc.)
  • Alert cooldown to prevent notification spam
  • Auto-restart for crashed services
  • Critical alerts delivered via TTS to voice client
  • Dashboard endpoint for real-time health snapshots

Morning Briefing

Delivered automatically on your first interaction of the day (after 5 AM):

  • Yesterday's work summary from WARM memory
  • Server health status
  • Pending decisions awaiting review
  • Budget alerts and runway status
  • Monday includes Saturday Review highlights
  • Focus suggestions for the day

Battle-Tested Memory System

Two SQLite databases, zero vector DB dependency for core operations:

  • memory.db — FACTS (permanent knowledge), WARM (session context with TTL), pending decisions, people, projects
  • runs.db — every brain call, OpenCode invocation, and device command logged with model/tokens/cost/latency/success
  • Routing table view — aggregated success rates per agent × model × task type, auto-generated from runs_log
  • Token-budgeted retrieval — trivial tasks get zero context, complex tasks get full memory
  • Contradiction detection — new facts automatically supersede old ones
  • Weekly consolidation — deduplicates, archives stale entries, cleans expired WARM

OpenCode Factory

Not a single LLM call — a full production pipeline with writer≠reviewer:

  1. Task routed to OpenCode @build agent (Claude/GPT via Fireworks)
  2. Code generated → @critic agent reviews (different model family)
  3. If critic score < 7/10, flagged for retry with diagnosis
  4. Compliance audit for sensitive files (payments, auth, PII)
  5. Every invocation logged: agent, model, tokens, cost, success/fail
  6. Max 2 retry cycles — fail with diagnosis, never silently ship broken code

Complex Task Orchestration

For requests that need more than one step:

  • Brain decomposes into a TaskPlan (2–8 atomic steps)
  • TaskManager executes steps sequentially: code_gen, device, research, shell, brain_only
  • Progress streamed to dashboard + voice client via WebSocket
  • Failed steps retry with escalation (up to 2 retries)
  • Completed tasks store learnings in memory for future reference

Budget Tracking & Shadow Validation

  • Per-provider budgets with hard caps that cannot be bypassed
  • Runway projection — alerts when any provider projected to exhaust within 60 days
  • Shadow validation — register a cheaper model as shadow, run both in parallel silently, promote when statistically proven (≥95% success rate over 50+ runs)
  • All recommendations stored as pending decisions for your review

ADHD Operating System

Built for brains that context-switch:

  • Focus stack — ordered list of what you're working on, always visible
  • Drift detection — notices when you're bouncing between projects, nudges you back
  • Scope parking — "park that" saves your current task and asks what's next
  • Session tracking — "how long have I been working?" gives elapsed time
  • Daily progress — "am I on track?" gives you a focus context summary
  • Calibration — adjusts thresholds weekly based on your actual behavior

Self-Improvement Engine

Friday gets better every week without you doing anything:

  • Saturday Review — 7 automated jobs: routing optimization, memory consolidation, prompt refinement, self-correction mining, ADHD calibration, shadow evaluation, budget projection
  • Night Shift — runs test suites, server health checks (disk/memory/CPU), pre-research pending topics, generates morning briefing data
  • Morning briefing — overnight events, budget status, pending decisions count, shadow validation progress, suggested focus for today
  • Report as fact — every weekly report stored in memory.db for longitudinal analysis

Dashboard (React SPA)

Dark-mode mission control — not AI slop:

  • Home — key metrics, 14-day spend chart, budget alerts, quick command input
  • Memory — browse/search/edit FACTS, WARM entries, and pending decisions
  • War Room — project status, commitments, deadlines, priority triage
  • Tasks — run history, success rates, create multi-step tasks
  • Routing — provider budgets, spend charts, routing stats, active shadows
  • Focus — current task, context switches, focus history
  • Chat — text-based conversational interface with Friday
  • Settings — server config, budget caps, agent management
  • Monitor — real-time server health (CPU, memory, disk, services)
  • Timers & Reminders — set/cancel/list via dashboard API
  • Screen Analysis — trigger screenshot + vision analysis from dashboard
  • Dictation Control — start/stop dictation from dashboard

Built with React 18, TypeScript, Vite, Tailwind CSS, Recharts. DM Sans/DM Mono typography.

Security

  • WebSocket auth — JWT tokens or shared secret, validated on every connection
  • Dashboard API auth — Bearer token middleware on all /api/ endpoints (health exempt)
  • Shell whitelist — only approved command prefixes can execute
  • Destructive command approval — rm -rf, kill -9, chmod 777 require explicit user approval
  • Budget hard caps — enforced at the provider level, cannot be bypassed by any code path

Performance

  • Request timing middleware — Server-Timing and X-Response-Time-Ms headers on every response
  • Slow request logging — warns on any request > 2 seconds
  • Brain retry with backoff — 429 rate limits retry 3x with exponential delays (2s, 5s, 15s)
  • DB locked retry — SQLite lock contention handled with 4-step exponential backoff
  • OpenCode crash recovery — subprocess crashes caught, logged, returned as graceful errors

Quick Start

Prerequisites

  • Python 3.11+
  • Node.js 18+ (for dashboard build)
  • A brain provider API key (OpenAI, Anthropic, or local Ollama)

Install

git clone https://github.com/user/friday.git
cd friday
python -m venv .venv && source .venv/bin/activate  # or .venv\Scripts\activate on Windows
pip install -e ".[dev]"

# Build the dashboard
cd dashboard && npm install && npm run build && cd ..

Configure

cp .env.example .env
# Edit .env — at minimum set:
#   BRAIN_PROVIDER=openai
#   BRAIN_API_KEY=sk-...
#   BRAIN_MODEL_NAME=gpt-4o-mini

Run

# Terminal 1 — Server (serves API + dashboard at http://localhost:8765)
make run-server

# Terminal 2 — Client (requires mic + speakers)
make run-client

# Say "Friday, hello" and start talking
# Or open http://localhost:8765 for the dashboard

Run Tests

make test          # 632 tests
make lint          # ruff check

Project Structure

friday/
├── client/                    # Local PC daemon
│   ├── audio/                 # Wake word, mic capture, VAD, TTS playback, dictation mode
│   ├── screen/                # Window tracking, focus stack, project detection
│   ├── connection/            # WebSocket client with auto-reconnect + dictation stream
│   ├── device/                # Platform-agnostic device controller
│   │   ├── platform_base.py   # Abstract base: 35+ async methods
│   │   ├── linux.py           # Linux: wmctrl, xdotool, amixer, playerctl, nmcli
│   │   ├── windows.py         # Windows: pywin32, PowerShell, pynput, psutil
│   │   ├── mac.py             # macOS: osascript, AppleScript, open, pmset
│   │   └── controller.py      # Unified dispatch with clipboard history
│   └── main.py
├── server/                    # Remote server (FastAPI)
│   ├── api/                   # WebSocket, dashboard REST API (45+ endpoints), auth, health
│   ├── pipeline/              # Category-based orchestrator, intent classifier (10 categories),
│   │                          # STT (Sarvam/Whisper), TTS (Sarvam/Piper)
│   ├── brain/                 # Multi-provider LLM router with 429 retry + vision support
│   ├── memory/                # Dual-SQLite store, retrieval, writer, consolidation
│   ├── actions/               # Shell, filesystem, OpenCode bridge, device controller,
│   │                          # screen reader (vision analysis)
│   ├── tasks/                 # TaskManager for multi-step background execution
│   ├── budget/                # Per-provider budget tracking with hard caps
│   ├── adhd/                  # Focus tracker, interventions, weekly calibration
│   ├── proactive/             # Timers, reminders, pomodoro, break nudges, deadline alerts,
│   │                          # morning briefing, budget anomaly detection
│   ├── monitoring/            # Always-on system monitor (CPU/mem/disk/services), auto-restart
│   ├── code_factory/          # Legacy pipeline (spec → decompose → validate)
│   ├── frontend/              # Design system, component gen, visual QA
│   ├── improvement/           # Saturday review, night shift, shadow validation, reports
│   ├── war_room/              # Persistent operational state document
│   └── main.py                # FastAPI app with timing + auth middleware
├── shared/                    # Protocol (WebSocket messages), models, constants
├── dashboard/                 # React SPA (Vite + TypeScript + Tailwind + Recharts)
│   ├── src/
│   │   ├── components/        # Sidebar, Header, Toasts, Card primitives
│   │   ├── pages/             # Home, Memory, WarRoom, Tasks, Routing, Focus, Chat, Settings
│   │   ├── hooks/             # useFetch, usePolling, useToast
│   │   └── lib/               # API client for all 45+ dashboard endpoints
│   └── dist/                  # Build output served by FastAPI
├── deploy/                    # Systemd service files
├── scripts/                   # Setup, seeding
├── data/                      # Runtime data (gitignored)
│   ├── memory.db              # Facts, warm context, decisions, projects, people
│   ├── runs.db                # All run logs, routing table, spend views
│   └── deploy_config.json     # Deploy/rollback scripts per project
└── tests/                     # 632 tests (unit, integration, end-to-end)

Configuration Reference

All configuration via environment variables (loaded by Pydantic Settings):

VariableDefaultDescription
BRAIN_PROVIDERopenaiLLM backend: openai, anthropic, local (Ollama)
BRAIN_API_KEY—API key for the configured brain provider
BRAIN_MODEL_NAMEgpt-4o-miniModel name passed to the provider
OPENAI_API_KEY—OpenAI key (also used for Codex tool routing)
ANTHROPIC_API_KEY—Anthropic key for Claude models
SARVAM_API_KEY—Sarvam AI key for STT/TTS
PORCUPINE_ACCESS_KEY—Picovoice key for wake word detection
OPENCODE_PATHopencodePath to the OpenCode CLI binary
OPENCODE_WORKING_DIR.Default working directory for OpenCode
FRIDAY_DATA_DIR./dataRoot directory for SQLite databases and logs
FRIDAY_TOKEN_BUDGET_DAILY500000Hard daily token cap
FRIDAY_IMPROVEMENT_BUDGET_WEEKLY100000Token budget for Saturday Review
FRIDAY_NIGHT_SHIFT_ENABLEDtrueEnable overnight automation tasks
FRIDAY_MORNING_BRIEFING_ENABLEDtrueEnable morning briefing
FRIDAY_SATURDAY_REVIEW_DAY5Day of week for Saturday Review (0=Mon, 5=Sat)
FRIDAY_SATURDAY_REVIEW_HOUR3UTC hour to run the Saturday Review
FRIDAY_LOG_LEVELINFOLog level (DEBUG, INFO, WARNING)
FRIDAY_WS_SHARED_SECRET—WebSocket auth token (simple mode)
FRIDAY_WS_JWT_SECRET—JWT signing key (enables JWT auth mode)
FRIDAY_VISION_MODELaccounts/fireworks/models/qwen3-30b-a3bVision model for screen analysis
FRIDAY_MONITOR_INTERVAL60System monitor check interval (seconds)
FRIDAY_MONITOR_CPU_THRESHOLD90CPU usage alert threshold (%)
FRIDAY_MONITOR_MEMORY_THRESHOLD85Memory usage alert threshold (%)
FRIDAY_MONITOR_DISK_THRESHOLD90Disk usage alert threshold (%)
FRIDAY_BREAK_INTERVAL_MINUTES90Minutes between break nudges

See .env.example for the complete list with all tuning options.

How It Works

The Category-Based Pipeline

Every interaction flows through the same pipeline, whether from voice or dashboard:

  1. Transcribe — Audio → text via Sarvam AI (primary) or local Whisper (fallback)
  2. Classify — Pattern-match against 80+ regex rules across 10 categories. 60-70% of commands resolve here at zero token cost. Unmatched commands get heuristic complexity scoring.
  3. Route — Dispatch to the matching category handler:
CategoryHandlerExamples
builtinInstant responsetime, date, stop, status, verbosity
devicePC DeviceControlleropen apps, volume, screenshot, clipboard
serverServer DeviceControllerrestart nginx, deploy, git status, logs
proactiveProactiveEnginetimers, reminders, pomodoro
modeClient commanddictation start/stop
screenScreenReader + vision modelanalyze, OCR, summarize, explain error
memoryMemoryStorestore, recall, archive, pending decisions
adhdFocusTrackerset focus, park task, session duration
briefingMorningBriefingdaily brief, EOD summary, weekly review
brainFull LLM pipelinecomplex reasoning, code generation, planning
  1. Respond — Text response + TTS audio to voice client + dashboard broadcast
  2. Log — Every interaction → runs_log (model, tokens, cost, latency, success) for routing optimization

Token Frugality

Not every request needs GPT-4. Friday classifies complexity before any model call:

ComplexityContext BudgetExample
TRIVIAL0 tokens"open youtube", "volume 50", "what time is it"
SIMPLE1,000 tokens"what's this function do?", "explain this error"
MEDIUM2,000 tokens"build a login page", "refactor this module"
COMPLEX3,500 tokens"redesign the auth system", "build the entire payment module"

60-70% of daily interactions are pattern-matched at zero cost. The remaining 30-40% use token-budgeted context retrieval.

Memory Architecture

 ┌──────────────────┐     ┌──────────────────┐
 │    memory.db      │     │     runs.db       │
 │                   │     │                   │
 │  facts            │     │  runs_log         │
 │  warm_context     │     │  (auto-populated) │
 │  pending_decisions│     │                   │
 │  people           │     │  VIEWS:           │
 │  projects         │     │  routing_table    │
 │  kv_store         │     │  daily_spend      │
 │  outcome_index    │     │  monthly_spend    │
 │                   │     │  provider_runway  │
 └────────┬──────────┘     └────────┬──────────┘
          │                         │
   ┌──────▼─────────────────────────▼──────┐
   │         Context Retriever              │
   │  • Token budgeting per complexity      │
   │  • Project facts + identity facts      │
   │  • Recent WARM context                 │
   │  • Pending decisions                   │
   │  • Exchange history                    │
   └────────────────────────────────────────┘

Voice Commands Reference

Click to expand full command list

Device (PC)

CommandAction
"Open YouTube / GitHub / Slack / ..."Opens known site in browser
"Open terminal / VS Code / ..."Launches application
"Close / quit Chrome"Closes window
"Switch to / focus on Chrome"Brings window to front
"Minimize / maximize Slack"Window management
"Kill Chrome"Force-kills process
"What's open?"Lists open windows
"Search for react hooks tutorial"Google search
"Volume 50" / "Mute"Audio control
"Play" / "Pause" / "Next track" / "Skip"Media control
"Type hello world"Types text at cursor
"Press ctrl+c" / "Copy" / "Paste" / "Undo"Keyboard shortcuts
"Take a screenshot"Screen capture
"Lock screen" / "Sleep" / "Shut down"System power
"Brightness 80"Display brightness
"Do not disturb"Toggle DND
"System info" / "What's my IP" / "CPU"System information
"Wi-Fi status" / "Bluetooth"Network toggles
"Create folder called X" / "Delete file X"File operations
"Zip / unzip X"Archive management

Server

CommandAction
"Restart / start / stop nginx"Service management
"Server status" / "How's the server"Health check
"Logs for nginx"Tail service logs
"Deploy acfo" / "Rollback acfo"Deployment
"Git status friday" / "Git pull friday"Git operations
"List containers" / "Docker ps"Docker management
"Who's logged in"Active sessions

Productivity

CommandAction
"Set a timer for 25 minutes"Timer
"Remind me to call the dentist in 30 minutes"Reminder
"Start a pomodoro"25-min focus session
"Cancel the timer"Cancel timer
"Show my timers / reminders"List active
"I'm working on the payment module"Set focus
"What am I working on?"Current focus
"Park that"Save current task for later
"What's parked?"List parked tasks
"How long have I been working?"Session duration
"Morning briefing"Daily briefing
"End of day"EOD summary

Screen & Dictation

CommandAction
"What's on my screen?"Vision analysis
"Read this to me"OCR text extraction
"Summarize this page"Page summary
"What does this error mean?"Error explanation
"Rate this design"UI evaluation
"Dictate" / "Start dictating"Begin dictation mode
"Stop dictating"End dictation mode

Memory

CommandAction
"Remember that ACFO launches June 15"Store fact
"What do you know about ACFO?"Recall facts
"Forget about the old API key"Archive fact
"What are my pending decisions?"List decisions

Builtins (zero tokens)

CommandAction
"What time is it?"Current time
"What's the date?"Current date
"Stop" / "Cancel" / "Never mind"Cancel current task
"Status"System status
"Be brief" / "Be detailed"Change verbosity

Deployment

Linux Server (systemd)

sudo cp deploy/friday-server.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now friday-server

Client (User Session)

cp deploy/friday-client.service ~/.config/systemd/user/
systemctl --user enable --now friday-client

See deploy/README.md for full instructions.

Roadmap

  • Multi-device sync (phone + desktop)
  • Plugin system for custom tools
  • Real-time pair programming mode with screen sharing
  • Native mobile companion app
  • Calendar integration for proactive scheduling
  • Slack/Discord bot mode
  • MCP server for tool integrations
  • Spotify/YouTube Music deep integration
  • Multi-language voice support

Contributing

Contributions welcome. Please:

  1. Fork the repo and create a feature branch
  2. Write tests for new functionality
  3. Run make test && make lint before submitting
  4. Keep PRs focused — one feature per PR

License

MIT — see LICENSE for details.


Friday — Jarvis was the butler. Friday is the chief of staff.

Collected info

  • ★ 7 stars
  • Language: Python
  • Source updated: 9/14/2026