Introduction

Installation

FRIDAY ships a setup script for each platform. They install system dependencies, the Piper TTS binary, download the default GGUF / Whisper models, and write a starter .env.

Linux

bash · linux
git clone https://github.com/SanthoshReddy352/Friday_Linux.git
cd Friday_Linux
chmod +x setup.sh
./setup.sh            # deps, Piper TTS, default models, .env
source .venv/bin/activate
python main.py

The Linux script also offers an optional autostart prompt and installs optional screenshot / window tools when available (wmctrl, xdotool, grim, spectacle, scrot, maim). Full walkthrough: SETUP_GUIDE.md.

Windows

powershell · windows
git clone https://github.com/SanthoshReddy352/Friday_Linux.git
cd Friday_Linux
.\setup.ps1          # deps, Piper for Windows, default models, .env
.\.venv\Scripts\Activate.ps1
python main.py

The PowerShell script accepts flags:

  • -SkipModels — don't download model files (bring your own).
  • -SkipPlaywright — skip browser-automation runtime.
  • -Force — re-run steps even if outputs exist.
Windows first run
You may need to relax the PowerShell execution policy and install Microsoft C++ Build Tools for the native llama.cpp build. The dedicated SETUP_GUIDE_WINDOWS.md covers execution policy, env-var scope, build tools, long-path issues, and audio device discovery.

Default models

Setup downloads a quantized local stack. Override the chat/tool downloads with the env vars below, or drop your own .gguf files into models/.

chat
Qwen3.5-0.8B-Q4_K_M.gguf · ~533 MB
tool / planner
Qwen3.5-4B-Q4_K_M.gguf · ~2.7 GB
speech-to-text
faster-whisper base.en · ~140 MB
vision
SmolVLM2-2.2B-Instruct-Q4_K_M.gguf · ~1.7 GB
embeddings
all-MiniLM-L6-v2 + ms-marco reranker · ~120 MB
overrides
FRIDAY_CHAT_MODEL_URL · FRIDAY_TOOL_MODEL_URL

Environment & secrets

Runtime behaviour lives in config.yaml; secrets and machine overrides go in .env (copied from .env.example at setup). A couple you may want:

.env
# Required on both OSes for the wake word
FRIDAY_PORCUPINE_KEY=your-picovoice-access-key

# Optional model download overrides
FRIDAY_CHAT_MODEL_URL=https://...
FRIDAY_TOOL_MODEL_URL=https://...

Verify it runs

bash
python main.py --text     # text-only smoke test
# then type:  set brightness to 60

If you see a brightness change (or a clear "capability not available" on unsupported hardware) rather than a fabricated "Brightness set to 60.", the deterministic router is doing its job. See How routing works.

Cold-start latency
The embedding router lazy-loads on first query (~700 ms). The Mem0 extraction server, when enabled, takes ~3 s to warm up — the first turn after boot may have empty recalled facts.