Reference

Tasks CLI

coldtea-tasks is Coldtea Tasks from the command line. It exists for two callers: a person in a terminal, and an agent in a workflow that files and updates tasks as it works. Both talk to the public /v1 API and nothing else.

Install

npm install -g @coldtea/tasks
ctask --version

The package installs two names for the same binary: coldtea-tasks, and ctask for short — fewer tokens for the agents that call it most.

Needs Node 20.6 or newer. The package has no runtime dependencies.

Auth

Create an API key in the Coldtea app with a Tasks scope, then:

export COLDTEA_API_KEY=coldtea_sk_...
ctask whoami

The key identifies your TeaHouse. There is no TeaHouse flag, and the API rejects a request that names one. tasks:read lists and reads; tasks:write creates, updates and deletes. A write-only key can file a task from a title alone; choosing a team, column or assignee takes ids that only the read commands hand out.

First run

A title is enough. The server defaults the team to your TeaHouse's only team, and the column to that team's Todo, the same column the product itself files into:

ctask create "Fix the flaky login test"

The reads are for when you want to choose:

ctask teams list                 # team ids, for when you have several
ctask states list                # board columns (--team only if several teams)
ctask labels list                # label ids for --label
ctask members list               # user ids for --assignee
export COLDTEA_TEAM_ID=team_..   # pin a team, when you have several

With several teams, an absent --team is refused with the count rather than guessed. A blank --team or --state (usually an unset shell variable) is refused rather than read as a request for the default.

Exit codes

CodeMeaning
0Done.
2Couldn't do it: timeouts, 5xx, rate limits, transport. Worth retrying unchanged.
3A conflict a person must resolve, such as --expect-updated-at finding the task changed.
4Auth or configuration error, including 400 and 404. Retrying unchanged can only fail again.

There is no exit 1. That code means "the thing under test is broken", which QA reports about an app and Tasks has nothing to say about. No code path in this CLI can produce it.

Machine output

--json prints one JSON document on stdout, in the API's own envelope: { "data": ..., "meta": { "requestId": ... } }. List commands carry meta.nextCursor; page by copying it until it is null, never by counting rows. Errors go to stderr in the same shape, so stdout stays parseable on failure. Quote meta.requestId when reporting a problem.

Descriptions are Markdown, and tasks list never prints them: a description is where an agent pastes logs and stack traces, and a listing runs in CI where output is retained. Read one task's body with tasks get <id> --description.

Environment

VariableMeaning
COLDTEA_API_KEYThe coldtea_sk_... key. Identifies your TeaHouse.
COLDTEA_TEAM_IDDefault team id, so --team is not repeated.
COLDTEA_BASE_URLAPI origin (default https://www.coldtea.ai). Https only; plain http works on loopback addresses.
COLDTEA_ALLOW_INSECURE_HTTPSet to 1 to allow plain http to a non-loopback host. Every request then carries your API key unencrypted; use it only for a trusted private host.
NO_COLORDisable color.

Commands

Generated from the CLI's own command table, so this list cannot drift from the binary. ctask help <family> prints the full help for any group below.

ctask whoami

Show the TeaHouse and key in use.

ctask list

List the tasks in your TeaHouse.

FlagValue
--assigneestring
--cursorstring
--labelstring, repeatable
--limitstring
--parentstring
--prioritystring
--searchstring
--statestring
--state-typestring
--teamstring
--updated-sincestring

ctask get <id>

Show one task (ORA-12 or the raw id).

FlagValue
--descriptionboolean

ctask create <title>

File a task (title alone is enough).

FlagValue
--description-filestring
--estimatestring
--labelstring, repeatable
--parentstring
--prioritystring
--statestring
--teamstring

ctask update <id>

Change a task in place.

FlagValue
--afterstring
--assigneestring
--beforestring
--description-filestring
--estimatestring
--expect-updated-atstring
--labelstring, repeatable
--parentstring
--prioritystring
--statestring
--titlestring

ctask delete <id>

Delete a task.

ctask teams list

List the teams in your TeaHouse.

ctask states list

List a team's board columns.

FlagValue
--teamstring

ctask labels list

List a team's labels.

FlagValue
--teamstring

ctask members list

List who can be assigned work.

FlagValue
--teamstring

On this page