coder/Coder Agents Chat

Run Coder agents from any GitHub workflow. Triage issues, review PRs, or follow up on an existing chat.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jun 4, 2026
License
None

Pinned Snippet

workflow.ymlSHA-pinned
uses: coder/agents-chat-action@b3fc81d7dae5006dd124e98ef6fada1a36cdd86e # v0.3.0

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
chat-promptPrompt to send to the agents chat. Templated by the workflow before being passed in.yes
coder-tokenCoder session token used to authenticate with the Coder API.yes
coder-urlCoder deployment URL.yes
github-urlGitHub issue or pull request URL to link the chat to. Used for the issue/PR comment and as the human-readable association in the chat label.yes
github-tokenGitHub token used to post and update issue comments.yes
coder-organizationCoder organization name. Looked up by name to resolve the organization UUID for chat creation. Recommended when the Coder user belongs to more than one organization, since the fallback choice is non-deterministic.no
workspace-idExisting workspace ID to pin the chat to. If unset, Agents auto-provisions a workspace.no
model-config-idModel configuration ID to use for the chat.no
existing-chat-idExisting chat ID to send a follow-up message to instead of creating a new chat. Mutually exclusive with force-new-chat.no
comment-on-issueWhether to comment on the GitHub issue or pull request with the chat URL and status.notrue
waitWait mode. 'none' (default) returns immediately after creating the chat or sending the message. 'complete' polls every 5 seconds until the chat reaches a terminal status (waiting, completed, error) or wait-timeout-seconds elapses.nonone
wait-timeout-secondsMaximum seconds to wait when wait=complete before failing with a timeout.no600
idempotency-keyOptional sharding key to narrow the default reuse scope. By default the action reuses the most recent non-archived chat scoped to `gh-target` and the workflow name (when `GITHUB_WORKFLOW` is set). All chats are owned by the `coder-token` holder, so the scope does not include a per-actor component. Set this to maintain multiple parallel chats on the same target/workflow (for example, one per matrix dimension). Pass the `github.actor` context value to maintain one chat per triggering user.no
force-new-chatAlways create a new chat instead of reusing the most recent matching chat. Mutually exclusive with existing-chat-id.nofalse
namedescription
coder-usernameThe Coder username the `coder-token` belongs to (always the chat owner; the chats API has no owner override).
chat-idThe chat ID.
chat-urlThe URL to view the chat in Coder.
chat-createdWhether the chat was newly created (true) or a message was sent to an existing chat (false).
chat-statusCurrent chat status (waiting, pending, running, paused, completed, error).
chat-titleThe chat title.
workspace-idThe workspace ID the chat is running in (auto-provisioned or provided).
pull-request-urlURL of the pull request or branch page when the chat has tracked changes.
pull-request-statePull request state (open, closed, merged) when available.
pull-request-titleTitle of the pull request when available.
pull-request-numberPull request number when available.
diff-additionsNumber of lines added in tracked changes.
diff-deletionsNumber of lines deleted in tracked changes.
diff-changed-filesNumber of files changed in tracked changes.
head-branchHead branch name when available.
base-branchBase branch name when available.
chat-error-kindMachine-readable error kind when the chat fails (one of `spend_exceeded`, `org_not_found`, `api_error`, `timeout`).
chat-error-messageHuman-readable error message when the chat fails.