Import from Things 3
Import a Things 3 SQLite export into Done Bear with dry runs, metadata preservation, and team mapping controls.
Use this guide to import a Things 3 export into Done Bear. You will point the CLI at a supported database location, preview the migration with --dry-run, and then run the import for a specific workspace.
What the importer accepts
donebear import things accepts:
- A direct filesystem path
- A
file://URL - A
sqlite://URL - A
.thingsdatabasebundle - A
ThingsData-*directory
1. Pick the target workspace
Run:
donebear workspace list
donebear workspace use personalYou can also keep the workspace explicit during the import:
donebear import things --workspace personal --dry-run --json2. Preview the import
Run a dry run first:
donebear import things \
--database-url ~/Backups/Things\ Database.thingsdatabase \
--dry-run \
--jsonThe dry run shows the resolved database path, source counts, planned counts, and execution summary without sending sync mutations.
3. Run the import
Run:
donebear import things \
--database-url ~/Backups/Things\ Database.thingsdatabase \
--workspace personalIf you want to control batching, run:
donebear import things \
--database-url file:///Users/me/Backups/main.sqlite \
--workspace personal \
--batch-size 504. Decide how to handle Things-specific metadata
By default, the importer preserves Things-only metadata in task, project, and team descriptions.
donebear import things \
--database-url ~/Backups/Things\ Database.thingsdatabase \
--metadata-mode noteIf you want a cleaner import without that appendix, run:
donebear import things \
--database-url ~/Backups/Things\ Database.thingsdatabase \
--metadata-mode none5. Decide whether to create teams from Things Areas
The importer can map Things Areas into Done Bear teams and TeamProject links. If you do not want that mapping, skip it:
donebear import things \
--database-url ~/Backups/Things\ Database.thingsdatabase \
--skip-teamsRecommended import flow
- Run
donebear import things --dry-run --json. - Check the planned counts and target workspace.
- Decide whether to keep metadata appendices with
--metadata-mode. - Decide whether to keep Area-to-team mapping with
--skip-teams. - Run the real import without
--dry-run.
Next steps
- Read Automate with tokens, JSON, and context if you want to script repeatable imports.
- Use Command reference when you need the full CLI surface around workspaces, tasks, and projects.