Syncing Taskwarrior with WingTask

WingTask provides a Taskserver for syncing your local Taskwarrior tasks up to WingTask, you can also use it to sync your other Taskwarrior clients.

Sections in this article

WingTask provides a taskserver installaion for the syncing of taskwarrior tasks from your local machine up to WingTask. The taskserver’s main purpose is giving WingTask access to tasks that originate on your local machine, and it also provides the benefit of allowing you to sync your Taskwarrior tasks between your other devices.

Step 1 - Download the WingTask Configuration file

Navigate to Settings, on Mobile click on the App ellipse button and then click Settings, on Desktop click the Settings icon. On the Settings page click on Download WingTask Configuration and a file download should begin.

App dropdown on mobile
Settings icon on desktop
Download wingTask configuration button

Navigate to the folder where the configuration zip file was downloaded, unzip it, and cd to the extracted directory.

$ unzip wingtask_configuration.zip
$ cd wingtask_configuration
$ chmod +x install.sh
$ ./install.sh

The install script will do the following:

  1. Verifies Taskwarrior is installed and the ‘task’ command is in $PATH.
  2. Makes a backup copy of existing .taskrc to .taskrc.orig.
  3. Copies directory wingtask_certs to $HOME/.wingtask_certs. These PKI certificates authorize access to the WingTask taskservers.
  4. Runs ‘task configure’ to set the Taskwarrior configuration for taskd.server to point to the WingTask taskserver.
  5. Runs ‘task configure’ to set the taskd.key to point to the PKI key copied to $HOME/.wingtask.certs/YOUR_EMAIL.key.pem.
  6. Runs ‘task configure’ to set the taskd.ca to point to the intermediate chain certificate copied to $HOME/.wingtask_certs/dst.pem.
  7. Runs ‘task configure’ to set the taskd.certificate to the PKI cert copied to $HOME/.wingtask_certs/YOUREMAIL.cert.pem.
  8. Run ‘task configure’ to set taskd.credentials to your WingTask auth credentials.
wingtask configuration install by script

Step 2 - Manually configure Taskwarrior

Navigate to the folder where the configuration zip file was downloaded, unzip it, and cd to the extracted directory.

$ unzip wingtask_configuration.zip
$ cd wingtask_configuration

The extracted wingtask_configuration.zip contains 4 files. Of note is the taskrc file the contains the config necessary to connect to WingTask taskserver. Instead of running the install script you can copy the config over to your .taskrc file. Make sure to set the paths for the taskd certificates to the location of the certs in directory wingtask_certs.

  1. install.sh - Install script described above.
  2. README - provides included help.
  3. wingtask_certs - This directory contains your PKI certs to connect with WingTask tasksever securely.
  4. taskrc - A default taskwarrior .taskrc file with the addition of the configurations necessary for to connect to WingTask for your account. Of note is the taskd.credentials config which is the config that actually identifies your account to WingTask. You can copy and paste this config into your .taskrc file usually located in the home directory.

Step 3 - Run initial sync of Taskwarrior to WingTask

Taskwarrior has a special command for first time sync.

$ task sync init

Step 4 - Run task sync whenever you want to want to sync with WingTask.

Any changes you make locally will not be reflected in WingTask until you sync the local changes up to the WingTask taskserver. Likewise, any tasks created or changed in WingTask won’t show up locally until you sync. You can run sync as often as you like.

$ task sync

Troubleshooting

Error: Could not find common ancestor for…

This is the most common error reported and is fixed by running ‘task sync init’.


Related Articles