Claude JSON to Markdown Converter (cj2md)
A command-line tool that converts Anthropic Claude conversation exports to Markdown files.
Installation
# Run directly (recommended)
uvx cj2md <input.json> [output_dir]
# Or install globally
uv tool install claude-json-to-markdown
# Or add to a project
uv add claude-json-to-markdown
Exporting Your Data
Follow Anthropic's export guide:
- Click your initials (lower left) > Settings > Privacy > Export data
- Download link arrives via email
Usage
cj2md [OPTIONS] JSON_INPUT_FILE [MARKDOWN_OUTPUT_DIRECTORY]
Arguments
| Argument | Description | Default |
|---|---|---|
JSON_INPUT_FILE |
Path to exported JSON file | Required |
MARKDOWN_OUTPUT_DIRECTORY |
Output directory for .md files | markdown_conversations |
Options
| Option | Description |
|---|---|
-l, --limit INT |
Limit number of conversations processed |
--log-path PATH |
Custom log file path |
--no-summary |
Omit conversation summary from header |
--no-thinking |
Omit Claude's thinking blocks |
--no-citations |
Omit References section with URLs |
--no-tools |
Omit tool usage (web_search, artifacts, etc.) |
--verbose-tools |
Show full tool inputs/outputs |
Example
uvx cj2md conversations.json ./output --limit 50 --no-thinking
Output Format
Each conversation becomes a Markdown file named YYYY-MM-DD_slugified-name_uuid.md containing:
- Header: UUID, name, timestamps, optional summary
- Messages: Sender, timestamp, content, attachments
- Thinking blocks: Claude's reasoning (unless
--no-thinking) - Tool usage: Web searches, artifacts, file operations (unless
--no-tools) - References: Citation URLs (unless
--no-citations)
Conversations with no name or empty content are automatically skipped.
Development
git clone https://github.com/olearydj/claude-json-to-markdown.git
cd claude-json-to-markdown
uv sync
uv run pytest
Limitations
- Project data from exports is not processed (no clear way to link conversations to projects)
- Artifact content is shown as operations (create/update/rewrite) rather than reconstructed final state
License
MIT
Links
Release files for claude-json-to-markdown 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| claude_json_to_markdown-0.2.0.tar.gz | 10.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| claude_json_to_markdown-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.9 kB
Release files / claude_json_to_markdown-0.2.0.tar.gz
| Download URL | claude_json_to_markdown-0.2.0.tar.gz |
|---|---|
| Size | 10.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1c49378e87ce79e4ad3baffede2191b1a49fa5d7d9d972f722efc26dce1750a1
|
|
BLAKE2b-256 checksum How to use checksums |
6e7f645ad7d202edbe618c6a6c867ba92c16fd832a504badfc430d05520451dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / claude_json_to_markdown-0.2.0-py3-none-any.whl
| Download URL | claude_json_to_markdown-0.2.0-py3-none-any.whl |
|---|---|
| Size | 12.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
49114e9e9a31b41ab6c7276021c8daa6fbb1568d1aea53fb3ded804edacabf55
|
|
BLAKE2b-256 checksum How to use checksums |
414a464dbf4c2e34801de75279295694c2d84ac369ff1c8d3af397ed1c51d77e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|