CSCTF — Chat Shared Conversation To File
Core Capability: Convert AI share links into clean Markdown + HTML with preserved code fences, stable filenames, and optional GitHub Pages publishing.
Quick Start
# Install
curl -fsSL https://raw.githubusercontent.com/Dicklesworthstone/chat_shared_conversation_to_file/main/install.sh | bash
# Convert any share link
csctf https://chatgpt.com/share/69343092-91ac-800b-996c-7552461b9b70
Output:
<conversation_title>.md— Clean Markdown with preserved code fences<conversation_title>.html— Styled static HTML (zero JavaScript)
THE EXACT PROMPT — Convert Share Link
Convert this conversation to Markdown:
csctf <share-url>
# Example providers:
csctf https://chatgpt.com/share/69343092-91ac-800b-996c-7552461b9b70
csctf https://gemini.google.com/share/66d944b0e6b9
csctf https://grok.com/share/bGVnYWN5_d5329c61-f497-40b7-9472-c555fa71af9c
csctf https://claude.ai/share/549c846d-f6c8-411c-9039-a9a14db376cf
THE EXACT PROMPT — Publish to GitHub Pages
# Publish with defaults (creates repo if needed)
csctf <url> --publish-to-gh-pages --yes
# Save settings for future use
csctf <url> --publish-to-gh-pages --remember --yes
# Subsequent: just use --yes
csctf <url> --yes
# Custom repo
csctf <url> --publish-to-gh-pages \
--gh-pages-repo myuser/my-chats \
--gh-pages-branch main \
--yes
THE EXACT PROMPT — Batch Archive
# Archive multiple conversations
for url in $URLS; do
csctf "$url" --outfile ~/archive/ --quiet
done
# Markdown only (faster, smaller)
csctf <url> --md-only --quiet
# HTML only for embedding
csctf <url> --html-only --outfile site/chat.html
Supported Providers
| Provider | URL Pattern | Method |
|---|---|---|
| ChatGPT | chatgpt.com/share/* |
Headless Chromium |
| Gemini | gemini.google.com/share/* |
Headless Chromium |
| Grok | grok.com/share/* |
Headless Chromium |
| Claude | claude.ai/share/* |
Your Chrome session |
Claude.ai Special Handling
Claude.ai uses Cloudflare protection. CSCTF handles this automatically:
- Copies your Chrome session cookies to a temporary profile
- Launches Chrome with remote debugging
- Extracts conversation via Chrome DevTools Protocol
Requirement: Chrome installed + logged into claude.ai
Essential Commands
| Flag | Description |
|---|---|
--outfile <path> |
Override output path |
--md-only |
Skip HTML output |
--html-only |
Skip Markdown output |
--quiet |
Minimal logging |
--timeout-ms <ms> |
Navigation timeout (default: 60000) |
--publish-to-gh-pages |
Publish to GitHub Pages |
--yes |
Skip confirmation prompts |
Output Format
Markdown
# Conversation: <Title>
**Source:** https://chatgpt.com/share/...
**Retrieved:** 2026-01-08T15:30:00Z
## User
How do I sort an array in Python?
## Assistant
Here's how to sort:
```python
my_list.sort()
### HTML Features
- **Zero JavaScript** — Safe for any hosting
- **Inline CSS** — Light/dark mode via `prefers-color-scheme`
- **Syntax highlighting** — highlight.js themes inline
- **Table of contents** — Auto-generated from headings
---
## Filename Generation
"How to Build a REST API" → how_to_build_a_rest_api.md "Python Tips & Tricks!" → python_tips_tricks.md "File exists already" → file_exists_already_2.md
Rules: lowercase, non-alphanumerics → `_`, max 120 chars, collision suffix
---
## Performance
| Phase | Time |
|-------|------|
| First run (Chromium download) | 30-60s |
| Subsequent runs | 5-15s |
| Claude.ai (uses local Chrome) | 5-10s |
---
## Troubleshooting
| Symptom | Fix |
|---------|-----|
| "No messages found" | Link is private; verify public share |
| Bot detection | Retry; verify link in browser |
| Timeout | Raise `--timeout-ms 90000` |
| Publish fails (auth) | Ensure `gh auth status` passes |
| Claude.ai Cloudflare | Complete verification in Chrome window |
---
## Installation
```bash
# One-liner
curl -fsSL https://raw.githubusercontent.com/Dicklesworthstone/chat_shared_conversation_to_file/main/install.sh | bash
# Pin version
VERSION=v1.0.0 curl -fsSL .../install.sh | bash
# Verify checksum
curl -fsSL .../install.sh | bash -s -- --verify
References
| Topic | Reference |
|---|---|
| Full command reference | COMMANDS.md |
| Processing algorithms | ALGORITHMS.md |
| GitHub Pages setup | GITHUB-PAGES.md |