exportlisted
Install: claude install-skill rmzi/portable-dev-system
# /export — Session Export
Export Claude Code session JSONL files to human-readable markdown.
> Output also feeds the dev-diary pipeline in `/pds:finish` — `scripts/assemble-diary.sh` calls `export-session.sh` to produce the raw transcript block that lives inside the diary comment's `<details>` wrapper.
## Usage
Run the export script:
```bash
# Export current/latest session to stdout
scripts/export-session.sh
# Export specific session
scripts/export-session.sh <session-id>
# Save to file
scripts/export-session.sh -o docs/conversations/session-name.md
# List available sessions
scripts/export-session.sh --list
```
### Env var overrides
| Var | Purpose |
|---|---|
| `TRANSCRIPT_PATH` | Absolute path to the JSONL. Skips CWD-hash session discovery entirely — canonical source is the `transcript_path` field in hook payloads. |
| `FILTER_BRANCH` | If set, JSONL entries are filtered to those whose `gitBranch` matches (entries without `gitBranch`, like early-session system messages, pass through). Produces a tighter, branch-scoped transcript. |
Or from the plugin root:
```bash
$CLAUDE_PLUGIN_ROOT/scripts/export-session.sh
```
## Output Format
The exported markdown uses role markers for readability:
| Marker | Role |
|--------|------|
| **👤 Human** | User messages |
| **🔵 Claude** | Assistant text + tool calls |
| **🤖 Agent** | Teammate/subagent messages |
| **⚙️ System** | Slash commands |
| **⚙️ Shell** | Terminal commands run by user |
Tool calls appear as compact