provider taskstasks PUT /api/projects/{project_id}/tasks/{id}/
@utdk/posthog /api/projects/{project_id}/tasks/{id}/
tasks_update
API for managing tasks within a project. Tasks represent units of work to be performed by an agent.
id path required
string
project_id path required
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
string

Try it

Authentication
Configure credentials for PostHog API
tasksUpdate
PUT/api/projects/{project_id}/tasks/{id}/
API for managing tasks within a project. Tasks represent units of work to be performed by an agent.

Parameters

required
required

Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

Input

Short human-readable title. Auto-generated from `description` when omitted.

Whether the title was set by a human (vs auto-generated from the description).

Free-form description of the work to be done. Used as the prompt passed to the agent.

PostHog product or surface that created this task (e.g. error_tracking, slack, user_created). * `onboarding` - Onboarding * `error_tracking` - Error Tracking * `eval_clusters` - Eval Clusters * `user_created` - User Created * `automation` - Automation * `slack` - Slack * `support_queue` - Support Queue * `session_summaries` - Session Summaries * `posthog_ai` - PostHog AI * `experiments` - Experiments * `signal_report` - Signal Report * `signals_scout` - Signals Scout * `support_reply` - Support Reply * `hogdesk` - HogDesk * `image_builder` - Image Builder

Target GitHub repository in `organization/repo` format (e.g. `posthog/posthog-js`).

GitHub integration for this task.

User-scoped GitHub integration to use for user-authored cloud runs.

Signal report this task implements, when created from a report.

JSON schema used to validate the output of the task.

If true, this task is for internal use and should not be exposed to end users.

If true, the task is hidden from default list responses.

Custom prompt for CI fixes. If blank, a default prompt will be used.

Branch the user has selected for this cloud task. Write-only and not persisted on the task itself: used only to reuse a matching pre-warmed sandbox Run on creation (the branch is otherwise carried on the run). Omit to match a warm Run on the default branch.

Selected runtime adapter ('claude' or 'codex'). Write-only and not persisted on the task: used only to reuse a pre-warmed Run started on the same runtime. A value differing from the warm Run's runtime skips reuse so the task isn't silently run on the wrong runtime. * `claude` - claude * `codex` - codex

Selected LLM model identifier. Write-only; used only to reuse a warm Run started on the same model.

Selected reasoning effort. Write-only; used only to reuse a warm Run started on the same effort. * `low` - low * `medium` - medium * `high` - high * `xhigh` - xhigh * `max` - max

First user message to forward when creation reuses a pre-warmed Run. Write-only and not persisted on the task: lets clients deliver a message that differs from `description` (e.g. a resolved skill invocation with channel context folded in). Ignored when no warm Run is reused — cold creation takes the first message via the run start endpoint instead.

Run artifact ids (already uploaded to the pre-warmed Run) to attach to the forwarded first message when creation reuses that warm Run, e.g. skill bundles or file attachments. If any id is missing from the warm Run's manifest, warm reuse is skipped and the task is created cold. Ignored when no warm Run is matched.

When true, the cloud run agent pushes its work and opens a draft pull request on completion without waiting for an explicit ask. Write-only and not persisted on the task: persisted into the reused warm Run's state when creation activates one, so resumes of that Run honor it. Ignored when no warm Run is reused — cold creation takes it via the run start endpoint instead.

Channel this task is owned by (the channel it was kicked off in).

Configure credentials above to enable sending.

Code snippet
Updates live as you fill in the form above.

TypeScript

import posthog from '@utdk/posthog';

await posthog.tasksUpdate()