Snag help › Snag for the desktop
Where data goes
On this machine
| Path | Holds |
|---|---|
~/.config/snag/config.toml | settings |
~/.local/share/snag/timer.sqlite | the 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.sock | the socket keybind commands use to reach the daemon |
$XDG_RUNTIME_DIR/snag.lock | held by the running daemon so only one runs |
$XDG_RUNTIME_DIR/snag.status | one JSON line for the bar module, rewritten once a minute |
$XDG_RUNTIME_DIR/snag-capture.draft | the capture box's draft after Esc, for 60 seconds |
| desktop secret service | the 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
| Data | When |
|---|---|
| timer starts and stops, time entries, billable flag | from the queue, once there is a connection |
| new tasks, their labels, priority, assignee and due date | when a capture is filed |
| attachments | when a task capture with files is filed |
| notes and their pictures | when a note capture is filed |
snag retro entries | only 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 forgetor 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