Help

Frequently Asked Questions

Jump to: Windows install & SmartScreen · macOS install & Accessibility · Timeline behavior · Privacy · Pro & billing

Windows install & SmartScreen

“Windows protected your PC — Microsoft Defender SmartScreen prevented an unrecognized app from starting.” Is DayReplay safe?

Yes — this warning is expected for newly-signed software.

It is a reputation alert, not a virus alert. Installing from the Microsoft Store avoids it entirely — SmartScreen only gates the direct .msi download. If you use the .msi, click More info → Run anyway to proceed. The sections below explain why the warning appears and how to verify the binary independently.

Windows SmartScreen warning showing 'Windows protected your PC' for latest-windows.msi
The dialog you'll see on first install. Use “More info → Run anyway.”

Why it appears

Microsoft Defender SmartScreen shows this warning for any Windows binary that is not Authenticode-signed, or is signed but has not yet accumulated download reputation. The DayReplay MSI is Authenticode-signed by Zaahr Inc. via Azure Trusted Signing — the Publisher line in the warning dialog reads Zaahr Inc., which is the cert identity. The warning persists for newly-signed identities until Microsoft Defender accumulates download reputation; once enough installs run successfully without being reported, the warning stops appearing for new releases.

How to install anyway (single click, no system-settings change)

  1. On the “Windows protected your PC” dialog, click More info (not Don't run).
  2. A Run anyway button appears below the description. Click it.
  3. The installer proceeds normally.

Verify the binary independently

Three options for independent verification:

On macOS? See verifying the macOS download for the equivalent notarization, VirusTotal, and SHA-256 checks against the .dmg.

Context for the warning

The SmartScreen warning reflects software-signing reputation, not an assessment of the application itself. DayReplay's privacy posture is unchanged on this page: captured activity stays on the device, no telemetry, no cloud sync, no remote crash reporting. See the privacy policy for the full breakdown of what does and does not cross the network.

Where does the Windows installer go and how do I uninstall?

The MSI installs DayReplay per-user under %LocalAppData%\Programs\DayReplay and registers an auto-start entry under HKCU\Software\Microsoft\Windows\CurrentVersion\Run\DayReplay so it launches when you log in. Uninstall via Settings → Apps → Installed apps → DayReplay → Uninstall. Uninstalling does not delete your captured database (%AppData%\DayReplay\dayreplay.db) — that is intentional so an accidental uninstall doesn't wipe history. To wipe everything, delete that file manually.

macOS install & Accessibility

How do I install DayReplay on macOS?

System requirements: macOS 13 Ventura or newer, Apple Silicon only.

DayReplay's macOS build is native arm64 (M1 / M2 / M3 / M4). Intel Macs are not supported today; the Windows build remains an option if you have a parallel Windows workflow.

  1. Download the .dmg from the homepage (your browser saves it with a versioned filename like DayReplay-1.0.0.dmg — the Content-Disposition header on thelatest-macos.dmg URL stamps the saved filename with the release version). The disk image and the .app inside are both signed with a Developer ID certificate and notarized by Apple, so Gatekeeper will not block them.
  2. Double-click the .dmg to mount it. A window opens showing the DayReplay app icon next to an Applications folder shortcut.
  3. Drag the DayReplay icon onto the Applications folder shortcut. macOS will prompt for your admin password once to copy the app into the system-wide /Applicationsfolder — this is the standard macOS install convention (Slack, Spotify, Notion, Bartender all work the same way).
  4. Eject the mounted disk image (right-click in Finder sidebar → Eject) and launch DayReplay from /Applications or via Spotlight. Look for the icon in the menu bar at the top-right of your screen — DayReplay runs as a menu-bar utility (no dock icon, no Cmd+Tab presence; same pattern as Bartender, Stats, iStat Menus). Click the icon to open the timeline window. On first launch, macOS adds DayReplay to your Login Items so it auto-starts (menu-bar only) on every login.
  5. On first launch, macOS will prompt you to grant Accessibility permission (see below).
Where did DayReplay go? Check the menu bar, not the dock.

DayReplay deliberately runs without a dock icon — same as Bartender or Stats. After install, the icon appears in the macOS menu bar (top-right of the screen). Click it to open the timeline window. There's no entry in Cmd+Tab either; come back to the app via the menu-bar icon.

How do I verify the macOS download is genuine?

Unlike Windows SmartScreen, macOS Gatekeeper does not warn on first launch — the .dmg and the .app inside are both signed with our Developer ID certificate and Apple has notarized them, so the system trusts the download out of the box. If you still want to independently verify the bytes before trusting them, three options:

On Windows? See verifying the Windows download for the equivalent Authenticode, VirusTotal, and SHA-256 checks against the .msi.

Why does DayReplay ask for Accessibility permission on macOS?

Accessibility is the only system permission DayReplay ever requests.

No Screen Recording, no Input Monitoring, no Full Disk Access, no Automation. Without Accessibility, capture falls back to process names only.

macOS guards window-title and browser-tab metadata behind the Accessibility (AX) permission. DayReplay uses AX to read:

Without Accessibility, DayReplay still runs but can only record the process name (e.g. Code, Chrome) — no titles, no URLs, no tab list. That makes the timeline much less useful for invoicing or review.

How to grant it

  1. Open System Settings → Privacy & Security → Accessibility.
  2. Toggle DayReplay on (you may be asked for your password).
  3. DayReplay auto-detects within ~30 seconds; you can also quit and relaunch to pick up the permission immediately.
DayReplay's Accessibility permission dialog on macOS: 'Allow Accessibility Access for DayReplay', listing the active app and window title and browser URL and tab list, with Open System Settings, Continue anyway, and Retry buttons
The prompt DayReplay shows on first launch. The indigo dot in the title bar marks it as the genuine DayReplay dialog — click Open System Settings to jump straight to the Accessibility toggle.

DayReplay does not request Screen Recording, Camera, Microphone, Full Disk Access, or Automation permissions. Accessibility is the only system permission it ever asks for.

How do I uninstall DayReplay on macOS?

Three options, ranked by convenience. Method 1 (in-app) is the recommended path — it handles the Login Items + optional data + Keychain cleanup for you so you don't have to touch Terminal.

Method 1 — In-app uninstall (recommended)

  1. Click the DayReplay icon in the menu bar → Show DayReplay.
  2. In the main window, click the Updates button to open the Updates settings dialog.
  3. At the bottom of the dialog, click the muted Uninstall DayReplay link (turns red on hover).
  4. A confirmation dialog appears with two optional checkboxes:
    • Also delete captured activity history and logs — wipes ~/Library/Application Support/DayReplay/.
    • Also remove the stored license key from Keychain — removes the DayReplay Keychain entry. Leave unticked if you plan to reinstall on the same machine and want Pro to activate automatically.
  5. Click Uninstall. DayReplay drains its capture pipeline, unregisters its SMAppService Login Items entry, moves the app bundle to the Trash (one admin password prompt since /Applications/ is system-wide), and exits.

Method 2 — Bundled script (if the app won't launch)

  1. Right-click /Applications/DayReplay.app in Finder → Show Package Contents → open Contents/Resources/.
  2. Double-click Uninstall DayReplay.command. A Terminal window appears, runs the equivalent cleanup steps (kills any running DayReplay process, optionally wipes captured data + Keychain, moves the bundle to the Trash), and closes itself when done.
  3. The script is interactive: it prompts before deleting captured data or removing the Keychain entry, so you can opt in/out per category. Moving the bundle from /Applicationsto the Trash triggers a standard macOS admin password prompt via osascript.

Method 3 — Manual (full control)

  1. Quit DayReplay (menu bar icon → Quit DayReplay).
  2. Drag /Applications/DayReplay.app to the Trash. macOS will prompt for your admin password since /Applications is system-wide. The Login Items entry registered via SMAppService.mainApp is removed automatically when the bundle is trashed — no manual cleanup needed.
  3. (Optional) To wipe captured data, also remove ~/Library/Application Support/DayReplay/.
  4. (Optional) To remove your stored license key, open Keychain Access and delete the DayReplay entry.

Is auto-update on by default?

Yes — fresh installs ship with auto-update enabled (matches the convention of every modern productivity app: Chrome, Slack, 1Password, Linear, VS Code, and so on). Updates download silently in the background and stage themselves on disk as a “ready to install” bundle. You then explicitly opt in to the actual install by clicking Restart to Install in the Updates dialog (or Quit and install now in the modal that appears after a manual download).

OS shutdown, log out, and quitting from the tray menu do not auto-install staged updates — they persist on disk and stay ready until you opt in, even across reboots. So you'll never have an OS shutdown interrupted by a surprise installer running mid-shutdown, and a tray-Quit doesn't silently change which version you'll be running next.

To turn off auto-download: open Updates in the app and uncheck Enable auto-update. From then on, updates only download when you click Check for Updates. Existing users who previously toggled this setting either way keep their choice; only fresh installs see the new default.

What does the update process actually look like?

DayReplay's Updates dialog: an Enable auto-update checkbox, a single state-aware update button, the current version, and the last-checked time
The Updates dialog (shown here in its up-to-date state). A single state-aware button cycles through Check for Updates → Downloading → Restart to Install, with the auto-update toggle above it.

Can DayReplay force me to update?

Only in narrow circumstances. Each release manifest carries a minimum supported version field. Releases set it conservatively (well below the current version), so a normal release does not force anyone to update — you stay in control of when to click Restart to Install.

If a release ships a critical security fix or a server-side compatibility break, the minimum supported version may be raised so clients below it see a mandatory-update prompt that can't be deferred indefinitely. This is reserved for genuine “we cannot safely keep serving the old client” situations — routine releases keep the update optional, and the manifest field that drives this is published in the release notes when used.

What does the “Check for newer version” link do?

When DayReplay has an update staged and ready (the main button reads Restart to Install), a muted-text Check for newer version link appears just below it. Click the link to re-fetch the update manifest — if a newer release has shipped since you downloaded, the newer one gets downloaded and replaces the staged update in place. Useful if you've been deferring a restart for a while and want to know whether you should defer for an even-newer version, or whether the version you already have is still current.

The link is intentionally only shown in the Restart to Install state. During normal Check / Download / Idle states the main button already does the same job, and adding a second control there would just be visual noise.

Why does the Updates dialog have just one button instead of separate Check + Download buttons?

Modern desktop apps consolidate update controls into a single state-aware button. DayReplay's Updates dialog cycles through:

The label tells you what the next action is given the current state, so you always know what clicking the button will do. Same pattern as Chrome's About → Update, Slack's “Update available — Restart now”, VS Code's update prompt, and 1Password's Sparkle-based updater. The previous two-button layout (Check + Download) became confusing once auto-update was on by default, since Check would already trigger a background download.

Timeline behavior

How often does DayReplay capture activity?

Every 5 seconds while the app is running. The timeline UI then refreshes about every 30 seconds during active capture (after every 6 events) and at least once per minute regardless.

Why don't I see every tiny app switch?

Sessions shorter than 10 seconds are discarded to reduce noise from quick app flashes (alt-tabbing through windows, transient notifications). This is intentional and not configurable today.

Why are two chunks of the same app split into different sessions?

If the same app+domain is in focus but no captured events arrive within 90 seconds, DayReplay starts a new session. That gap usually means you stepped away, the screen locked, or the foreground really did change. Domain changes within a browser also start a new session — navigating from github.com to youtube.com splits, but clicking through pages within github.com extends the current session.

Why is browser URL/tab context sometimes missing?

Browser accessibility data can be transiently unavailable (browser still launching, a UI element not yet rendered, an OS-level AX timeout). DayReplay continues recording app/window activity and falls back to cached browser context where possible.

Can a browser update break URL or tab capture?

Occasionally, yes. DayReplay reads browser tab and URL data through the operating system's accessibility layer — UI Automation on Windows, the AX API on macOS. When a major Chrome, Edge, Firefox, or Safari release reshapes its tab strip or address bar in the accessibility tree, the walker that reads them can stop returning URL and tab data for that browser until a DayReplay update ships a matching fix. This is rare — typically a once-or-twice-per-year event per browser — but it does happen.

When it does, capture stays operational with reduced fidelity:

Fixes ship through the regular auto-update channel — keeping DayReplay updated is the single most important step to recover URL/tab capture quickly after a browser regression. If you're on the current DayReplay release and a specific browser is still missing tab context after a major browser update, email support@dayreplay.app with the browser name and version; most browser-AX regressions get a corresponding DayReplay update within a few days.

Privacy

Does DayReplay take screenshots?

No. DayReplay never reads pixel data. There is no screen recording either.

Does DayReplay record keystrokes?

No. There is no keylogger.

Where is my data stored?

Locally, in a single SQLite file: %AppData%\DayReplay\dayreplay.db on Windows or ~/Library/Application Support/DayReplay/dayreplay.db on macOS. On macOS the file is mode 0600 (owner-only). See the privacy policy for the full data model.

Where is my license key stored?

Does DayReplay phone home?

Two kinds of outbound request:

Pro & billing

What does Pro unlock?

Note: the Diagnostics / Support panel is available on Free too — privacy and support shouldn't sit behind a paywall.

How do I add a custom category rule?

Open the Categories dialog in the app. For browser activity, add a domain rule with the bare hostname (e.g. github.com). For desktop applications, add a process rule using the process name reported by Task Manager on Windows or Activity Monitor on macOS — without the .exe suffix on Windows. See the customize categories guide for a full walkthrough with screenshots.

How much does Pro cost?

$7/month or $59/year (≈ 30% off annual). Both billed through Lemon Squeezy. See the pricing page for the full comparison.

How does activation work?

Buy through the Lemon Squeezy checkout, receive a license key by email, then paste it into Activate Pro in the app. The app contacts Lemon Squeezy once to register your device, then revalidates at most once every 24 hours in the background to confirm the key is still valid. If you go offline, DayReplay trusts the cached state for up to seven days before pausing Pro features — the cached bundle stays on disk so the next successful validation flips you back to Pro without re-entering the key.

Can I use the same license on Windows and macOS? On how many devices?

Yes — the same key activates on either platform. Each activation registers as a separate device in your Lemon Squeezy account (labeled with your hostname so you can tell them apart), up to the per-key device limit (currently five). If you hit the limit, deactivate one device from inside the app or revoke it from the activation portal linked in your purchase confirmation email, then activate on the new machine.

How do I cancel or get a refund?

Subscriptions and refunds are handled by Lemon Squeezy (our Merchant of Record). Use the subscription-management link in your purchase confirmation email to cancel; for refunds, reply to the LS receipt or contact support@dayreplay.app and we'll process it through the LS dashboard.

Can I use DayReplay for billing?

Yes — that's exactly what Pro's CSV export is for. Review and sanity-check your daily timeline, correct categories where needed, then export. Combine daily CSVs in Excel or Sheets for weekly client rollups.