Sync server + native iOS app for TaskWarrior

Your TaskWarrior.
On your phone.

A Rust sync server and native iOS app that bring your tasks to your phone. Self-host for free or use the hosted service. Your CLI doesn't change.

~ 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
$ _

Sync server

Rust binary linking TaskChampion as a library. Native filter engine, built-in auth, admin CLI. Docker deploy with automatic HTTPS.

  • AGPL-3.0
  • 20K tx/s
  • Self-host

iOS app

Native SwiftUI. Home screen widgets filtered by Focus mode. Urgency-sorted task lists. Siri capture. Offline queue that replays on reconnect.

  • SwiftUI
  • Widgets
  • Context-aware

Android in development. Same server, same sync.

Server AGPL-3.0
iOS Coming soon
Android In development
Throughput 20K tx/s
Filter engine Native Rust

Reliable sync

Rust server validated at 20,000 transactions/second with zero SQLite contention at 500 concurrent users.

CLI untouched

Your .taskrc stays yours. task sync works. No wrapper binary, no plugins. The server syncs — your CLI doesn't change.

Context-aware mobile

Widgets sort by urgency. Focus mode filters work vs personal. Geofencing surfaces your shopping list at the supermarket.

Offline first

Mutations queue locally with POSIX file locking. Replay on reconnect. Works on the train, works in a dead zone.

Fully open source

Server is AGPL-3.0. Self-host for free with all features. No gating, no premium tiers on the server. The hosted service pays for infrastructure.

Built-in admin

Admin CLI for user and token management. No SQLite knowledge needed. Create accounts, manage tokens, backup and restore.

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.

Star the repo to follow progress

We announce builds and beta access via GitHub releases. Star the repo to get notified.

Star cmdock/server