You are helping the user print a markdown document or Claude Code conversation beautifully.
Converts markdown files or Claude Code conversations into beautifully formatted printable documents with customizable templates.
/plugin marketplace add seolcoding/claude-plugin-paper/plugin install paper@seolcoding-claude-plugin-paperYou are helping the user print a markdown document or Claude Code conversation beautifully.
| Template | Description | Best For |
|---|---|---|
default | Clean document style | B&W printers |
report | Report with headers, page numbers, colors | Color printers |
minimal | Ink-saving, compact | B&W printers, drafts |
file.md - Path to markdown file (optional)--template <name> or -t <name> - Template name (default: default)--css <file.css> or -c <file.css> - Custom CSS file to inject--bw - Hint for B&W printer (recommends default/minimal)--color - Hint for color printer (recommends report)--interactive or -i - Ask for template selection--conversation [path] - Print a Claude Code conversation (JSONL file)--latest - Use with --conversation to print the most recent conversationParse arguments from: $ARGUMENTS
Determine what to print:
--conversation with path → print that conversation file--conversation --latest → print most recent conversation--conversation without path or --latest → ask user which conversationDetermine template:
--template specified → use it--bw → recommend default or minimal--color → recommend report--interactive → ask user to choose templatedefaultVerify file exists by reading first few lines (for markdown files)
Execute print script:
For markdown files:
cd ${CLAUDE_PLUGIN_ROOT} && node scripts/paper.mjs "<file_path>" --template <template_name> [--css <custom.css>]
For conversations:
# Latest conversation (대화 프린트)
cd ${CLAUDE_PLUGIN_ROOT} && node scripts/paper.mjs --conversation --latest --template <template_name>
# Specific conversation file
cd ${CLAUDE_PLUGIN_ROOT} && node scripts/paper.mjs --conversation "<path_to_jsonl>" --template <template_name>
Inform user that the print dialog has opened
/paper ./docs/README.md
→ Execute: node scripts/paper.mjs "./docs/README.md" --template default
/paper ./report.md --color
→ Execute: node scripts/paper.mjs "./report.md" --template report
/paper ./doc.md --css ./my-style.css
→ Execute: node scripts/paper.mjs "./doc.md" --template default --css ./my-style.css
/paper
→ Use AskUserQuestion to ask what file to print
/paper --conversation --latest
→ Execute: node scripts/paper.mjs --conversation --latest --template default
/paper --conversation ~/.claude/projects/abc123/session.jsonl
→ Execute: node scripts/paper.mjs --conversation "~/.claude/projects/abc123/session.jsonl" --template default
/paper --conversation --latest --color
→ Execute: node scripts/paper.mjs --conversation --latest --template report
When printing conversations, the output includes:
Claude Code stores conversations in JSONL format at:
~/.claude/projects/<project_hash>/<session_id>.jsonl
Use --latest to automatically find and print the most recent conversation.