Skip to content

evanpurkhiser/things3-cloud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

211 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

things3-cloud

Main

A Rust command-line client for Things 3 that talks directly to the Things Cloud API.

$ things3 today --detailed
⭑ Today  (6 tasks)

  A7 ▢ Follow up with team
     │ Shared notes for context
     │
   M ├╴○ draft update
   J └╴○ review checklist
  AK ▢ Review inbox and prioritize
  AE ▢ Submit reimbursement  ⚑ due by 2026-04-15

  Cr ● Planning
    Dr ▢ Prepare weekly summary

☽ This Evening

  Ee ▢ Reflect on highlights
  Px ▢ Reset workspace for tomorrow
things3 find --query "rent" --deadline "<=2026-03-31"
things3 new "Follow up with team" --when today
things3 schedule <task-id> --deadline 2026-04-10
things3 mark <task-id> --done

Install

Via Homebrew:

brew install evanpurkhiser/personal/things3-cloud

Via Arch Linux AUR:

yay -S things3-cloud

From crates.io:

cargo install things3-cloud

From source:

cargo install --path .

Configure auth

things3 set-auth

You can also set credentials via environment variables:

export THINGS3_EMAIL="you@example.com"
export THINGS3_PASSWORD="your-password"

Environment variables override values in the auth file.

Supported features

Roadmap items are tracked in ROADMAP.md.

  • Configure auth with set-auth (stored in XDG state)
  • Incremental sync with local cache for fast startup
  • --no-sync flag to skip cloud sync and use local cache only

Views

  • inbox, today, upcoming, anytime, someday, logbook
  • projects / project <id>, areas / area <id>, tags
  • Show notes via --detailed
  • Show checklist items via --detailed
  • find with title/notes/checklists and tag/area/project/status/date filters

Tasks

  • new — create tasks with title, notes, tags, when, deadline, and position
  • edit — rename, set/remove notes, move, add/remove tags (multi-ID supported)
  • edit --add-checklist/--remove-checklist/--rename-checklist
  • mark — done/incomplete/canceled (multi-ID supported)
  • mark --check/--uncheck/--check-cancel for checklist toggles
  • schedule — when/start date, deadline, today/evening/someday
  • reorder — reorder tasks within lists
  • delete — trash tasks

Projects / Areas / Tags

  • projects new / projects edit
  • areas new / areas edit
  • tags new / tags edit / tags delete

Testing

Run all Rust tests:

cargo test --all-targets

The CLI snapshot suite uses trycmd test cases in trycmd/.

Related projects

Things Cloud API clients (same approach as this project)

Local database / URL scheme clients (read from local SQLite, write via URL scheme or AppleScript)

MCP servers (local, via AppleScript or URL scheme)

About

A CLI client for Things 3 backed by Things Cloud

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors