{
  "markdown": "# claude-code-el-coderabbit\n\nCommunity event source for [claude-code-event-listeners](https://github.com/mividtim/claude-code-event-listeners) that polls for new [CodeRabbit](https://coderabbit.ai) activity on a GitHub pull request.\n\n## Install\n\n```bash\n# From the marketplace (recommended — auto-discovers, pulls in el as dependency)\nclaude plugin marketplace add mividtim/claude-code-el-coderabbit\nclaude plugin install el-coderabbit\n\n# Or manually register the source\ngit clone https://github.com/mividtim/claude-code-el-coderabbit.git\n/el:register ./claude-code-el-coderabbit/sources.d/coderabbit.sh\n```\n\n## Usage\n\n```\n/el:listen coderabbit 1316\n```\n\nPass a PR number to start polling. When CodeRabbit posts a review, inline comment, thread reply, or top-level comment, the listener exits with the event details.\n\n### With a timestamp filter\n\n```\n/el:listen coderabbit 1316 2025-01-15T10:30:00Z\n```\n\nOnly detect activity **after** the given timestamp. Useful for re-subscribing after processing an event — use the `TIMESTAMP` from the previous output as the new baseline.\n\n### Environment variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `REPO` | Current `gh` repo | GitHub repo in `owner/name` format |\n| `POLL_INTERVAL` | `30` | Seconds between API polls |\n\n## Output Format\n\n```\n---EVENT---\nTYPE thread_reply\nTIMESTAMP 2025-01-15T10:36:15Z\nPATH src/syndication/syndication.controller.e2e-spec.ts\nCOMMENT_ID 2784545640\nIN_REPLY_TO 2784537786\nTHREAD_NODE_ID PRRT_kwDOIhsEuM5tlN32\nBODY\n@mividtim Thank you for the clarification. You're right...\n```\n\n### Event types\n\n| TYPE | When | Extra fields |\n|------|------|-------------|\n| `review` | CodeRabbit posts a full review (APPROVED, CHANGES_REQUESTED, COMMENTED) | `STATE` |\n| `comment` | CodeRabbit posts an initial inline review comment | `PATH`, `COMMENT_ID` |\n| `thread_reply` | CodeRabbit replies to an existing review thread | `PATH`, `COMMENT_ID`, `IN_REPLY_TO`, `THREAD_NODE_ID` |\n| `issue_comment` | CodeRabbit posts a top-level comment (walkthrough, summary) | — |\n\nAll events include `TIMESTAMP` and `BODY`.\n\n### Thread reply workflow\n\nThe `thread_reply` event type enables automated CodeRabbit thread management:\n\n1. CodeRabbit posts `CHANGES_REQUESTED` review with inline comments\n2. You reply in-thread with fixes or pushback\n3. Start the listener: `/el:listen coderabbit 1326 <timestamp>`\n4. CodeRabbit replies in thread → listener fires with `TYPE thread_reply`\n5. Read the `BODY` — if CodeRabbit accepts, resolve the thread:\n   ```\n   gh api graphql -f query='mutation { resolveReviewThread(input: {threadId: \"PRRT_...\"}) { thread { isResolved } } }'\n   ```\n   Use the `THREAD_NODE_ID` from the event output as the `threadId`.\n6. Resolving all threads triggers CodeRabbit to post an `APPROVED` review\n\n## Typical workflow\n\n```\nPush code → start listener → CodeRabbit reviews →\n  listener fires → read comments → make fixes / push back →\n  re-subscribe → CodeRabbit replies in thread →\n  listener fires → resolve accepted threads →\n  CodeRabbit approves → merge\n```\n\nAfter processing each notification, re-subscribe with the `TIMESTAMP` from the output:\n\n```\n/el:listen coderabbit 1316 2025-01-15T10:35:22Z\n```\n\n## Requirements\n\n- [claude-code-event-listeners](https://github.com/mividtim/claude-code-event-listeners) plugin installed\n- [`gh` CLI](https://cli.github.com/) (authenticated)\n- [`jq`](https://jqlang.github.io/jq/download/)\n\n## License\n\nMIT\n",
  "bytes": 3462,
  "sha": "f898461ea187d5ad2566a9ced8816675ec847249c7dd689583ca7af7dbb47105",
  "repo_slug": "mividtim/claude-code-el-coderabbit",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_mividtim_claude_code_el_coderabbit_claud_894aacc5/readme"
}