Voice Desktop Workflow Macros
Record desktop chores once and replay them by voice with checkpoints, approvals, and undo—no scripting required for freelancers and small teams.
Every knowledge worker has a handful of desktop rituals they repeat ten times a week: export a CSV from one app, rename it, drop it in a shared folder, open Slack, paste a status update, attach the file. The sequence is muscle memory—until it isn't. You forget a step, click the wrong window, or get interrupted mid-flow and spend five minutes reconstructing what you were doing. Keyboard Maestro and AutoHotkey can automate this, but authoring a reliable macro still means learning a scripting dialect, debugging selectors, and praying the UI doesn't shift after an update.
Built for Solo Founders, Developers, Side Hustlers.
Global voice and speech recognition software reached roughly $15.52B in 2024 and is projected to climb toward $38.15B by 2035, implying about 8.5% CAGR as enterprise adoption of dictation, IVR, and hands-free interfaces accelerates (Market Research Future).
Suggested stack: Tauri 2 (Rust + web frontend), Whisper.cpp or faster-whisper (local ASR), Playwright + OS automation APIs, Next.js 15 + Vercel, Stripe Billing, Clerk. Weekend scope: about 10 hours.
The Problem
Every knowledge worker has a handful of desktop rituals they repeat ten times a week: export a CSV from one app, rename it, drop it in a shared folder, open Slack, paste a status…
The Solution
Sayflow (working name) is a desktop app that watches you perform a workflow once—clicks, keystrokes, app switches, file operations—then compiles it into a visual macro you can…
Market Research
Global voice and speech recognition software reached roughly $15.52B in 2024 and is projected to climb toward $38.15B by 2035, implying about 8.5% CAGR as enterprise adoption of…
Competitive Landscape
Microsoft Power Automate Desktop — Bundled into the Microsoft 365 ecosystem with cloud flow connectors and UI automation for Windows. Strong for IT-led rollouts, weaker for…
Business Model
Free Guide ($0) — PDF + installer, 3 macros, local-only storage, community Discord—the SEO and YouTube funnel
Recommended Tech Stack
Tauri 2 (Rust + web frontend) — Lighter than Electron, native OS permissions for accessibility APIs, single codebase for macOS and Windows. React or Svelte for the checkpoint…
AI Prompts to Build This
Copy these build prompts into Claude, Cursor, or your AI coding tool. Create a free account to unlock the full research behind them.
1. Project Setup
Build the weekend MVP of "Sayflow": a macOS desktop app that records a desktop chore once, shows it as a timeline you can edit, and replays it step by step with approval gates. Everything stays on the machine. Replay is started from a button or a hotkey this weekend. Stack: Tauri 2 (a Rust backend and a React with TypeScript front end), rusqlite for local storage, a global input listener for mouse and keys, the macOS accessibility permission flow. No account, no cloud and no outside service. Tables (SQLite, local only): - macros(id, name, hotkey, steps_json, created_at) - step_screenshots(id, macro_id, step_index, path) - run_history(id, macro_id, started_at, status, failed_step, log_json) status is success, failed or cancelled Screens: a system tray menu (Record, Stop, Library), the Library, the Checkpoint Editor (a vertical timeline) and a Run window with an approval dialog. Env vars (names only): none. The app asks for the macOS accessibility and screen recording permissions at first run. Do not build: billing, license keys or activation, voice triggers or Whisper, Windows or Linux, Playwright steps, cloud sync, an undo for file moves. Done when: the app launches from the tray, asks for the two permissions, and creates the SQLite file with the three tables.
2. Core Feature
Build the one feature that proves Sayflow: record once, see exactly what will happen, run it with a person in charge. 1. Record: on Record, listen to global mouse down and up, key presses and active window changes. Save each as a typed step { type: "click" | "key" | "wait" | "app_switch", payload, screenshot_path } with a screenshot kept on disk. Never record the keys typed into a password field: when macOS secure input is on, save one blank step labeled "password field" and no key data. 2. On Stop, open the Checkpoint Editor: a vertical timeline with a thumbnail, an editable label and a "require approval before run" switch for each step. Turn the approval switch on by default for steps that look destructive: Command or Control with Delete, or an active window titled Trash, Delete or Send. 3. Save the macro to SQLite with its steps. 4. Dry run highlights the target of each step on screen and presses nothing. A real run executes the steps in order with a 200 millisecond pause between them. 5. Before a step with approval required, pause and show a native dialog with the step's label and screenshot and Continue and Stop buttons. 6. A global stop hotkey (Escape pressed three times) ends a run at once and records cancelled. A failed step stops the run, records the failed step and offers Resume from step N. 7. Write each run to run_history with a step-by-step log. Rules: all data stays on the machine. Say so in the app. Never run a step silently that was marked for approval. Never record in a password field. Empty state: with no macros, show Record and a two-line explanation of what is captured. Done when: recording a three-step chore saves it with screenshots, a Delete key step is marked for approval automatically, a dry run changes nothing, a real run pauses at the approval and the triple-Escape stop ends it and logs cancelled.3. Landing Page
Build a one-page landing site for Sayflow, a desktop recorder that replays chores with you in charge. Hero: "Record your desktop once. Run it again whenever you like." Sub: "Show Sayflow a chore, review each step on a timeline and run it with approval before anything risky." One button: Join the waitlist. Sections: a timeline mockup with one approval gate, how it works in three steps (record, review, run), a safety block (approval gates, a stop hotkey, nothing leaves your machine) and an FAQ on which systems work today (macOS first), what is recorded and how it differs from a script recorder. Waitlist: store the email in a waitlist table in Supabase. No other service. Style: Geist, a warm off-white background, a dark accent, a placeholder for a 90-second demo video. Done when: the page renders on a phone and a submitted email appears in the waitlist table.
4. Branding Package
Use a design or image tool for this one. A coding agent cannot draw a logo. Brand for Sayflow: a wordmark and an icon that suggest a cursor leaving a dotted trail that ends at a check. Colors: warm off-white, near-black and one violet. Type: Geist, with Geist Mono for step labels. Deliverables: wordmark, icon, a timeline step card with an approval gate state that differs by shape as well as color, a tray menu icon in one color, and one launch graphic. Done when: each deliverable is saved in one folder and the approval gate is distinguishable without color.