Files
dirigent/crates/dirigent_chatgpt/CLAUDE.md
T
2026-05-08 01:59:04 +02:00

1001 B

Package: dirigent_chatgpt

Pure-Rust parser for OpenAI's ChatGPT conversations.json data export.

Scope

  • parse_export(path) — reads a conversations.json file on disk and returns Vec<ParsedConversation>.
  • parse_str(json) — parses an in-memory JSON string (useful for tests and piped inputs).
  • Types: ParsedConversation, ParsedMessage, ContentPart (Text, Code, Tool).

No dirigent-specific types. dirigent_archivist::import::sources::chatgpt consumes this crate and maps into the archivist's internal types.

Example

let convs = dirigent_chatgpt::parse_export(path)?;
for c in convs {
    println!("{}: {} messages", c.title.as_deref().unwrap_or("(untitled)"), c.messages.len());
}

Failure modes

  • Truly broken JSON → ParseError::Json.
  • Malformed individual messages are skipped where possible.
  • Unknown content shapes are preserved as best-effort text in ContentPart::Text { text: raw_json } so no user data is silently lost.