dipjyotimetia/Deep Agent Action
Issue/PR coding agent powered by the Deep Agents JS harness, running in-process on the runner.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jul 8, 2026
- License
- MIT
Pinned Snippet
uses: dipjyotimetia/deep-agent-action@026c378ef1f8571ef9e626d3e29e8945807504c2 # v0.2.1tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| trigger_phrase | Phrase that triggers the agent in issue/PR/comment bodies. | no | @agent |
| prompt | Explicit instruction for workflow_dispatch runs (bypasses the trigger phrase). | no | — |
| model | Model id, optionally provider-prefixed. Providers: anthropic, openai, azure, google (Gemini), openrouter, openai-compatible (+ base_url), bedrock (AWS), vertexai (GCP). Examples: 'claude-sonnet-4-6', 'openai:gpt-5', 'google:gemini-2.5-pro', 'openrouter:openai/gpt-4o', 'bedrock:anthropic.claude-3-5-sonnet-20241022-v2:0', 'openai-compatible:llama-3.1-70b'. | no | claude-sonnet-4-6 |
| base_url | Endpoint URL for the 'openai-compatible' provider (Groq, xAI, DeepSeek, Together, Ollama, vLLM, …). | no | — |
| mcp_config | MCP servers JSON: { "mcpServers": { name: { command, args, env } | { url } } }. Tools are exposed to the agent. | no | — |
| harness_profile | Optional deepagents harness profile JSON. Supports systemPromptSuffix, toolDescriptionOverrides, excludedTools, excludedMiddleware, and generalPurposeSubagent. Strictly validated before execution. | no | — |
| filesystem_permissions | Optional deepagents filesystem permission rules JSON. Each rule has operations (read/write), absolute glob paths, and optional mode (allow/deny). Repository .deepagents memory/skills remain write-protected. | no | — |
| interrupt_on | Optional deepagents HITL interrupt policy JSON mapping tool names to true/false or an allowedDecisions object. MCP tools require approval by default; an explicit false disables that default. | no | — |
| allowed_permissions | Comma-separated repository permission levels allowed to trigger the agent. | no | write,admin |
| allowed_commands | Comma/newline-separated allow-list of shell command names the agent may run. Defaults to a common dev toolchain. | no | — |
| denied_commands | Extra command names to block (merged with the built-in deny-list). | no | — |
| fork_allow_label | Label a write-access user can apply to authorize the agent on a fork PR. If unset, fork PRs are never run. | no | — |
| auto_run_label | Label that, when applied to an issue, triggers the agent without a trigger-phrase match. | no | — |
| auto_run_assignee | GitHub username that, when assigned to an issue, triggers the agent without a trigger-phrase match. | no | — |
| auto_run_default_instruction | Fallback instruction for an auto-run (auto_run_label/auto_run_assignee) event when the issue has no title/body text. | no | — |
| shell_timeout_seconds | Max seconds for a single shell command. | no | 600 |
| comment_debounce_ms | Minimum interval between tracking-comment progress edits. | no | 8000 |
| provider_api_key | Model provider API key (anthropic/openai/google/openrouter/openai-compatible). May also be supplied via PROVIDER_API_KEY / ANTHROPIC_API_KEY / OPENAI_API_KEY / GOOGLE_API_KEY / OPENROUTER_API_KEY env. Bedrock uses the AWS env chain; Vertex AI and Azure use their own standard env vars. | no | — |
| app_id | GitHub App id used to mint a scoped, short-lived installation token. May also be supplied via APP_ID env. | no | — |
| app_private_key | GitHub App private key (PEM). May also be supplied via APP_PRIVATE_KEY env. | no | — |
| github_token | Token for GitHub API/git operations. Defaults to the workflow's GITHUB_TOKEN, so no setup is needed. NOTE: PRs opened with GITHUB_TOKEN do not trigger downstream CI — configure a GitHub App (app_id + app_private_key) only if you need the agent's PRs to run your CI. | no | ${{ github.token }} |
| require_push_approval | Gate landing of changes behind human review: opens a draft PR (issue mode) or pushes a proposed branch with a compare link (PR mode). | no | false |
| verified_commits | Land commits via the GitHub App's createCommitOnBranch GraphQL mutation so they show as "Verified" on GitHub, instead of a plain git push. Requires app_id + app_private_key; the run fails loudly if set without App auth. Limitation: executable-bit/symlink changes are not preserved (files always land as mode 100644). | no | false |
| apply_suggestions | Make every review run also apply its own single-line suggestions directly and land them as a commit, instead of only leaving comments. A mention of "review and fix" always does this regardless of this input. | no | false |
| enable_triage | Classify a new issue with no trigger phrase via a cheap one-shot model call, deciding whether to open a PR, request a review, ask for clarification, add labels, or do nothing. Default off. Only ever acts when the issue's author passes the same human/permission checks as a manual mention, and any resulting PR is forced through the approval gate. | no | false |
| triage_allowed_labels | Comma/newline-separated labels the triage classifier may apply. Anything outside this list is ignored. | no | — |
| triage_model | Model used for the triage classification call. Defaults to the 'model' input. | no | — |
| max_cost_usd | Abort the run once estimated spend reaches this many USD (requires a known model price; pair with max_total_tokens for unpriced models). Partial work lands as a draft for review. Unset = no cap. | no | — |
| max_total_tokens | Abort the run once cumulative billed tokens (input + output, re-counted each model call as context grows — set generously) reach this many. Partial work lands as a draft for review. Unset = no cap. | no | — |
| max_runtime_minutes | Abort the agent once it has run this many minutes; partial work lands as a draft for review (like a budget stop). Unset = no cap. (A job-level timeout-minutes still applies but kills the run without landing anything.) | no | — |
| recursion_limit | Max LangGraph super-steps per run. Raise for very long multi-step tasks that abort with a recursion-limit error. | no | 150 |
| execution_mode | Reserved. Only 'in_runner' is implemented in v1; 'bridge' (hosted Open SWE) is planned (P1). | no | in_runner |
| langgraph_url | Reserved for bridge mode (P1). | no | — |
| assistant_id | Reserved for bridge mode (P1). | no | — |
Outputs
| name | description |
|---|---|
| status | Run outcome: success | skipped | refused | failed | interrupted. |
| pr_url | URL of the opened pull request, if any. |
| branch | Branch the agent pushed to, if any. |
| budget_stopped | 'true' when the run was stopped early by a cost/token budget cap (partial work opened for review). |
| timed_out | 'true' when the run was stopped early by max_runtime_minutes (partial work opened for review). |
| interrupted | 'true' when deepagents paused before a configured tool requiring approval. |
| result_json | Machine-readable run record (plan, tool calls, files changed, outcome). |