Get Started

Docs

Verbal (AI) entries

Updated Apr 23, 2026

Speak out loud what you just did, and LogForMe parses it into an entry. The fastest way to log time in the app.

Availability

This feature is available only on the hosted version, with Starter (10 calls/day) and Premium (20 calls/day) plans.

Opening the verbal entry dialog

  • Hotkey: Ctrl/Cmd+Alt+V
  • Button: the microphone icon in the Time Frame header.

The flow

  1. Grant microphone permission the first time (one-shot browser prompt).
  2. Press Record (Alt+R) and say your entry. Examples:
    • "I worked for an hour and 15 minutes on the login page."
    • "Spent 30 minutes reviewing client feedback, not billable."
    • "Half an hour yesterday on wireframes."
  3. Stop recording. There are three ways:
    • Press the stop button.
    • Press the hotkey (Alt+S).
    • Stop talking - LogForMe auto-stops after 2 seconds of silence.
  4. LogForMe uploads the audio and parses it. A preview appears showing what the AI extracted:
    • Type (time or fixed)
    • Duration or amount
    • Description
    • Billable (yes/no). Defaults to yes if you did not specify.
  5. Review, then Confirm Entry to save, or Discard to throw it away.

What the AI is good at

  • Durations in natural language: "an hour and a half," "twenty minutes," "two hours fifteen."
  • Dates if you say them: "yesterday," "last Monday," "March 12th."
  • Billable/non-billable when you say one of those words. It will assume billable as the default if you did not specify.
  • A useful one-line description pulled from what you said.

What the AI is not good at

  • Inventing clients or projects. It only fills the entry fields. You have to be on the right Time Frame already.
  • Hearing you over loud background noise.
  • Languages we don't ship yet - model performance degrades outside the five UI languages. Start with English or your UI language.
  • Sarcasm, jokes, editorial asides. "I wasted an hour" - it'll log the hour.

Quality tips

  • Speak naturally. You don't need to use a command format.
  • Lead with the duration. "One hour on the Tuesday planning call" parses more reliably than "I worked on the Tuesday planning call, which took about an hour."
  • Say "billable" or "not billable" explicitly if it matters. If you don't say, LogForMe defaults to billable.
  • Keep it short. Under 30 seconds is ideal. The 60-second limit is for when you really need it.

Recording limits

  • Max 60 seconds per recording.
  • Auto-stop at 2 seconds of silence. This is by design - a natural pause means you're done.
  • You can immediately start another recording if you need to log a second entry.

Rate limits

  • Starter: 10 verbal entries per day, reset at UTC midnight.
  • Premium: 20 verbal entries per day.

Rate-limit cap is per-call, not per-word. A 5-second recording and a 60-second recording each count as one call.

Privacy

  • Audio is streamed to our backend for transcription. We use an external transcription services to process your audio.
  • Transcription is returned to you, and the audio is not retained past the request.
  • Voice data is not used for training or any purpose other than producing your entry.
  • If this makes you uncomfortable, skip this feature - all entry creation paths (type, stopwatch, verbal) produce identical results.

Common errors

  • "Could not access microphone" - your browser denied mic permission. Check browser site settings → allow microphone → try again.
  • "AI ERROR: ..." - something went wrong server-side (bad audio, transcription failure, LLM timeout, missing details). Try again. If it persists, file a bug.
  • "No speech detected" - you probably stopped before saying anything meaningful. Record again.

Why this is here

There are two hard things in life: naming things and cache invalidation. This feature tackles the first - you might’ve worked on several things and struggle to label them clearly. It also saves you from clicking around when you don’t feel like it. This is part of a broader set of AI-powered commands currently in development. As for the second issue… let me know if you’ve figured an easy solution :)