Devin vs Cursor background agents vs Claude Code for taking a ticket through to a merged PR?
All three can take a ticket to an open PR in a cloud sandbox. Devin and Cursor start from a Jira or Linear assignment, Slack or GitHub. Claude Code starts from Slack, GitHub, the terminal or an API call. The gap is the review loop: what each one fixes on its own, and what you have to set up first.
Devin vs Cursor vs Claude Code is mostly a question of plumbing, not model quality. All three can pick up a ticket, work in a cloud VM, and open a pull request. What can start the agent? Who owns the PR? And what happens when a reviewer or CI pushes back? The ticket-to-PR loop is the path a task takes from a ticket to a merged pull request. We analyzed each vendor's current docs on 2026-11-08 and mapped that loop for each tool.
| Step | Devin | Cursor cloud agents | Claude Code |
|---|---|---|---|
| Intake | Jira or Linear assignee, label or mention; Slack; /devin on a PR | Jira or Linear assignee or @Cursor; Slack; @cursor on GitHub | Slack @Claude or Claude Tag; @claude on GitHub; claude --cloud; API trigger |
| Where it runs | Session booted from a snapshot your blueprints build | Isolated cloud VM | Anthropic-managed VM, or GitHub Actions runners |
| PR | Opens it, links it on the ticket | Opens it, shows status in Linear | Pushes a branch; you or Claude open the PR |
| Review loop | Answers PR comments while the session is live; automations for CI | Bugbot Autofix for Bugbot findings; automations for comments and CI | Auto-fix, once on, answers comments and CI failures |
Intake: where the ticket starts the agent#
Devin and Cursor both plug into Jira and Linear. In Jira, you assign the work item to Devin, mention it in a comment, or add the devin label. Then "Devin plans the work, writes the code, opens a pull request, and reports back on the work item" (Devin Jira docs). In Linear, assignment or an @skills: label starts a session (Devin Linear docs). In Slack, an @Devin mention reads the earlier messages in the thread (Devin Slack docs).
With Cursor, you assign the issue to Cursor or mention @Cursor. For example, a [repo=owner/repository] tag in a Linear issue picks the repo (Cursor Linear docs). Its Jira app needs Rovo and a Teams or Enterprise plan (Cursor Jira docs). By contrast, Devin's Jira setup works with Rovo turned off, through a service user.
Claude Code starts from Slack, GitHub or the terminal. In Slack, an @Claude mention with a coding task "creates a Claude Code cloud session," and Claude reads the thread to choose a repository (Claude Code in Slack). That app serves Pro, Max and Ultra accounts. Claude Tag is the Team and Enterprise version, a public beta that turns a reported bug into a draft PR (Claude Tag docs). On GitHub, the Claude Code GitHub Action answers @claude. Anthropic says you can "use it to turn issues into pull requests" (Claude Code GitHub Actions). However, neither page names Jira or Linear. Scheduled tasks, in research preview, add a trigger your own tooling can call over HTTP (Claude Code scheduled tasks).
Sandbox and PR: who owns the branch#
Cursor's agents run "in isolated VMs in the cloud with full development environments," each on its own branch (Cursor cloud agent docs). From Linear, they "create PRs automatically when complete." A Devin blueprint lists the tools, dependencies and commands for Devin's environment. A build runs it, clones your repos, and saves a snapshot that each session boots from (Devin blueprint docs). From Jira, Devin links its PR on the work item and posts it as a comment.
A Claude Code cloud session runs in an isolated VM and "keeps running after you close your laptop" (Claude Code cloud docs). In that Slack app, Create PR opens GitHub's compare page, one PR per session.
A Devin admin chooses whether PRs open as Devin, as the user, or as the user only (Devin GitHub docs). Claude Code posts its review replies "using your GitHub account," labeled as coming from Claude Code.
The review loop: who fixes the comments#
This is where tickets stall. A January 2026 study read 33,000 agent-written PRs on GitHub. Unmerged ones tended to be larger and to fail CI more often (Ehsani et al.). It also found "duplicate PRs, unwanted feature implementations, and agent misalignment."
Auto-fix is Claude Code's PR watcher, turned on per PR. Claude "subscribes to GitHub activity on the PR, and when a check fails or a reviewer leaves a comment, Claude investigates and pushes a fix if one is clear." Ambiguous or architectural comments come back to you. It cannot see merge conflicts, since GitHub sends no webhook for them (Claude Code cloud docs).
Devin "automatically responds to comments on PRs its sessions are working on, as long as the session has not been archived" (Devin GitHub docs). For CI, you add an automation on the check-run trigger, filtered to failures (Devin automations). Bugbot Autofix spawns a cloud agent to fix the bugs Bugbot finds, with "max 3 attempts per PR" when it commits to your branch (Cursor Bugbot docs). Human review comments and CI results go through Cursor Automations, which offer both triggers (Cursor Automations).
Devin's docs advise branch protection so required checks pass before it can merge. Keep a human approval on the branch for all three.
What none of them brings to the ticket#
By default each tool reads the ticket, the thread it came from, and the repo. For example, none is pointed at the PR that reverted this approach in April, or the incident behind the timeout it is about to change. A May 2026 study of 9,799 human-reviewed agent PRs found "only 35.7% of rejected PRs reflected clear agentic failures." Workflow constraints drove another 31.2% (arXiv 2605.22534). Our starting packet for an unattended run is in context for background coding agents, and the inputs a fleet needs are in what context cloud agents need.
That gap is where Unblocked fits, whichever agent you pick. It is a context engine that reasons across code, PRs, issues, docs, Slack and incident tools. It answers over MCP, and permissions mirror the source systems. One server can serve Claude Code, Cursor, Copilot and Devin. The setup is in one MCP for Claude Code, Codex and Devin.
How to choose this week#
Check the tracker hook, then test the review loop, where hours go.
- Jira or Linear tickets reach Devin and Cursor natively. Claude Code needs Slack, GitHub or an API call.
- Rerun five closed tickets that needed two or more review rounds, and count rounds until approval.
- Leave one human comment and one failing check on each PR. Note which agent fixes which, and what you had to set up first.
- Check who the PR and its replies show as author, and whether that fits your audit rules.
For the day-to-day editor side, see Cursor vs Claude Code.


