{"id":51223025,"url":"https://github.com/club-cog/devin-handoff","last_synced_at":"2026-07-16T19:01:01.378Z","repository":{"id":365362778,"uuid":"1249723308","full_name":"club-cog/devin-handoff","owner":"club-cog","description":"Hand off tasks to Devin — a plugin/skill for Claude Code, Codex, Cursor, and any coding agent","archived":false,"fork":false,"pushed_at":"2026-06-26T04:43:13.000Z","size":4242,"stargazers_count":37,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-26T06:15:08.171Z","etag":null,"topics":["agent-skills","ai-agents","claude-code","claude-code-plugin","claude-code-skill","codex","cursor","devin","devin-ai","handoff","skills"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/club-cog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-05-26T01:38:55.000Z","updated_at":"2026-06-26T04:43:07.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/club-cog/devin-handoff","commit_stats":null,"previous_names":["club-cog/devin-handoff"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/club-cog/devin-handoff","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/club-cog%2Fdevin-handoff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/club-cog%2Fdevin-handoff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/club-cog%2Fdevin-handoff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/club-cog%2Fdevin-handoff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/club-cog","download_url":"https://codeload.github.com/club-cog/devin-handoff/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/club-cog%2Fdevin-handoff/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35555509,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-16T02:00:06.687Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-skills","ai-agents","claude-code","claude-code-plugin","claude-code-skill","codex","cursor","devin","devin-ai","handoff","skills"],"created_at":"2026-06-28T09:00:31.116Z","updated_at":"2026-07-16T19:01:01.372Z","avatar_url":"https://github.com/club-cog.png","language":"Shell","funding_links":[],"categories":["Source Catalog"],"sub_categories":[],"readme":"# Devin Handoff\n\n[![Built by Devin](https://raw.githubusercontent.com/club-cog/built-by-devin/main/badges/built-by-devin.svg)](https://devin.ai)\n\nHand off tasks to [Devin](https://devin.ai) from any coding agent or the command line.\nSet it up as a plugin or skill in Claude Code, Codex, Cursor, and more.\n\nCreate a Devin session, get a URL, optionally poll until it's done, archive when finished.\n\n![Demo: a coding agent hands three tasks off to three cloud Devin sessions, which open PRs that get merged](assets/devin-handoff-demo.gif)\n\n## Quick Start\n\n### As a Claude Code plugin (1-click install)\n\nAdd the marketplace and install the plugin from inside Claude Code:\n\n```\n/plugin marketplace add club-cog/devin-handoff\n/plugin install devin-handoff@cognition\n```\n\nThen set your API key (get one at https://app.devin.ai/settings/api-keys):\n\n```bash\nexport DEVIN_API_KEY=\"your-key-here\"\n```\n\nRun `/devin-handoff:setup` to verify everything is ready.\n\nThat's it — ask Claude Code to \"hand this off to Devin.\"\n\n### As a Codex plugin\n\nSame idea, from your terminal:\n\n```bash\ncodex plugin marketplace add club-cog/devin-handoff\ncodex plugin add devin-handoff@cognition\nexport DEVIN_API_KEY=\"your-key-here\"\n```\n\nThen ask Codex to \"hand this off to Devin.\"\n\n### As an agent skill\n\nInstall it into your coding agent's skills folder so the agent can hand off\ntasks to Devin on its own:\n\n```bash\ngit clone https://github.com/club-cog/devin-handoff.git\n\n# Copy into your agent's skills directory — adjust the path for your agent\nmkdir -p .your-agent/skills\ncp -r devin-handoff/.agents/skills/devin-handoff/ .your-agent/skills/devin-handoff/\n\n# Set your API key (get one at https://app.devin.ai/settings/api-keys)\nexport DEVIN_API_KEY=\"your-key-here\"\n```\n\nThen ask your agent to \"hand this off to Devin.\" See [examples/](examples/)\nfor per-platform setup guides (Claude Code, Cursor, Codex).\n\nFor agents that use `AGENTS.md`, append the guide:\n\n```bash\ncat devin-handoff/AGENTS.md \u003e\u003e your-repo/AGENTS.md\n```\n\n### From the command line\n\n```bash\n# 1. Set your API key\nexport DEVIN_API_KEY=\"your-key-here\"  # Get one at https://app.devin.ai/settings/api-keys\n\n# 2. Create a session from any git repo\n./devin-handoff/scripts/devin-handoff.sh create --task \"Fix the flaky auth test in CI\"\n# → https://app.devin.ai/sessions/abc123\n\n# 3. (Optional) Poll until it's done\n./devin-handoff/scripts/devin-handoff.sh poll devin-abc123 --interval 15\n```\n\n## How It Works\n\n1. **Gathers git context** — repo slug, branch, uncommitted diff (truncated to 100KB)\n2. **Creates a Devin session** — `POST /sessions` with your task + context\n3. **Prints the session URL** — share it with the user\n4. **(Optional) Polls** — `GET /sessions/{id}` every N seconds until Devin finishes\n\nDevin gets its own VM with shell, browser, and full repo access. It clones the repo, checks out the branch, and starts working. All sessions are tagged with `handoff`.\n\n## How Context Reaches the Cloud Session\n\nDevin starts in a fresh VM, so the script packages up what your local agent\nalready knows and includes it in the session prompt:\n\n- **Repo and branch** — detected from `git remote` and `git rev-parse`, so Devin\n  clones the right repo and checks out the branch you're on\n- **Uncommitted changes** — the output of `git diff HEAD` (truncated to 100KB)\n  is included, so your work-in-progress carries over instead of being lost on\n  the way to the cloud. If you have local edits you don't want sent, commit or\n  stash them before creating the session.\n- **`--context`** — whatever the calling agent has learned so far: files it\n  examined, root-cause hypotheses, partial fixes\n\n```bash\nscripts/devin-handoff.sh create \\\n  --task \"Fix the authentication timeout bug\" \\\n  --context \"Investigated src/auth/session.py and src/auth/middleware.py.\nTimeout is hardcoded at 30m in session.py:42. Middleware doesn't check\nthe configured timeout, always uses the hardcoded value.\"\n```\n\n## Script Reference\n\n```\nUsage:\n  devin-handoff.sh create --task TASK [OPTIONS]\n  devin-handoff.sh poll SESSION_ID [OPTIONS]\n  devin-handoff.sh archive SESSION_ID [OPTIONS]\n\nCommands:\n  create    Create a Devin session and print the session URL\n  poll      Poll a session until it finishes or is waiting on a message from you\n  archive   Archive a completed session\n\ncreate options:\n  --task      Task description for Devin (required)\n  --context   Additional context (files examined, findings, partial fixes)\n  --tag       Extra tag (in addition to the default \"handoff\" tag)\n  --api-url   Devin API base URL (default: https://api.devin.ai)\n  --org-id    Organization ID (required for service keys)\n  --user-id   Create session as this user (service keys only)\n\npoll options:\n  --interval  Polling interval in seconds (default: 30)\n  --archive   Archive the session when it finishes\n  --api-url   Devin API base URL (default: https://api.devin.ai)\n  --org-id    Organization ID (required for service keys)\n\narchive options:\n  --api-url   Devin API base URL (default: https://api.devin.ai)\n  --org-id    Organization ID (required for service keys)\n\nEnvironment:\n  DEVIN_API_KEY   Required. Personal (apk_*) or service (cog_*) key.\n  DEVIN_ORG_ID    Optional. Organization ID for service keys.\n  DEVIN_USER_ID   Optional. User ID for service keys.\n  DEVIN_API_URL   Optional. Override the API base URL.\n```\n\n## API Key Types\n\n- **Personal keys** (`apk_*`): Uses v1 API. Sessions appear in your sidebar.\n- **Service keys** (`cog_*`): Uses v3 API. Requires `--org-id`. Use `--user-id` to make sessions appear in a specific user's sidebar.\n\n## Requirements\n\n- `curl` and `jq`\n- `git` (optional — for automatic repo/branch/diff detection)\n- A [Devin API key](https://app.devin.ai/settings/api-keys)\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclub-cog%2Fdevin-handoff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclub-cog%2Fdevin-handoff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclub-cog%2Fdevin-handoff/lists"}