Snag help › Snag for the desktop

Where data goes

On this machine

PathHolds
~/.config/snag/config.tomlsettings
~/.local/share/snag/timer.sqlitethe local database: time entries, the running timer, the send queue, the local copy of projects and tasks, idle spans and their answers, and observation records
$XDG_RUNTIME_DIR/snag.sockthe socket keybind commands use to reach the daemon
$XDG_RUNTIME_DIR/snag.lockheld by the running daemon so only one runs
$XDG_RUNTIME_DIR/snag.statusone JSON line for the bar module, rewritten once a minute
$XDG_RUNTIME_DIR/snag-capture.draftthe capture box's draft after Esc, for 60 seconds
desktop secret servicethe personal access token, under a Snag entry

$XDG_RUNTIME_DIR is cleared at logout. The database is the file to back up; everything is written there before it is sent.

The paths follow XDG_CONFIG_HOME and XDG_DATA_HOME when set, and the database can be moved with database in the config file.

The token is stored only in the secret service. It is never written to the config file, the database or a log, and snag doctor never prints it.

What is sent to your Snag account

DataWhen
timer starts and stops, time entries, billable flagfrom the queue, once there is a connection
new tasks, their labels, priority, assignee and due datewhen a capture is filed
attachmentswhen a task capture with files is filed
notes and their pictureswhen a note capture is filed
snag retro entriesonly with --commit

Snag also reads from the server: the account and token abilities, projects, tasks, labels, priorities and members, and the running timer.

What is never sent

  • Observation records (window titles, directories, agent sessions). They stay in the local database until snag forget or 14 days pass.
  • Idle spans as such. Only their effect on a time entry (kept, shortened or moved) reaches the server.
  • Usage data. Snag has no telemetry.

Logs

The daemon logs to standard error. Under the systemd unit that is the journal: journalctl --user -u snag. Logs never contain the token.

Next: Troubleshooting