There are many file hosting services, such as DropBox, Amazon S3, Google Drive,
SkyDrive and more. This technique involves storing your .task directory in a
shared directory under the control of the file hosting services.
Syncing happens quickly, although it is possible to run into conflict situations
when there is no network connectivity, and the tasks are modified in two
separate locations. This is because the file hosting service knows only about
files, and it has no idea how to merge tasks. Avoid this problem by never
modifying the same task on two machines, without an intervening sync.
Setup simply involves creating the directory and modifying your data.location
configuration variable like this:
$ task config data.location /path/to/shared/directory
- Always secure
- Good client support
- Easy setup
- Transparent use
- Tasks are not properly merged
The Taskserver was designed for this purpose to be secure, fast and conflict
free, allowing data interchange between assorted Taskwarrior clients, and
tolerant of network connectivity problems.
There is a sync command built in to Taskwarrior (provided the GnuTLS library
is installed), and with a server account and client configuration, syncing is
done on demand.
Setup is a matter of creating an account on a Taskserver (see your Taskserver
provider or operate your own - see
Once you have an account, youll receive a certificate, key, and credentials.
Youll need to put the certificate and key somewhere like this:
$ cp <name>.cert.pem ~/.task
$ cp <name>.key.pem ~/.task
Then you configure Taskwarrior, using the provided details:
$ task config taskd.certificate ~/.task/<name>.cert.pem
$ task config taskd.key ~/.task/<name>.key.pem
$ task config taskd.credentials <organization>/<name>/<UUID>
$ task config taskd.server <server domain>:<port>
If you are using a private server, you are likely also using a self-signed
certificate, which means you will need one of the following additional entries:
$ task config taskd.ca ~/.task/ca.cert.pem
The CA (Certificate Authority) will be used to verify the server certificate.
Alternatively, you can override the cert verification process using:
$ task config taskd.trust allow all
This is an insecure option that should be used with caution, because it directs
Taskwarrior to trust any certificate.
After setup, you run a one-time sync initialization, like this:
$ task sync initialize
This will make sure your client and the server are properly in sync to begin
with. From this point on, you never run the initialize command again, just
go about your business, and when you want to sync, run this:
$ task sync
Youll see a summary of how many tasks were uploaded and downloaded. You can
safely run the command as often as you like. When there are no changes to sync,
nothing happens. If you do not have connectivity, your task changes accumulate
so that when you next run sync with proper connectivity, the changes are
properly handled, in the right order.
- Always secure
- Minimal bandwidth
- Tolerates connectivity outage
- You need to manage your own server, or gain access to a hosted server.