TaskWarrior sync server + native iOS

Your tasks.
Everywhere.
Finally.

inthe.am died. FreeCinc died. TaskChamp broke. WingTask broke on TW3. cmdock is a Rust server linking TaskChampion as a library, with a native iOS app. It syncs. It works.

~ task
$ task sync
Syncing with sync server at https://sync.cmdock.dev
Sync successful.
$ task +DUETODAY list

ID  Age Project          Due        Description
--- --- ---------------- ---------- --------------------
 7  3d  work.api-rewrite 2026-03-28 Fix auth middleware
14  1w  PERSONAL.Health  2026-03-28 Dentist 2pm
23  2d  oss.cmdock       2026-03-28 Update Docker recipe

3 tasks
$ _
Server AGPL-3.0
iOS TestFlight
Android Internal
Throughput 20K tx/s
Filter engine Native Rust

Native iOS

SwiftUI. Widgets. Siri. Geofencing. Focus mode integration. Not a web wrapper. 137 tests.

Reliable sync

Rust server with TaskChampion library. 20,000 tx/s validated. Zero SQLite BUSY errors at 500 concurrent users.

CLI untouched

Your .taskrc stays yours. task sync works. No wrapper binary. No UDA pollution. The server syncs; the CLI doesn't change.

Offline first

Mutations queue with POSIX file locking. Replay on reconnect. Share extension queues too. Works on the train.

Fully open source

Server is AGPL-3.0. Self-host for free. All features, no gating. The hosted service pays for infrastructure, not code.

Android

Native Kotlin/Compose. In internal testing. Feature parity with iOS. Same server, same sync.

Server to sync in 5 minutes

deploy
# Clone and start
$ git clone https://github.com/cmdock/server.git
$ cd server/deploy
$ export DOMAIN=tasks.yourdomain.com
$ docker compose up -d
✓ Server running. HTTPS cert provisioned.

# Create your account
$ docker compose exec server cmdock-server admin user create --username you
Created user: usr-a7b3c9
Token: eyJ0eX...kF9mQ  (enter this in the app)

# Point your CLI at it
$ task config sync.server.url https://tasks.yourdomain.com
$ task sync
Sync successful.

Looking for TaskWarrior users

cmdock is in TestFlight beta. If you use TaskWarrior and want it on your phone, we want to hear from you.