- Overview
- Key Features
- Installation
- Quick‑Start Commands
- Configuration
- Using the Floating Widgets
- Advanced Usage
- Development & Contributing
- License
Zeke is a sleek, Python‑based desktop companion that brings natural‑language AI, voice control, and system‑wide dictation to any Windows machine. It lives in the background, stays out of your way, and surfaces when you need it – all with a premium, dark‑theme UI that feels right at home on modern Windows desktops.
“Zeke, open my inbox.” → Zeke listens, interprets, and executes – instantly.
The newest addition, widgetflo, is a lightweight, always‑on‑top dictation pill that transforms spoken words into typed text anywhere you place the cursor, without ever stealing focus.
| Feature | Description |
|---|---|
| Voice Commands | Speak natural language to launch apps, send messages, control windows, etc. |
AI Assistant Pill (zeke widget) |
Small floating pill that activates Zeke’s LLM‑driven capabilities. |
Dictation Pill (zeke widgetflo) |
System‑wide voice‑to‑text widget – click → speak → text appears at cursor instantly. |
Background Scheduler (zeke watch) |
Runs health checks, activity logs, and scheduled routines 24/7. |
| Modular CLI | All functionality reachable via a tidy zeke command set. |
| Premium UI | Dark black background, light‑purple accents, smooth micro‑animations, no hover borders. |
| Fast & Accurate STT | Low‑latency transcription using Whisper‑fast with VAD filtering. |
| Config‑driven | All behaviour (max recording time, silence threshold, theme colors) is tweakable in zeke.json. |
-
Prerequisites
- Windows 10/11 (64‑bit)
- Python 3.12 (recommended – the bundled venv
venv312is pre‑configured) - A working microphone and speaker.
-
Clone the repository
git clone https://github.com/your‑org/zeke.git cd zeke -
Create and activate the virtual environment
python -m venv venv312 .\venv312\Scripts\activate
-
Install dependencies
pip install -r requirements.txt # optional: GPU‑accelerated Whisper models pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121 -
Run the diagnostic command to ensure everything is ready:
zeke doctor
It will verify Python version, microphone access, and required packages.
# General workflow
zeke doctor # Verify your environment
zeke add ./my-project # Register a project (optional)
zeke run my-project # Run analysis / AI on a project
# Voice‑centric commands
zeke listen # Activate voice mode (say "Hey Zeke")
zeke widget # Launch the AI assistant pill
zeke widgetflo # Launch the dictation pill (system‑wide voice‑to‑text)
# Automation & monitoring
zeke watch # Start background health & activity monitoringRun zeke --help or zeke <command> --help for detailed flag information.
All settings live in zeke.json at the repository root. Example excerpt:
{
"voice": {
"stt_model": "small", // Whisper model size
"dictation_max_seconds": 30, // Max recording length
"dictation_silence_ms": 2500, // Silence timeout before auto‑stop
"stt_language": "en" // Language code for Whisper
},
"ui": {
"theme": {
"background": "#000000",
"accent": "#A78BFA",
"text": "#FFFFFF"
}
}
}Edit these values to customise recording limits, colors, or the Whisper model you prefer.
- Appearance: 40 × 40 px rounded capsule, pure black with a subtle light‑purple outline.
- Interaction:
- Click → mic activates (purple glow) and you can speak a command.
- Zeke processes the request via its LLM and performs the action.
- Click again to cancel or when idle.
- Focus handling: The pill never takes keyboard focus, so your current window remains active.
- Purpose: System-wide voice-to-text; ideal for dictating emails, notes, or code without touching the keyboard.
- Design:
- Compact taskbar-sized
180 × 36 pxpill with a flat dark-black background (#0a0a0f) and light-purple outline (#A78BFA). - Monospace typography (Geist Mono / SF Mono / JetBrains Mono) matching the Vercel/Linear style, rendered at
11pxfor all states. - Slight
6pxborder radius, creating a visual appearance matching native Windows taskbar search inputs. - IDLE State: Horizontally centered group consisting of a scaled
12pxmicrophone icon, a vertical divider, and "Start Recording" text in light purple (#A78BFA). Hovering smoothly fades the text to white (#FFFFFF) and morphs the mic to a richer deep purple. - RECORDING State: Compact, left-aligned layout featuring
■ Stopon the left, a vertical divider, the elapsed timer in the center, another vertical divider, and a compact 5-bar dynamic waveform on the right. - TRANSCRIBING State: Horizontally centered group containing a rotating purple arc spinner (
24pxdiameter) orbiting concentrically around a centered microphone icon with a clean6pxspacing gap, a vertical divider, and "Transcribing..." text in light purple (#A78BFA). - Success State: Horizontally centered group featuring a green check-mark icon inside a green circle, a vertical divider, and "Pasted!" text in success green (
#22C55E). - Error State: Styled consistently with the light-purple design system — contains a centered warning triangle, a vertical divider, and the error message in light purple (
#A78BFA) over the dark-black background.
- Compact taskbar-sized
- Workflow:
- Place the cursor exactly where you want the text to go.
- Click the pill → starts recording immediately.
- Speak naturally for as long as you need — automatic silence detection is disabled so it never starts transcribing/pasting while you are thinking or paused.
- Click the pill again to stop recording → transcription finishes in-memory using fast, low-latency STT.
- The transcribed text is pasted instantly at the cursor position (keyboard focus is never stolen from the active window, and the cursor stays in place).
- Customization: Colors and configurations are tweakable via
zeke.json.
- Testing UI states:
zeke widgetflo --test-statescycles through all visual states (IDLE → RECORDING → TRANSCRIBING → DONE → ERROR) for rapid UI verification. - Programmatic control: Import
FloatingDictationPillandDictationControllerfromzeke.widgetto embed the widget into your own PyQt applications. - Extending STT: The
STTclass now offers._transcribe_fast()for low‑latency dictation. You can call it directly if you need custom handling.
- Fork the repo and create a feature branch.
- Run tests (if any) with
pytest:pytest -q
- Lint using
ruffto keep the codebase clean:ruff check . - Submit a Pull Request – describe the change, include screenshots or GIFs of UI updates, and ensure all CI checks pass.
All contributions follow the same premium UI guidelines (dark theme, light‑purple accents, micro‑animations). Feel free to suggest new widget ideas!
Distributed under the MIT License. See LICENSE for full text.
Enjoy a smoother, voice‑first workflow with Zeke – the AI companion that never gets in your way.