Skip to content
Tadoru
English
Esc
navigateopen⌘Jpreview
On this page

Recording

Starting, stopping, and pausing the daemon, checking status, and the lifecycle of stored data.

Recording is done by a background daemon (a launchd agent). Everything is controlled with short commands:

Command Effect
tadoru start Register with launchd and start background recording
tadoru stop Stop recording and unregister from launchd (data is kept)
tadoru pause --for 30m Pause; without --for, pauses indefinitely until resume
tadoru resume Resume from pause
tadoru status Check daemon state, event counts, and store info

Starting

tadoru start

On startup, permissions are checked. If any are missing, recording does not start and the command exits with code 3 explaining what to grant (see the permissions guide).

Running in the foreground

Two ways to observe what’s happening without daemonizing:

tadoru start --foreground   # same configuration as the daemon, in the foreground (dev/debug)
tadoru record --stream      # stream raw events as NDJSON to stdout

record is designed for piping and experimentation; use --out events.jsonl to write to a file. For everyday recording, use start.

Checking status

tadoru status
tadoru status --json   # for agents and scripts
{
  "running": true,
  "paused": false,
  "since": "2026-08-16T08:00:00Z",
  "uptime_s": 3600,
  "events_captured": 12345,
  "last_event_ts": "2026-08-16T08:59:58Z",
  "store": { "path": "~/.local/state/tadoru/store.sqlite", "size_bytes": 5242880, "retention_hours": 48, "oldest_event_ts": "2026-08-14T09:00:00Z" },
  "capture": { "sources": ["app", "window", "ui", "input", "browser"], "text_content": false },
  "permissions_ok": true
}

When there is no daemon to act on (status, stop, etc.), the exit code is 4.

Pausing and resuming

pause is handy when you want recording off just for a meeting, a screen share, or a sensitive task:

tadoru pause --for 30m   # resumes automatically after 30 minutes
tadoru pause             # paused until you resume
tadoru resume

Data lifecycle

  • Data lives only in the local SQLite store at ~/.local/state/tadoru/store.sqlite (override with --store).
  • Events older than 48 hours are deleted automatically by default (retention_hours, see configuration).
  • To delete manually, use purge:
tadoru purge --before 24h   # delete events older than 24 hours
tadoru purge --all          # delete everything (with a confirmation prompt)

Was this page helpful?