Conversation Log Parser

Parse any chat transcript — Slack export, Discord copy, ChatGPT/Claude UI paste, IRC log, plain alternating dialogue — into structured turns. Output as JSON, JSONL, or Markdown. Useful for building fine-tuning datasets, archiving conversations, or feeding chat history into a new LLM call.

How to use the Conversation Log Parser

Paste a transcript. The parser detects common formats: Name: text, [Name] text, **Name**: text, ChatGPT-style "You said:" / "ChatGPT said:", Slack timestamp prefix. Each detected speaker becomes a role; consecutive turns from the same speaker are merged.

Turning chat transcripts into structured turns

Chat history arrives in many shapes: a Slack export, a Discord copy-paste, the “You said / ChatGPT said” layout from a web UI, an IRC log, or plain alternating dialogue. To reuse that history — as a fine-tuning example, an archive, or context for a fresh API call — it needs to become structured turns with a clear role and message for each.

This parser detects the common prefixes (Name:, [Name], **Name**:, UI labels, Slack timestamps), assigns each speaker a role, and merges consecutive turns from the same speaker. Output is available as JSON, JSONL, Markdown, or an OpenAI-style messages array ready to send back to a model.

Common use cases

  • Fine-tuning data — convert real conversations into the role and content pairs training expects.
  • Replaying history — turn a transcript into a messages array to continue in a new call.
  • Archiving chats — store a clean structured copy of a support or team conversation.
  • Format normalization — bring logs from different tools into one consistent shape.
  • Analysis prep — structure dialogue before counting turns or extracting fields.

Frequently asked questions

Which transcript formats does it detect?

Common ones: Name: text, [Name] text, **Name**: text, ChatGPT-style “You said / ChatGPT said”, and Slack timestamp prefixes. Each speaker becomes a role.

What output formats are available?

JSON, JSONL, Markdown, and an OpenAI messages array. The messages form drops straight into an API call as prior context.

What happens to consecutive turns from one speaker?

They are merged into a single turn, which matches how most chat APIs expect alternating roles rather than repeated ones.

Is my transcript uploaded?

No. Parsing runs in your browser, so private or internal conversations stay on your machine.
Embed this tool on your site

Free to embed, no attribution required (but appreciated). Paste this where you want the tool to appear: