Shan - Export Claude Code Transcripts

VerifiedCaution

CLI to convert Claude Code session transcripts to navigable Markdown with columnar headings. Perfect for reviewing, analyzing, or exporting session histories.

Sby Skills Guide Bot
DevelopmentBeginner
506/2/2026
Claude Code
#claude-code#transcript#markdown#cli

Recommended for

Our review

Converts Claude Code session logs (JSONL format) into navigable Markdown with columnar headings for easy outline navigation in editors.

Strengths

  • Generates structured Markdown with monospace columns for quick scanning
  • Supports dumping the current session or a specific session by partial UUID
  • Outputs a local file in the project directory

Limitations

  • Requires Bun to run the script
  • Only works with Claude Code, not other AI agents
  • Session ID must be a valid partial UUID prefix
When to use it

Use this skill when you need to review, analyze, or export a Claude Code session transcript offline.

When not to use it

Avoid this skill if you need real-time interaction or if Bun is not available.

Security analysis

Caution
Quality score85/100

The skill is intended for a legitimate transcript-dumping purpose, but the broad bun permission could allow unintended code execution. The risk is mitigated if the CLI script itself is safe, but the permission scope is overly permissive.

Findings
  • Tool permission Bash(bun:*) allows arbitrary bun command execution, which could be exploited if arguments are not properly validated.

Examples

Dump current session transcript
/shan transcript dump
Dump specific session by UUID prefix
/shan transcript dump dc8ffe42

name: shan description: Dump a Claude Code session transcript as navigable Markdown. Use when user wants to review, analyze, or export a session transcript. argument-hint: transcript dump [session-id] allowed-tools: Bash(bun:*)

Shan

Claude Code tooling CLI (named after Claude Shannon).

Execute

Run the shan CLI with provided arguments:

bun ~/projects/jasonkuhrt/dotfiles/packages/shan/src/bin/shan.ts $ARGUMENTS

Commands

transcript dump [session-id]

Convert JSONL transcripts to navigable Markdown with columnar headings for editor outline navigation.

Arguments:

| Argument | Description | |----------|-------------| | [session-id] | Optional. Partial UUID prefix (e.g., dc8ffe42). Defaults to current session. |

Output: .claude/transcripts/<session-id>.transcript.md in project directory

Examples:

/shan transcript dump              # dump current session
/shan transcript dump dc8ffe42     # dump specific session

Output Format:

Headings use monospace columns with underscore padding for editor outline alignment:

# `001` `01/25/2026 22:45` `file-history-snapshot` `snapshot______________________`
# `002` `01/25/2026 22:45` `progress_____________` `SessionStart:clear____________`
# `003` `01/25/2026 22:46` `user_________________` `sync__________________________`
Related skills