Files
coder/docs/reference/api/experimental.md
T
Susana Ferreira 3011207519 feat: add display name field for tasks (#20856)
## Problem

Tasks currently only expose a machine-friendly name field (e.g.
`task-python-debug-a1b2`), but this value is primarily an identifier
rather than a clean, descriptive label. We need a separate
display-friendly name for use in the UI.

This PR introduces a new `display_name` field and updates the task-name
generation flow. The Claude system prompt was updated to return valid
JSON with both `name` and `display_name`. The name generation logic
follows a fallback chain (Anthropic > prompt sanitization > random
fallback). To make task names more closely resemble their display names,
the legacy `task-` prefix has been removed. For context, PR
https://github.com/coder/coder/pull/20834 introduced a small Task icon
to the workspace list to help identify workspaces associated to tasks.

## Changes

- Database migration: Added `display_name` column to tasks table
- Updated system prompt to generate both task name and display name as
valid JSON
- Task name generation now follows a fallback chain: Anthropic > prompt
sanitization > random fallback
- Removed `task-` prefix from task names to allow more descriptive names
- Note: PR https://github.com/coder/coder/pull/20834 adds a Task icon to
workspaces in the workspace list to distinguish task-created workspaces

**Note:** UI changes will be addressed in a follow-up PR

Related to: https://github.com/coder/coder/issues/20801
2025-11-25 13:00:59 +00:00

9.5 KiB
Generated

Experimental

List AI tasks

Code samples

# Example request using curl
curl -X GET http://coder-server:8080/api/v2/api/experimental/tasks \
  -H 'Accept: */*' \
  -H 'Coder-Session-Token: API_KEY'

GET /api/experimental/tasks

Parameters

Name In Type Required Description
q query string false Search query for filtering tasks. Supports: owner:<username/uuid/me>, organization:<org-name/uuid>, status:

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK codersdk.TasksListResponse

To perform this operation, you must be authenticated. Learn more.

Create a new AI task

Code samples

# Example request using curl
curl -X POST http://coder-server:8080/api/v2/api/experimental/tasks/{user} \
  -H 'Content-Type: application/json' \
  -H 'Accept: */*' \
  -H 'Coder-Session-Token: API_KEY'

POST /api/experimental/tasks/{user}

Body parameter

{
  "display_name": "string",
  "input": "string",
  "name": "string",
  "template_version_id": "0ba39c92-1f1b-4c32-aa3e-9925d7713eb1",
  "template_version_preset_id": "512a53a7-30da-446e-a1fc-713c630baff1"
}

Parameters

Name In Type Required Description
user path string true Username, user ID, or 'me' for the authenticated user
body body codersdk.CreateTaskRequest true Create task request

Example responses

201 Response

Responses

Status Meaning Description Schema
201 Created Created codersdk.Task

To perform this operation, you must be authenticated. Learn more.

Get AI task by ID

Code samples

# Example request using curl
curl -X GET http://coder-server:8080/api/v2/api/experimental/tasks/{user}/{task} \
  -H 'Accept: */*' \
  -H 'Coder-Session-Token: API_KEY'

GET /api/experimental/tasks/{user}/{task}

Parameters

Name In Type Required Description
user path string true Username, user ID, or 'me' for the authenticated user
task path string true Task ID, or task name

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK codersdk.Task

To perform this operation, you must be authenticated. Learn more.

Delete AI task by ID

Code samples

# Example request using curl
curl -X DELETE http://coder-server:8080/api/v2/api/experimental/tasks/{user}/{task} \
  -H 'Coder-Session-Token: API_KEY'

DELETE /api/experimental/tasks/{user}/{task}

Parameters

Name In Type Required Description
user path string true Username, user ID, or 'me' for the authenticated user
task path string true Task ID, or task name

Responses

Status Meaning Description Schema
202 Accepted Task deletion initiated

To perform this operation, you must be authenticated. Learn more.

Update AI task input

Code samples

# Example request using curl
curl -X PATCH http://coder-server:8080/api/v2/api/experimental/tasks/{user}/{task}/input \
  -H 'Content-Type: application/json' \
  -H 'Coder-Session-Token: API_KEY'

PATCH /api/experimental/tasks/{user}/{task}/input

Body parameter

{
  "input": "string"
}

Parameters

Name In Type Required Description
user path string true Username, user ID, or 'me' for the authenticated user
task path string true Task ID, or task name
body body codersdk.UpdateTaskInputRequest true Update task input request

Responses

Status Meaning Description Schema
204 No Content No Content

To perform this operation, you must be authenticated. Learn more.

Get AI task logs

Code samples

# Example request using curl
curl -X GET http://coder-server:8080/api/v2/api/experimental/tasks/{user}/{task}/logs \
  -H 'Accept: */*' \
  -H 'Coder-Session-Token: API_KEY'

GET /api/experimental/tasks/{user}/{task}/logs

Parameters

Name In Type Required Description
user path string true Username, user ID, or 'me' for the authenticated user
task path string true Task ID, or task name

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK codersdk.TaskLogsResponse

To perform this operation, you must be authenticated. Learn more.

Send input to AI task

Code samples

# Example request using curl
curl -X POST http://coder-server:8080/api/v2/api/experimental/tasks/{user}/{task}/send \
  -H 'Content-Type: application/json' \
  -H 'Coder-Session-Token: API_KEY'

POST /api/experimental/tasks/{user}/{task}/send

Body parameter

{
  "input": "string"
}

Parameters

Name In Type Required Description
user path string true Username, user ID, or 'me' for the authenticated user
task path string true Task ID, or task name
body body codersdk.TaskSendRequest true Task input request

Responses

Status Meaning Description Schema
204 No Content Input sent successfully

To perform this operation, you must be authenticated. Learn more.