| name | devin-handoff |
| description | Spin off parallel cloud Devin sessions. Hand off a task to a fresh cloud Devin session that runs in the background — each gets its own VM with shell, browser, and full repo access — so you can fan out several sessions at once and keep working locally while they run. Use for parallel or long-running work and anything needing Devin's full environment: multi-file changes, running servers, CI work, browser automation, migrations, or large refactors. Also an API for reading and interacting with current sessions — given a session URL or ID, the check/poll commands return its PR, status, branch, and latest message.
|
Devin Handoff
Hand off a task to Devin. Devin gets its own VM with shell, browser,
and full repo access. You get a URL to watch progress, or can poll
until the session completes.
All scripts/devin-handoff.sh paths below are relative to this skill's
directory. If installed as a Claude Code or Codex plugin, use
"${CLAUDE_PLUGIN_ROOT}/.agents/skills/devin-handoff/scripts/devin-handoff.sh".
Prerequisites
When to use
- Task needs a running server, database, or Docker
- Task requires browser interaction (OAuth, screenshots, E2E tests)
- Task involves CI/CD pipelines or deployments
- Task is long-running and the user wants to continue locally
- You need parallel execution on a separate machine
Steps
1. Gather context
From the current working directory:
- Repo: Run
git remote get-url origin, extract owner/repo
- Branch: Run
git rev-parse --abbrev-ref HEAD
- Diff: Run
git diff HEAD (truncated to 100KB automatically)
- Task: The user's request, concise and specific
- Context (optional): Summarize what you've learned — files examined,
root cause hypotheses, partial fixes
2. Create the session
scripts/devin-handoff.sh create \
--task "Fix the auth timeout bug — update middleware to respect configured timeout" \
--context "Investigated src/auth/session.py and src/auth/middleware.py. Timeout is hardcoded at 30m in session.py:42."
The script auto-detects repo, branch, and diff. The --context flag is
optional but helps Devin start faster. All sessions are automatically
tagged with handoff.
3. Report the URL and poll
Tell the user the session URL. If they want to wait for completion,
poll until the session finishes:
scripts/devin-handoff.sh poll SESSION_ID --interval 15
The poll command prints status updates and exits when Devin finishes.
It also prints the PR URL if one was created.
4. Archive when done (optional)
Archive a session to clean it up from the sidebar:
scripts/devin-handoff.sh archive SESSION_ID --org-id ORG_ID
Or use --archive on poll to auto-archive when the session finishes:
scripts/devin-handoff.sh poll SESSION_ID --interval 15 --archive --org-id ORG_ID