A Claude Code plugin that converts Confluence XML site exports into clean Markdown GitHub repositories — with full space/page hierarchy, attachments via Git LFS, and zero manual effort.
18,000+ pages? One command. Two minutes.
- Parses Confluence XML exports (memory-efficient — handles millions of lines)
- Deduplicates page versions (keeps only the latest)
- Converts Confluence HTML to clean Markdown (macros, JIRA links, user mentions, code blocks, images, emoticons)
- Preserves space/page hierarchy as nested directories
- Copies attachments alongside their pages
- Creates a private GitHub repo with Git LFS for large binaries
- Commits and pushes everything
# 1. Add the marketplace
/plugin marketplace add closedloop-ai/confluence-to-github-md
# 2. Install the plugin
/plugin install confluence-to-github-md@confluence-to-github-md/confluence-to-github ~/Downloads/Confluence-export my-org
/confluence-to-github ~/Downloads/Confluence-export my-org my-wiki-archive
| Argument | Description | Required |
|---|---|---|
| 1st | Path to Confluence export directory (must contain entities.xml) |
Yes |
| 2nd | GitHub organization or user | Yes |
| 3rd | Repository name (default: confluence-archive) |
No |
- Python 3.10+ with
lxml,beautifulsoup4,markdownify(auto-installed) - GitHub CLI (
gh) authenticated with repo-create permissions - Git LFS (auto-installed via Homebrew if missing)
- Go to Confluence Admin > Backup & Restore (or Space Settings > Content Tools > Export)
- Choose XML export (full site or single space)
- Download the
.zipand extract it — you'll get a directory withentities.xml,attachments/, etc. - Point the plugin at that directory
| Confluence feature | Markdown output |
|---|---|
| Pages with children | Directory with index.md + child pages |
| Leaf pages | page-title.md |
| Info/Note/Warning/Tip boxes | > **INFO:** ... blockquotes |
| Code blocks | Fenced code blocks |
| JIRA links | [PROJ-123] |
| User mentions | @user |
| Images |  |
| Tables | Markdown tables |
| Emoticons | Unicode emoji |
| Blog posts | blog/YYYY-MM-DD-title.md |
Large binary attachments are automatically tracked via Git LFS:
*.mov *.mp4 *.avi *.tar *.tar.gz *.zip *.exe *.dmg *.key *.pptx *.xlsx *.jar *.pdf *.psd *.ai *.sketch
MIT