Skip to content

Latest commit

 

History

History
73 lines (64 loc) · 2.08 KB

File metadata and controls

73 lines (64 loc) · 2.08 KB

ELI Full Package (Linux)

This is a clean, separate voice automation daemon (does not modify your existing scripts). It provides:

  • Wake word -> STT -> router -> actions
  • Dictation mode (types into active window)
  • Robust app/open/url handling
  • Spotify control via playerctl -p spotify
  • YouTube helper via Playwright (clicks "Skip" when available; does not bypass unskippable ads)
  • Guardrails for dangerous commands (confirm-required patterns)

0) System deps (Ubuntu/Debian)

sudo apt update
sudo apt install -y python3-venv python3-dev build-essential ffmpeg \
  portaudio19-dev libsndfile1 \
  playerctl xdotool xclip wmctrl \
  firefox

Wayland note

If you're on Wayland and xdotool doesn't work, use ydotool instead:

sudo apt install -y ydotool
sudo systemctl enable --now ydotool

1) Install

From the folder where you unpacked this zip:

python3 -m venv .eli_full_venv
source .eli_full_venv/bin/activate
pip install -U pip
pip install -r requirements.txt
python -m playwright install firefox

2) Configure

cp .env.example .env
nano .env

Key settings:

  • ELI_AUDIO_IN: optional device index (leave blank for default)
  • ELI_WAKE: wake words (avoid "heli" if it false-triggers)
  • ELI_ALWAYS_AWAKE=0 recommended
  • ELI_OLLAMA_BASE=http://127.0.0.1:11434
  • ELI_ROUTER_MODEL: small fast model
  • ELI_CHAT_MODEL: your big chat model
  • ELI_SPOTIFY_CMD: spotify launch command (spotify | flatpak run com.spotify.Client | snap run spotify)

3) Run

source .eli_full_venv/bin/activate
source .env
python -m eli_full

4) Example voice commands

  • "Eli open youtube"
  • "Eli skip ad" (clicks Skip if available)
  • "Eli dictation start" then speak; "Eli dictation stop"
  • "Eli open spotify"
  • "Eli resume spotify"
  • "Eli pause spotify"
  • "Eli create document numbers 1 to 100"
  • "Eli type hello world"
  • "Eli run rm -rf / confirm" (dangerous ops require the confirm phrase)

Ethics/terms note

This project can click the existing "Skip Ads" button on YouTube when it appears. It does not attempt to bypass unskippable ads or block ad delivery.