Things-to-The Hit List converter
Pull request Compare This branch is 1 commit ahead, 4 commits behind zzamboni:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Things2THL 0.8.5

Conversion program to transfer data from Things
( ) to The Hit List
( ).

Written by Diego Zamboni <>


You need Things 1.1.1 or later, since things2thl requires Applescript

Then install things2thl by running:
     $ sudo gem install zzamboni-things2thl --source

Note: things2thl need the rb-appscript
( and hpricot
( . If you don't have them already,
they will be automatically installed by gem.

If you have a version of THL prior to, please use
things2thl 0.8.4, since there were some changes in the names of the
classes used internally by THL.


Usage: things2thl <mode of operation> [options]

Modes of operation (required):
    -L, --projects-as-lists          Convert projects in Things to lists in THL
    -T, --projects-as-tasks          Convert projects in Things to tasks in THL
    -B, --projects-areas-as-tasks    Convert both projects and areas in Things
                                       to lists in THL. This implies that
                                       projects are not nested inside areas.
    -I, --inbox                      Transfer only Inbox tasks.

        --[no-]areas                 Transfer areas from Things (default: yes)
        --areas-as-tags              Transfer areas as tags in THL.
        --areas-as-contexts          Transfer areas as contexts in THL.
        --[no-]time-tags             Consider tags of the form Xmin/Xsec/Xhr as
                                       time estimates, set them in THL
                                       accordingly (default: no).
        --[no-]context-tags [REGEX]  Regular expression to identify tags that
                                       should be interpreted as contexts.
                                       (default: ^@).
                                       Use with no- to disable this feature.
        --sync                       Only transfer new items (default: no)
        --top-level-folder FOLDER    Do the import inside the named folders,
                                       instead of the top level
                                       (Inbox, etc. will also be created there
                                       instead of their corresponding places)
        --projects-top-level FOLDER  The named folder will be created to
                                       contain all projects when
                                       --projects-as-lists is used (otherwise
                                       they will be in the top folders group).
                                       If --projects-as-tasks is used, a
                                       'Projects' list is always created, but
                                       this option can be used to specify
                                       its name.
        --areas-top-level FOLDER     The named folder will be created to
                                       contain all areas.
    -c, --completed                  Transfer also completed/canceled tasks
                                       and projects (default: no)
        --[no-]archive-completed     If transferring completed/canceled tasks,
                                       also mark them as archived (default: yes)
    -q, --quiet                      Do not print items as they are processed.
                                     Twice: do not print stats at the end.
    -h, --help                       Shows this help message
    -v, --version                    Shows version

Options you should seldom need:
        --things THINGSAPP           Location of the Things application
                                       (default: /Applications/
        --thl THLAPP                 Location of the The Hit List application
                                       (default: /Applications/The Hit
Functionality still missing:

- Handling delegation ("People" feature in Things)

  Not sure how to transfer this to THL. Ideas are welcome.

Known issues:

- Cancellation/completion dates are not transferred, because THL
  handles those attributes as read-only. So if you choose to transfer
  completed/canceled tasks, they will all appear in your "completed
  today" view.

- One-time tasks in the Things "Scheduled" focus are transferred, but
  repeating tasks are not. The Things Applescript interface does not
  provide access to repeating tasks.

- The format of time estimate tags is fixed for the moment. May add
  customization if I get any requests for it.