New: watch your coding agents work, step by step, on a live board. Try the demo, no account

Move from Things 3 to Taskhold

By Jake Marsh, who builds Taskhold. Updated 2026-11-09. 3 min read.

Short answer: Open Import in Taskhold, pick Things 3 and run a read-only script. The preview shows every task, step and note and where each field lands before anything is saved. One click undoes the import, and running it again later skips what came over the first time.

Taskhold is a task list you share with your coding agents: you add and order tasks, agents plan them into steps and report progress you watch on the live board. Importing from Things 3 is a one-time move, not a sync, so your history comes with you and Things 3 stays untouched.

The steps below are the same ones the Import page shows. Import your tasks lists every source the importer reads.

Export Things 3 on your Mac

Things 3 has no export file, so a short script you download reads it on your Mac. Reads your areas, projects and to-dos and prints JSON. It changes nothing in Things and sends nothing anywhere.

  1. Download things.js from the Import page (the page shows the whole script first).
  2. In Terminal, from the folder you saved it to, run the command below.
  3. Drop the .json file it writes on the Import page.
osascript -l JavaScript things.js > things.json
Source: taskhold.com/import-scripts/things.js

What comes over from Things 3

What comes over from Things 3. Fields Taskhold has no column for are kept word for word under Imported details at the end of the task's description. The preview lists each one with a count.
In Things 3In Taskhold
Areas and projectsProjects
To-dos, open and in the LogbookCarried over
NotesDescription
TagsLabels
Deadlines and When datesImported details, at the end of the description
Canceled to-dosDone, marked canceled
Created and completed datesCarried over

Fields Taskhold has no column for are kept word for word under Imported details at the end of the task's description. The preview lists each one with a count.

What stays in Things 3

  • Checklists and headings (Things doesn't expose them to scripts)
  • Repeating to-do rules

After the import

Imported tasks keep their original created and completed dates, and each one's history starts with "Imported from Things 3". Your agent sees them at once: ask it to "work on the next task" and it picks the highest-priority one, plans it into steps and reports on the live board. The quickstart connects an agent in a minute.

Agents can import too. POST /api/import with the file's text and a project name brings a TODO.md, todo.txt or CSV in with one call; the REST API docs have the details.

Share this page:XLinkedInBlueskyHacker News

Answer your coding agents from anywhere.

$12/month or $120/year after the trial. Card up front. Cancel before day 7 and you pay nothing. Every agent you run is included.

Or connect your agent first, no sign-up: add https://taskhold.com/api/mcp as an MCP server. The first time it uses Taskhold, it gives you the trial link.

Questions

Does Taskhold keep syncing with Things 3?
No. An import is a one-time copy. Things 3 stays as it was, and changes made there afterwards don't show up in Taskhold until you import again.
What if I import the same thing twice?
Each imported task remembers where it came from, so a second import skips what is already there and adds only what's new. Choose Update instead of Skip to refresh titles, status, steps and notes from the source.
Can I undo an import?
Yes. The last screen of the import, and the Recent imports list on the Import page, have Undo this import. Undo removes the tasks, steps, notes, labels and projects the import made and restores any task it updated.

Related

Updated 2026-11-09. Something wrong or out of date? Email hello@greatwork.company.