Compare How it works Reminders API cost FAQ Download for Windows
v0.1.0 · Windows · Free & open-source

The AI assistant that stays on your device.

LifeOS is a voice-first companion for Windows named Yogi. Talk or type to set reminders, get answers from the web, and hear your inbox - with no account, no telemetry, and your data living in a file on your own machine.

◆ No account required ◆ No telemetry ◆ Works offline ◆ MIT licensed
LifeOS - Yogi
The LifeOS main window: Ask Yogi with a chat sidebar and a voice conversation prompt.
Scroll to explore
On-device by default No account, no sync No telemetry Bring-your-own AI key Free & MIT
How LifeOS compares

One desktop companion vs. a stack of single-purpose tools.

Great tools already exist for each slice of this - a launcher here, a dictation box there, an inbox agent somewhere else. LifeOS folds those workflows into one local-first Windows app. Here is an honest side-by-side, drawn only from each product's official site.

LifeOS
Local-first companion

Voice-first, privacy-first AI companion for Windows - reminders, chat, web answers, and email, on-device by default.

This project
Raycast
Launcher / command bar

An extendable keyboard-driven launcher with built-in AI chat and 1000+ extensions. macOS-first, Windows in beta.

raycast.com
Wispr Flow
Voice dictation

AI voice-to-text that turns speech into polished writing inside the apps you already use, across desktop and mobile.

wisprflow.ai
Superwhisper
Voice dictation

AI voice-to-text with on-device transcription models and screen-aware modes. Works offline on supported hardware.

superwhisper.com
DeskWand
Desktop automation

An open-source, local-first AI desktop agent that automates repeatable computer tasks with your own model and key.

deskwand.com
AskDesk
Windows launcher

A keyboard-first AI productivity launcher for Windows, with AI assist, quick actions, and voice commands on its Pro tier.

getaskdesk.com
Jace
AI email assistant

A cloud AI executive assistant that organizes your inbox, drafts replies, and automates email workflows.

jace.ai
Feature comparison of LifeOS and similar tools, based on each product's official website
Product Voice NL reminders Desktop launcher Email Local-first Open source Platforms Bring your own key Offline Pricing
LifeOS Windows Free · MIT
Raycast macOS · Win (beta) · iOS Partial Partial Free / from $8·mo
Wispr Flow Win · macOS · iOS · Android Free / from $12·mo
Superwhisper Partial Win · macOS · iOS Free / from $8.49·mo
DeskWand Win · macOS · Linux Partial Free
AskDesk Windows Partial Free / from $8·mo
Jace Web From $20·mo
Supported Not offered / not documented Partial Limited, plan-gated, or beta

Compiled only from each product's official website (researched July 2026). “Not documented” means the official site does not list the feature - it may still exist. Products evolve; verify current details on their sites.

In the box

Everything Yogi can do today.

A focused feature set that actually ships in v0.1.0 - no vaporware.

Voice conversations

Hold a real, persistent conversation with Yogi across auto-titled, reopenable chat sessions.

Natural reminders

Create reminders by talking or typing - Yogi asks instead of guessing when the time is unclear.

Web search with sources

Ask live-fact questions and get answers with citations - and an honest note when a search fails.

Natural voice output

Six voice personalities with a speed control and preview - streamed from OpenAI or offline Windows voices.

On-device speech-to-text

Speech is transcribed by a model that ships inside the app - offline by default, cloud only if you opt in.

Schedules & history

See every active schedule, pause them all at once, and review a filterable history of what fired.

Email summaries

Turn each new email into a chat with a summary, action items, and a spoken heads-up.

Reminders that act

A reminder can run a web lookup when it fires and speak the answer - not just the note you left.

Works offline

Time, greetings, reminders, schedules, and settings all work with zero network and no key.

Under the hood

Complete application flow

Every stage from the download link to a spoken answer - the real path through LifeOS, with the on-device work in the middle and OpenAI touched only when you've turned a cloud feature on.

Get it & launch

Per-user install, no admin.

Download the installer

A single ~155 MB .exe (a portable build is available too).

Install it (per-user, no UAC)

Adds Desktop, Start-Menu & uninstall entries - no admin prompt. (The portable build just runs, no install.)

Launch & single-instance lock

A second launch just focuses the running window - never a duplicate.

Initialize & secure

All local, before any UI shows.

Open & migrate the local database

SQLite via node:sqlite (WAL) opens lifeos.db, runs migrations to schema v8, and seeds 50 settings.

Install session security

A default-deny network filter + CSP go up first. Nothing can reach the internet yet.

Initialize services

Conversation engine, action dispatcher, wall-clock scheduler, provider registry, and Gmail sync are wired up.

Desktop ready

Hidden audio, popup & launcher windows spin up; the tray icon appears and Alt+Shift+Space is armed. Overdue reminders are caught up.

Listen & understand

On-device by default.

You speak or type

Press the mic or the global hotkey. The mic engages only on your action - no wake word, no always-on listening.

Capture → 16 kHz PCM

An AudioWorklet down-samples the mic to 16 kHz and streams frames to the main process. Audio is never written to disk.

Speech-to-text

Transcribed on-device by the bundled sherpa-onnx Zipformer - or, if you opt in, by OpenAI gpt-4o-transcribe with automatic fallback to sherpa.

Intent routing

A local router answers time / greeting / settings instantly with no model. Otherwise the gated LLM (gpt-4o-mini, strict JSON) classifies the turn - and if there's no key, an offline parser takes over.

Reminder

Re-routed to the local parser → a confirmation card. The LLM never creates it; nothing saves until you confirm by click or “yes.”

Chat / question / research

Answered by the model; live-fact turns trigger a web search (gpt-4o-mini-search-preview) and return an answer with sources.

Email tools

When Gmail is connected, a new email is summarized into its own chat with action items - grounded, local, opt-in.

Act & respond

OpenAI only when enabled.

OpenAI - gated

Requests reach api.openai.com only when a capability is enabled, keyed & consented, billed to your account. A reliability guard rewrites any fabricated success into an honest failure.

Voice output

Spoken through a hidden audio window - offline Windows voices by default, or streamed OpenAI gpt-4o-mini-tts via Media Source Extensions when you've enabled cloud voices.

Displayed everywhere at once

The reply fans out to every window - main chat, popup, and launcher stay in sync on one live conversation.

Persist

Locally, on your disk.

Saved to your conversation history

The turn is written to chat_turns, and any fired reminder to history - all in your local SQLite file, never uploaded.

Offline reminder commands

Create reminders that work completely offline.

LifeOS understands many reminder phrases with a parser built into the app. As long as your wording matches a supported pattern, the reminder is created instantly - with no internet connection and no OpenAI API calls. Here is exactly what the current version understands.

A parser on your device

A deterministic parser reads your phrase, finds the date and time with a local date library, and builds the reminder on your machine. No request ever leaves your PC.

No OpenAI for reminders

Reminders never call OpenAI. Even with a key connected, the model never creates a reminder - it is always built by this local parser, so it costs nothing and works offline.

When AI steps in

The cloud model is used only if you have enabled it and you type something that is not a reminder or a local command - a general question, for example. Reminders themselves stay offline.

Every offline reminder has three parts.

Give LifeOS a trigger, a time, and what to do. Leave one out and it asks a quick question instead of guessing.

Triggerremind me, set a reminder, don't forget, wake me
Timein 10 minutes, at 6 PM, tomorrow, on 25 July, every Monday
What to doto call John, to drink water, to submit the report

Remind me tomorrow at 9 AM to attend the meeting

Examples that work offline.

Every phrase below was run against the current parser and creates a reminder instantly.

Basic & one-time

Remind me in 10 minutes to drink water
Remind me in 2 hours to take a break
Remind me at 6 PM to water the plants
Remind me tomorrow at 9 AM to attend the meeting
Remind me tonight at 8 PM to call Rahul

Date & time

Remind me on Friday at 9 AM to submit the report
Remind me next Monday at 7 PM to pack
Remind me on 25 July at 6 PM to pay the electricity bill
Remind me on 25 December at 9 AM to send wishes
Remind me at 18:00 to water the plants (24-hour clock)

Relative time

Remind me in 30 minutes to stretch
Remind me in 45 mins to stretch
Remind me after 30 minutes to check the oven
Remind me in 3 days at 9 AM to renew the subscription
In 30 minutes remind me to stretch (word order is flexible)

Recurring - daily & weekly

Remind me every day at 8 AM to take vitamins
Remind me daily at 10 PM to sleep
Remind me every Monday at 7 AM to exercise
Remind me every Friday at 6 PM to submit my weekly report
Remind me every Sunday at 9 AM to call my family

Natural variations

Different phrasings the parser also understands.

Don't let me forget to call the dentist tomorrow at 11 AM
Set a reminder for 5 PM to leave the office
Remind me tomorrow at 5 PM to call John

LifeOS asks a quick question

Recognized offline, but missing one detail - so it asks instead of guessing.

Remind me at 6 -> 6 AM or 6 PM?
Remind me Friday -> what time on Friday?
Remind me tomorrow morning -> which time?
Remind me every Monday -> at what time?
Remind me on Friday at 9 AM -> remind you about what?
Not available from a chat phrase: monthly, yearly, every-other-week and every-N-days repeats are not parsed in chat - set those with the + New reminder editor on the Schedules screen (still fully offline). “Every day” and a specific weekday like “every Monday” are the repeats chat understands. A phrase with no trigger word (for example “every day at 8 AM” on its own) is treated as a normal message, so start with “remind me” or “set a reminder.”

Online vs offline.

Works offline - no key, no network

  • The reminder parser (intent, date & time)
  • Daily & weekly recurring reminders
  • Wall-clock scheduling (fires while running or in the tray)
  • Local SQLite storage of reminders & history
  • Windows notifications and a spoken reminder
  • Complete, filterable reminder history

Needs your OpenAI key - not for reminders

  • General questions & open conversation
  • Web-search answers with sources
  • Gmail email summaries & auto-research
  • Higher-accuracy cloud speech-to-text
  • More natural cloud voices

Creating reminders never appears on this side - it is always local.

The offline reminder pipeline.

Speak or typemic or composer
On-device STT+ wording fix
Parseintent, date & time
Confirmclick or say yes
Save locallySQLite
Notify + historyon time

With cloud features off, every step above runs on your device - the network is never touched.

Best results

Phrasing that works every time.

  • Start with “remind me” (or “set a reminder”) - it gives the cleanest reminder titles.
  • Include a clear time: an offset like “in 20 minutes”, or a clock time with AM/PM or 24-hour.
  • Add “to <action>” so LifeOS knows what the reminder is about.
  • For repeats, use “every day”, “daily”, or a specific weekday like “every Monday” - and give a time.
  • Avoid a bare hour like “at 6” - add AM or PM so it does not have to ask.
  • Nothing is saved until you confirm, so you can always correct the proposed reminder first.
Do reminders need an internet connection?
No. Parsing, scheduling, storage, and notifications all run on your device. Reminders work with zero network and no account.
Do reminders use my OpenAI credits?
No. The model never creates reminders. A reminder is always built by the local parser, so it makes no API calls and costs nothing - even when a key is connected.
Can I say “every month” or “every year”?
Not from a chat phrase - in chat, LifeOS repeats daily or on a specific weekday. For monthly, yearly, every-N or custom repeats with an end date, use the + New reminder editor on the Schedules screen. That editor is also fully offline.
What happens if I leave out the time or the task?
LifeOS asks a short follow-up rather than guessing - for example “6 AM or 6 PM?” for an ambiguous hour, or “what time?” when a day has no time. A wrong-half-of-day reminder is worse than a quick question.
Why local-first matters

Privacy enforced in code, not in a policy.

Most assistants send everything to a server and ask you to trust a document. LifeOS flips that: it runs on your machine, and cloud access is opt-in, per-feature, and uses your own key.

Your data, one file

Reminders, chats, and settings sit in a local SQLite database you can open and read yourself.

Default-deny network

A built-in filter blocks every outbound request until you switch on a cloud feature.

No tracking, ever

No analytics SDK, no crash reporter, no usage stats, no update ping. LifeOS doesn’t know you exist.

Bring your own key

Cloud features use your OpenAI key, encrypted with Windows secure storage and billed to you.

What cloud AI costs

Free to run. Pennies when you opt in.

LifeOS itself is free. Cloud features use your own OpenAI key and are billed to you directly. Here's roughly what that adds up to - so there are no surprises.

Estimated OpenAI usage cost per capability
CapabilityOpenAI modelApprox. priceFree offline alternative
Speech-to-textgpt-4o-transcribe~$0.006 / minute of audio✓ sherpa-onnx, on-device
Chat & responsesgpt-4o-mini~$0.15 / 1M input · $0.60 / 1M output tokens✗ needs a key
Text-to-speechgpt-4o-mini-tts~$0.015 / minute of audio✓ Windows voices
Web searchgpt-4o-mini-search-previewgpt-4o-mini tokens + a small per-call search fee✗ needs a key
Our worked estimate assumes a fully-cloud voice exchange: ~1 minute of audio in and out, one gpt-4o-mini turn (~1,200 input + ~150 output tokens). STT ≈ $0.006 + chat ≈ $0.0003 + TTS ≈ $0.0075. Text-only chat, or voice with the offline STT/TTS defaults, costs far less because it skips the per-minute audio charges.
~$0.014a 1-minute voice exchange
(all cloud features on)
~$0.14a 10-minute conversation
(≈ ten exchanges)
~$1.40100 one-minute conversations
(≈ a light month)
$0.00the same, fully offline
(local STT + Windows voice)

Free forever - no key, no network

  • Natural-language reminders, recurrence, snooze & history
  • On-device speech-to-text (sherpa-onnx)
  • Offline Windows voices
  • Local commands - time, date, greetings, help, “show schedules”
  • Notifications, schedules, settings, theme, reset

Needs your OpenAI key - opt-in, per feature

  • Smarter conversational chat (gpt-4o-mini)
  • Higher-accuracy cloud speech-to-text
  • Natural cloud voices (streamed)
  • Web search with real citations
  • Gmail email summaries & auto-research
Pricing changes. These figures are estimates checked against OpenAI's published rates in July 2026 and are shown only to set expectations. Always verify the current numbers on OpenAI's official pricing page before relying on them - your actual cost depends on your usage, prompt length, and OpenAI's current rates.
Download

Get LifeOS for Windows.

Free, open-source, and yours to keep. Install it and start talking to Yogi in minutes.

Download for Windows
◆ Installer · .exe ~155 MB Windows · 64-bit ◆ v0.1.0
Heads-up: this is the Windows installer - it sets LifeOS up for your user only, with no admin prompt. It isn’t code-signed yet, so Windows SmartScreen may show “Windows protected your PC.” Choose More info → Run anyway to continue. Prefer to build it yourself? Grab the source on GitHub.
Operating systemWindows 10 / 11
Architecture64-bit (x64)
Disk space~400 MB
Memory~200 MB idle
AccountNone required
PriceFree · MIT
FAQ

Honest answers.

Do my reminders fire when LifeOS is closed?
Reminders fire while LifeOS is running, including when it’s tucked away in the system tray (closing the window with ✕ keeps it running by default). If you fully quit LifeOS or shut down your PC, reminders won’t fire until you open it again - and when you do, it tells you what you missed rather than firing old alarms late. This is deliberate: LifeOS refuses to install a hidden background service.
Is my data sent anywhere?
Not by default - LifeOS makes zero network requests with its default settings, enforced in code by a filter that blocks anything not on an allowlist. The only exception is when you enable a cloud AI feature and add your own OpenAI key; then the text of that command (plus the current date and time) goes directly to OpenAI under your account. Your reminders, history, settings, and audio are never sent.
Do I need an OpenAI key?
No. LifeOS works fully offline for reminders, time, schedules, on-device speech-to-text, and offline voices. A key is optional and unlocks smarter chat, cloud speech-to-text, more natural voices, web search, and email summaries. You bring your own key and OpenAI bills you directly - the app itself is free.
Does Yogi listen in the background or use a wake word?
No. There’s no wake word and no always-on listening. Yogi only records when you press the mic or the global hotkey, and audio is transcribed on your device and never written to disk. A wake word is on the roadmap but is not in this release.
Which platforms are supported?
Windows 10 (version 1809 or newer) and Windows 11, 64-bit only. macOS, Linux, mobile, and web are not available in this release. The core is written in portable TypeScript, so other platforms are a future possibility.
Why does Windows warn me during install?
The installer isn’t code-signed yet, so Microsoft SmartScreen shows a generic “Windows protected your PC” warning. Click More info → Run anyway to proceed. Code signing is planned for a future release.
How do I remove my data?
Open Settings → Danger Zone → “Reset local data.” It permanently deletes the reminders, history, and settings in your LifeOS data folder and nothing else on your device. Note that uninstalling the app does not delete this folder - that’s intentional, so an accidental uninstall never loses your data.