@taskdoor/cli
v0.8.0
Published
TaskDoor command line client
Readme
@taskdoor/cli
The command-line client for TaskDoor: tasks, their criteria and dependencies, comments, labels, tags, task files and notifications from a terminal or a script, with every result available as JSON.
npm install --global @taskdoor/cli
taskdoor login
taskdoor task listWithout --server the CLI connects to TaskDoor. For a private deployment, name its server when you log in:
taskdoor login --server https://taskdoor.example.com.
Requires Node.js 22.12 or newer.
Common commands
Account and sign-in status: what this computer has saved, and the account TaskDoor confirms online.
taskdoor login status
taskdoor whoamiWorkspaces: the workspaces you are in, and the one later commands use by default.
taskdoor workspace list
taskdoor workspace use <workspace-id>Tasks: the tasks you can see in a workspace.
taskdoor task list --workspace <workspace-id>Task details: everything about one task.
taskdoor task get <task-id> --workspace <workspace-id>Sign in without a browser: on a server or a remote terminal; confirm the code in a browser on another device.
<origin> is your TaskDoor's address; leave out --server for TaskDoor itself.
taskdoor login --server <origin> --device-authSign out: revokes this device and removes the credentials saved on it.
taskdoor logoutWhat it does
- Sign in with your browser, or with a device code (
--device-auth) on a machine without one. A personal access token works too (login --with-token, read from stdin), orTASKDOOR_TOKENfor a single call.- Credentials go to the system keyring, or to a protected file with
--credential-store file. logoutrevokes this device on the server.
- Credentials go to the system keyring, or to a protected file with
- Workspaces and tasks:
- list, get, create (also subtasks, and many at once);
- update, change status, hand over or claim, move;
- delete to the trash, restore, and restore or delete permanently several at once;
- members and their roles, status history, labels, your own tags, pins;
- completion criteria, dependencies, effort estimates, progress.
- Comments, activity and audit: comment with mentions, replies and file attachments, and edit or delete your own; read a task's activity; read the workspace audit trail.
- Your own things: your tags (create, rename, restyle, delete), your language and theme, and your notifications -- in a workspace, or about teams you are not in -- with marking them read.
- Files of a task:
- list, read, upload and download (each checked against SHA-256, written atomically);
- edit text through drafts, and resolve conflicts;
- versions and restoring them; export a ZIP; previews;
- folders, rename, move and copy; the trash and restoring from it;
- discussions on a file, or on a passage of a text file.
Every command takes --json: one JSON object on stdout, errors as JSON on stderr. Exit codes are 2 arguments, 3
sign-in, 4 permission or not visible, 5 network or server, and 6 conflict or precondition.
Writes are safe to retry. Creating writes send an idempotency key, and an uncertain outcome gives the key back. Changes to existing items never overwrite a newer version.
taskdoor --help lists the commands; taskdoor <command> --help describes one.
Updates: at most once every six hours, taskdoor asks the npm registry whether a newer version exists. The request is for public
package information only. When it is installed with npm install -g and the folder is yours to write, it updates itself;
otherwise it tells you. taskdoor config set update.mode notify stops the self-update, and off stops the check.
More than one server or account
Each login is kept, and the last one is active. One configuration can hold TaskDoor and a private deployment side by side, or two accounts of one server.
taskdoor login # TaskDoor, saved as "app"
taskdoor login --server https://taskdoor.example.com # saved as "taskdoor", now active
taskdoor auth list # every saved login, the active one first
taskdoor auth switch app
taskdoor task list --profile taskdoor # one call against the private deploymentA second account on the same server needs its own name: taskdoor login --server … --name taskdoor-second.
Compatibility
- Server version: if your TaskDoor server is older than a command needs, the CLI says so and names the server version required.
- macOS (Apple silicon), Linux (arm64, x64) and Windows: supported.
- macOS on Intel: available, but not verified on Intel hardware.
Changes
Every version's changes are in CHANGELOG.md, included in the package.
License
Apache-2.0. See LICENSE.
Questions and problems: https://github.com/nocoly/taskdoor-cli/issues
