If you find this tool helpful & would like to support its maintenance, please consider leaving a tip on:
https://ko-fi.com/piknockyou
Thank you! :-)
For a quick impression of this script, refer to the screenshots at the bottom.
GitHub | Full Issue Thread Markdown Exporter/Downloader
Instantly export complete GitHub issue threads to clean, structured Markdown files. Captures the full conversation including all comments, metadata, cross-references, related PRs, linked commits, and timeline events via the GitHub REST API.
Why You Need This
GitHub's native export options are limited:
- No built-in export: GitHub doesn't offer a way to download issues as documents.
- Copy-paste loses structure: Manual copying breaks formatting, loses metadata, and misses comments.
- API complexity: Fetching complete issue data requires multiple paginated API calls.
- Context scattered: Related PRs, linked commits, and cross-references are spread across the interface.
This script gives you complete, well-organized exports of any issue with a single click.
What It Does
- One-click export: A floating button appears automatically on issue pages.
- API-powered: Fetches directly from GitHub's REST API for complete, accurate data.
- Clean output: Generates properly formatted Markdown with headers, metadata, and clear structure.
- Draggable button: Right-click and drag to reposition; location persists across sessions.
Content Captured
- 📋 Issue Details: Title, state (open/closed/completed), author, timestamps
- 🏷️ Metadata: Labels, assignees, milestone information
- 💬 All Comments: Complete comment thread with author attribution and timestamps
- 👍 Reactions: Emoji reaction counts on issue and comments
- 🔗 References Section: Deduplicated list of related PRs, linked issues, duplicates, and commits
- 📜 Timeline (Optional): Verbose audit log including label changes, renames, close/reopen events
Advanced Features
- 📄 Pagination Handling: Automatically fetches all comments regardless of thread length
- 🔄 Cross-References: Captures issues/PRs that reference this issue (same-repo and cross-repo)
- 🔀 Duplicate Detection: Identifies issues marked as duplicates via labels
- 📝 Commit Links: Includes commits that reference the issue with optional message fetching
- 📦 Collapsible Comments: Optionally wrap long comments in
<details> blocks
- ⚡ Cancellable: Click during export to abort the operation
⚙️ Configuration
Right-click the export button to open the Settings Panel.
Content Options
- Include/exclude header metadata (labels, assignees, milestone)
- Show/hide author information and timestamps
- Toggle reaction counts
- Show comment IDs for deep linking
References Section (Recommended)
- Toggle the entire references section
- Filter by: same-repo vs cross-repo references
- Filter by type: Issues, Pull Requests, Duplicates, Commits
- Optional: Fetch full commit messages (extra API calls)
Timeline Section (Verbose)
- Enable chronological audit log
- Filter event types: cross-references, commits, renames, label changes, close/reopen events
- Useful for understanding the full history of an issue
Formatting
- Collapse long comments (configurable threshold)
- Custom separator between comments
Usage
- Left-click: Download issue as Markdown
- Right-click: Open the Settings Panel
- Right-click + Drag: Move the button anywhere on screen
Installation
- Install Violentmonkey, Tampermonkey, or Greasemonkey.
- Install this script.
- Visit any issue on GitHub.com (e.g.,
github.com/owner/repo/issues/123).
Output Example
The exported Markdown includes:
# Issue Title
> **Repository:** [owner/repo](https://github.com/owner/repo)
> **Issue:** [#123](https://github.com/owner/repo/issues/123)
> **State:** 🟢 open
> **Labels:** `bug`, `help wanted`
> **Created:** Jan 15, 2024
---
## Description
*Opened by [@username](https://github.com/username)* *on Jan 15, 2024*
Issue body content here...
---
## References
### Related Pull Requests (2)
- [owner/repo#456](https://github.com/owner/repo/pull/456) — Fix for this issue (merged Jan 20, 2024)
### Related Issues (1)
- [owner/repo#789](https://github.com/owner/repo/issues/789) — Similar problem (open)
---
## Comments (5)
### Comment #1 — [@contributor](https://github.com/contributor) · Jan 16, 2024
Comment content here...
👍 3 · ❤️ 1
---
...
Technical Details
- API Used: GitHub REST API v3 with
2022-11-28 version header
- Endpoints:
/repos/{owner}/{repo}/issues/{number}, /comments, /timeline
- Rate Limits: Respects GitHub API rate limits; warns when approaching threshold
- Authentication: Works with public repos; private repos require being logged in
- Pagination: Handles up to 100 items per page, automatically fetches all pages
FAQ
Q: Does this work with private repositories?
A: Yes, as long as you're logged into GitHub in your browser. The script uses your existing session.
Q: Why is the References section separate from Timeline?
A: References provides a clean, deduplicated summary of related items. Timeline is a verbose chronological log of all events. Most users only need References.
Q: What counts as a "duplicate"?
A: Issues that cross-reference this issue AND have a label named "duplicate" (case-insensitive).
Q: Can I export without hitting rate limits?
A: Yes, for most issues. The script fetches efficiently and includes delays between requests. Very large issues with hundreds of comments may approach limits on unauthenticated requests.
Q: Does this work on GitHub Enterprise?
A: Currently only github.com. Enterprise support could be added by modifying the @match pattern and API base URL.