Files
coder/docs/ai-coder/cli.md
T
Cian Johnston fa82f841c7 chore(docs): add documentation for exp CLI commands (#20019)
Updates task documentation with experimental CLI.
~Generated by Claude using `--help` output.~

Should be merged alongside https://github.com/coder/coder/pull/20020
2025-10-08 13:43:44 +01:00

5.7 KiB

Tasks CLI

The Coder CLI provides experimental commands for managing tasks programmatically. These are available under coder exp task:

USAGE:
  coder exp task

  Experimental task commands.

  Aliases: tasks

SUBCOMMANDS:
    create    Create an experimental task
    delete    Delete experimental tasks
    list      List experimental tasks
    logs      Show a task's logs
    send      Send input to a task
    status    Show the status of a task.

Creating tasks

USAGE:
  coder exp task create [flags] [input]

  Create an experimental task

    - Create a task with direct input:

        $ coder exp task create "Add authentication to the user service"

    - Create a task with stdin input:

        $ echo "Add authentication to the user service" | coder exp task create

    - Create a task with a specific name:

        $ coder exp task create --name task1 "Add authentication to the user service"

    - Create a task from a specific template / preset:

        $ coder exp task create --template backend-dev --preset "My Preset" "Add authentication to the user service"

    - Create a task for another user (requires appropriate permissions):

        $ coder exp task create --owner user@example.com "Add authentication to the user service"

OPTIONS:
  -O, --org string, $CODER_ORGANIZATION
          Select which organization (uuid or name) to use.

      --name string
          Specify the name of the task. If you do not specify one, a name will be generated for you.

      --owner string (default: me)
          Specify the owner of the task. Defaults to the current user.

      --preset string, $CODER_TASK_PRESET_NAME (default: none)
  -q, --quiet bool
          Only display the created task's ID.

      --stdin bool
          Reads from stdin for the task input.

      --template string, $CODER_TASK_TEMPLATE_NAME
      --template-version string, $CODER_TASK_TEMPLATE_VERSION

Deleting Tasks

USAGE:
  coder exp task delete [flags] <task> [<task> ...]

  Delete experimental tasks

  Aliases: rm

    - Delete a single task.:

        $ $ coder exp task delete task1

    - Delete multiple tasks.:

        $ $ coder exp task delete task1 task2 task3

    - Delete a task without confirmation.:

        $ $ coder exp task delete task4 --yes

OPTIONS:
  -y, --yes bool
          Bypass prompts.

Listing tasks

USAGE:
  coder exp task list [flags]

  List experimental tasks

  Aliases: ls

    - List tasks for the current user.:

        $ coder exp task list

    - List tasks for a specific user.:

        $ coder exp task list --user someone-else

    - List all tasks you can view.:

        $ coder exp task list --all

    - List all your running tasks.:

        $ coder exp task list --status running

    - As above, but only show IDs.:

        $ coder exp task list --status running --quiet

OPTIONS:
  -a, --all bool (default: false)
          List tasks for all users you can view.

  -c, --column [id|organization id|owner id|owner name|name|template id|template name|template display name|template icon|workspace id|workspace agent id|workspace agent lifecycle|workspace agent health|initial prompt|status|state|message|created at|updated at|state changed] (default: name,status,state,state changed,message)
          Columns to display in table output.

  -o, --output table|json (default: table)
          Output format.

  -q, --quiet bool (default: false)
          Only display task IDs.

      --status string
          Filter by task status (e.g. running, failed, etc).

      --user string
          List tasks for the specified user (username, "me").

Viewing Task Logs

USAGE:
  coder exp task logs [flags] <task>

  Show a task's logs

    - Show logs for a given task.:

        $ coder exp task logs task1

OPTIONS:
  -c, --column [id|content|type|time] (default: type,content)
          Columns to display in table output.

  -o, --output table|json (default: table)
          Output format.

Sending input to a task

USAGE:
  coder exp task send [flags] <task> [<input> | --stdin]

  Send input to a task

    - Send direct input to a task.:

        $ coder exp task send task1 "Please also add unit tests"

    - Send input from stdin to a task.:

        $ echo "Please also add unit tests" | coder exp task send task1 --stdin

OPTIONS:
      --stdin bool
          Reads the input from stdin.

Viewing Task Status

USAGE:
  coder exp task status [flags]

  Show the status of a task.

  Aliases: stat

    - Show the status of a given task.:

        $ coder exp task status task1

    - Watch the status of a given task until it completes (idle or stopped).:

        $ coder exp task status task1 --watch

OPTIONS:
  -c, --column [state changed|status|healthy|state|message] (default: state changed,status,healthy,state,message)
          Columns to display in table output.

  -o, --output table|json (default: table)
          Output format.

      --watch bool (default: false)
          Watch the task status output. This will stream updates to the terminal until the underlying workspace is stopped.

Note

: The --watch flag will automatically exit when the task reaches a terminal state. Watch mode ends when:

  • The workspace is stopped
  • The workspace agent becomes unhealthy or is shutting down
  • The task completes (reaches a non-working state like completed, failed, or canceled)

Identifying Tasks

Tasks can be identified in CLI commands using either:

  • Task Name: The human-readable name (e.g., my-task-name)

    Note: Tasks owned by other users can be identified by their owner and name (e.g., alice/her-task).

  • Task ID: The UUID identifier (e.g., 550e8400-e29b-41d4-a716-446655440000)