# Format: Markdown
## Description
Human-readable conversation export with full metadata, thinking blocks, and tool use. Designed for reading in any markdown renderer (GitHub, VS Code, Obsidian) or plain text. Default format when `format::` is omitted. Renderer: `write_markdown_entry()` in `claude_storage_core/src/export.rs`.
## Trigger
Activated by `format::markdown` on `.export`, or by omitting `format::` entirely (this is the default format).
## Structure
```
# Session: {session_id}
**Path**: `{storage_path}`
**Entries**: {total_entries}
**Created**: {first_timestamp}
**Last Updated**: {last_timestamp}
---
## Entry 1 - User
*{timestamp}*
{user message content}
---
## Entry 2 - Assistant
*{timestamp}*
<details>
<summary>Thinking ({token_count} tokens)</summary>
{thinking content}
</details>
{text content}
**Tool Use**: `{tool_name}`
```json
{tool_input}
```
**Tool Result**:
```
{tool_output}
```
---
```
### Content Blocks
| Text | Plain text paragraph | Always |
| Thinking | Collapsible `<details>` with token count in summary | When present |
| Tool Use | Bold label + tool name in backticks + JSON code block | When present |
| Tool Result | Bold label + code block | When present |
### Characteristics
- **Extension:** `.md`
- **Entry headings:** H2 (`## Entry N - Role`) with sequential numbering starting at 1
- **Timestamps:** italic on own line below entry heading
- **Separator:** horizontal rule (`---`) between entries and after header
- **Metadata fields:** bold label with value (`**Path**: ...`)
- **Default format** when `format::` is omitted
## Source
`claude_storage_core/src/export.rs` — `write_markdown_entry()`, `export_session()`
### Referenced Commands
| 6 | [`.export`](../command/06_export.md) | Default format; activated when `format::markdown` or `format::` is omitted |
### Referenced User Stories
| 3 | [Export Session for Review](../user_story/003_export_session_for_review.md) | developer |