Skip to content

Prompt Library Exporter

Move a prompt collection between JSON, JSONL, Markdown, CSV and front-matter files, with the output parsed back and compared field by field.

Prompts converted
2

The output below was parsed back and compared with the input, field by field, and came back identical.

Prompts
2
Placeholders used across all bodies
3
Declared / used mismatches
0
Output characters
620
Round-trip differences
0
What this assumes: seven fields are carried and everything else is reported and dropped, so a converter that met your own extra column tells you rather than eating it. The Markdown fence is grown to be longer than the longest run of backticks in the body, so a prompt that contains a code block survives, and a “## ” line inside a fenced body is not read as the start of another prompt. Tags become a semicolon-separated cell in CSV and a comma-separated line in Markdown, so a tag containing that separator comes back split — which the round-trip check will tell you about rather than leave you to find. The YAML in the front-matter form is a deliberately tiny subset — key, scalar and flat list — with both the writer and the reader on this page, which is the other reason the round-trip check is worth reading. Everything on this page runs in your browser. Nothing you paste is uploaded, logged or sent anywhere.

Prompt libraries end up in whatever format the first tool used, and then the tool changes. The awkward part of moving them is never the metadata — it is the bodies, because a prompt body contains newlines, quotes, braces and very often a fenced code block, which is exactly the set of characters every one of these formats handles differently. A converter that gets the tags right and mangles one body in forty is worse than useless, because you will not notice for a month.

Which is why the output is read back

Every conversion above is parsed again by this page's own parser for the target format and compared with what you pasted, field by field. The differences are printed rather than assumed absent. If a body containing three backticks comes back short, you see it here — on this page, with the offending prompt named — rather than in production when a template renders half a prompt.

The placeholder check is the useful accident

Having both the declared variables and the body in one place makes one more comparison free: which placeholders the body actually uses. A prompt declaring customer_name whose body says {{name}} renders with a literal brace pair in it and nobody finds out until a customer reads it. That mismatch has nothing to do with the file format, and moving a library between formats is the one moment somebody is looking.

Prompt Library Exporter · Multigrid