aaronsteers/Devin Action

Triggers a Devin.ai session with a given prompt or playbook. Optimized for use directly or as a response to slash commands.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit May 21, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: aaronsteers/devin-action@6836af14bc904e8eff8e4f2b35eac4c428fc5f34 # v1.0.0

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

namedescriptionrequireddefault
comment-idComment ID (optional, for reply chaining and context)no
issue-numberIssue or PR number (optional, for context). This can be either an issue number or a pull request number.no
playbook-macroPlaybook macro (optional, for structured workflows) - should start with '!' (e.g., !my_playbook)no
prompt-textAdditional prompt text (optional). Mutually exclusive with prompt-file.no
prompt-filePath to a file containing the prompt text (optional, relative to the repository root). Use this instead of prompt-text to avoid YAML quoting/escaping issues with multi-line prompts. Mutually exclusive with prompt-text.no
devin-tokenDevin API Token (required for authentication). Requires a v3-compatible service user credential with ManageOrgSessions permission (service users only; PATs are not supported for v3). yes
github-tokenGitHub Token (required for posting comments and accessing repo context)no
start-messageMessage to include in the start commentno🤖 **Starting Devin AI session...**
tagsAdditional tags to apply to the Devin session (supports CSV or line-delimited format). Automatic tags are always added: gh-actions-trigger and playbook-{macro-name} if playbook-macro is provided. Cannot be used with reuse-session.no
reuse-sessionExisting Devin session ID or URL to inject a message into (optional). When provided, sends a message to an existing v3 session instead of creating a new one. Accepts either a session ID or a full URL (e.g., https://app.devin.ai/sessions/abc123). Mutually exclusive with 'tags' input. Requires 'org-id'.no
dry-runIf 'true', the action will simulate the process without making an actual API call to Devinnofalse
wait-for-stopped-statusIf 'true', polls GET /v3/organizations/{org_id}/sessions/{devin_id} until status_detail is any non-working state.nofalse
wait-minutes-maxMaximum minutes to poll before timing out (only used when wait-for-stopped-status is enabled)no20
api-versionDevin API version to use. Only 'v3' is supported; any other value fails fast.nov3
advanced-modeV3 API advanced mode (optional). Enables specialized session behaviors for automation workflows. Options: 'analyze' (analyze existing sessions via session-links). Requires org-id.no
session-linksSession URLs or IDs to provide as context (optional, supports CSV or line-delimited format). Required when advanced-mode is 'analyze'. When provided without advanced-mode, defaults to 'analyze' mode automatically.no
org-idDevin organization ID. Required for v3 session creation, session reuse, and polling.yes
max-acu-limitMaximum ACU limit for the session (optional, v3 API only). Caps the compute budget for the session.no
playbook-idPlaybook ID to use for the session (v3 API only). When set, the session will follow the referenced playbook's instructions. The playbook must already exist in the Devin API (synced via the ai-skills repo or created manually).no
child-playbook-idPlaybook ID for child sessions (v3 API only).no
bypass-approvalIf 'true', bypass the approval step for session creation (v3 API only). Requires UseDevinExpert permission.nofalse
structured-output-schemaJSON Schema describing the structured output Devin should produce. Accepts YAML or JSON (YAML 1.2 is a superset of JSON, so plain JSON also works). Must parse to a top-level object. Ignored when using 'reuse-session'.no
structured-output-requiredIf 'true', require Devin to submit final structured output before each turn ends. If 'false', structured output remains available but optional. Ignored when using 'reuse-session'.no
namedescription
session-idThe Devin session ID
session-urlThe URL to view the Devin session
promptThe base64-encoded prompt sent to Devin
prompt_readableThe human-readable prompt sent to Devin
run-urlThe GitHub Actions run URL
statusThe terminal status_detail value when polling completes (only set when wait-for-stopped-status is enabled)
summaryThe last message from the session (only set when wait-for-stopped-status is enabled)
structured-outputThe session structured_output as compact JSON (only set when wait-for-stopped-status is enabled and the session has structured output)