Tracks

Create, search, update, and bulk apply tasks and goals.


Use epismo track for active work.

Create a task

epismo track create --type task --title "Fix API docs" --personal \
  --task '{"status":"todo","dueDate":"2026-06-05"}'

Task statuses are backlog, todo, in_progress, and done. Dates use YYYY-MM-DD. On update, an empty string clears optional task date, status, parent, or goal linkage fields where supported.

Create a goal

epismo track create --type goal --title "Ship docs v1" --projects $PROJECT_ID \
  --goal '{"status":"on_track","progress":40}'

Goal statuses are not_started, on_track, at_risk, postponed, and completed.

Search tracks

epismo track search --type task --personal --filter '{"status":["todo","in_progress"]}'
epismo track search --type goal --projects $PROJECT_ID --filter '{"progressMin":50}'
Command Cost
epismo track search 2 credits
epismo track create 1 credit
epismo track update 1 credit
epismo track get 1 credit
epismo track apply 1 credit
epismo track delete 1 credit

Use search results to narrow the target set, then call epismo track get <id> only for records that need detail.

Bulk apply

epismo track apply --personal --input '{
  "upserts": [
    {"id":"t001","title":"Task A","task":{"status":"todo"}},
    {"id":"t002","title":"Task B","task":{"status":"todo","dependsOn":["t001"]}}
  ]
}'

Non-UUID ids create new records and can be referenced by other upserts in the same request.

The server infers the track type from task or goal. Do not pass both on the same upsert. New tracks require title; UUID ids update existing records and keep omitted fields unchanged.