skills/claude-thread-publisher/skills/claude-thread-publisher/SKILL.md
Publish Claude Code conversation threads as static HTML pages hosted on GitHub Gists, with shareable gistpreview links. Use when the user asks to share, publish, or delete a Claude Code thread.
npx skillsauth add nibzard/skills claude-thread-publisherInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Publish Claude Code conversation threads as beautiful static HTML pages hosted on GitHub Gists, with shareable permalinks via gistpreview.github.io.
Use this skill when the user asks to:
When the user wants to publish the current thread:
Check for GitHub Token:
~/.claude/thread-publisher/config.jsongist scopeLocate Current Session:
session_locator.py to find the current Claude Code session JSONL fileGenerate Content:
render_thread.py to convert JSONL to:
index.html)thread.json)metadata.json)Publish to Gist:
publish_to_gist.py to create/update GitHub Gist with the three filesProvide Result:
https://gistpreview.github.io/?abcdef1234...)When the user wants to delete a published thread:
Locate Current Thread:
session_locator.py + render_thread.py to compute the current thread's hash~/.claude/thread-publisher/index.json)Verify and Delete:
delete_gist.py to delete the corresponding GitHub GistHandle Missing Threads:
When the user wants to update an existing published thread:
Detect Changes:
Update Strategy:
Provide Updated Link:
python ${CLAUDE_PLUGIN_ROOT}/skills/claude-thread-publisher/scripts/session_locator.py --mode current
Returns JSON with session file path and project information.
python ${CLAUDE_PLUGIN_ROOT}/skills/claude-thread-publisher/scripts/render_thread.py \
--input /path/to/session.jsonl \
--output-html /tmp/thread.html \
--output-json /tmp/thread.json \
--metadata /tmp/metadata.json \
--project-path /current/project \
--session-file /path/to/session.jsonl
python ${CLAUDE_PLUGIN_ROOT}/skills/claude-thread-publisher/scripts/publish_to_gist.py \
--html /tmp/thread.html \
--thread-json /tmp/thread.json \
--metadata /tmp/metadata.json \
--project-path /current/project \
--session-file /path/to/session.jsonl
python ${CLAUDE_PLUGIN_ROOT}/skills/claude-thread-publisher/scripts/delete_gist.py \
--thread-hash <hash> # or --session-file /path/to/session.jsonl
gist scope onlyclaude-thread-publisher/
├── SKILL.md # This file
├── examples.md # Example prompts
├── scripts/
│ ├── session_locator.py # Find current Claude Code session
│ ├── render_thread.py # Convert JSONL to HTML/JSON
│ ├── publish_to_gist.py # Create/update GitHub Gists
│ └── delete_gist.py # Delete Gists and manage cleanup
└── templates/ # (reserved for future HTML templates)
The skill stores configuration in ~/.claude/thread-publisher/:
config.json: GitHub token and preferencesindex.json: Mapping of thread hashes to Gist IDs{
"github_token": "ghp_xxxxxxxxxxxxxxxxxxxx",
"gists_private_by_default": true
}
{
"threads": {
"a1b2c3d4e5f6...": {
"gist_id": "abcdef1234567890...",
"gist_url": "https://gist.github.com/abcdef1234567890...",
"last_published_at": "2024-01-01T12:00:00Z",
"project_path": "/home/user/my-project",
"session_file": "/home/user/.claude/projects/abc/sessions/def.jsonl",
"title": "Implement user authentication feature"
}
}
}
gist scope (minimal permission)"No session file found"
~/.claude/projects/ exists and contains relevant project"GitHub token required"
gist scope"Gist creation failed"
"Thread hash mismatch"
"Publish this Claude Code conversation as a shareable link."
"Update the published link for this thread with the new messages."
"Delete the public link you created for this conversation."
"Show me all the threads I've published."
requests library for HTTP requestsjson, pathlib, datetime, argparse, hashlibcontent-media
Fetch transcripts from YouTube videos. Use when user asks to get, download, extract, or retrieve YouTube video transcripts, captions, or subtitles. Also activates for video content analysis, summarizing YouTube videos, or processing video content.
content-media
Fetch transcripts from YouTube videos. Use when user asks to get, download, extract, or retrieve YouTube video transcripts, captions, or subtitles. Also activates for video content analysis, summarizing YouTube videos, or processing video content.
tools
Use tmux to run and test our interactive CLI/TUI end-to-end. Includes how to start, send keys, capture output, and cleanly stop (double Ctrl+C).
development
Create new Agent Skills interactively or from templates. Use when user wants to create, generate, scaffold, or build a new skill, or mentions creating skills, writing skills, skill templates, skill development.