Chat Transcript Formatter
Clean up a pasted chat log into a tidy transcript, Q&A pairs, JSON or CSV.
Validate a JSONL file line by line, and check fine-tuning datasets before you upload.
Or drop a .jsonl file — it is read in your browser, never uploaded
The JSONL Validator parses every line of a JSON Lines file on its own, reports each broken line by number, checks rows against OpenAI chat, ShareGPT, Alpaca, completion or Gemini fine-tuning formats, and offers a cleaned file with only the valid rows.
A JSON Lines file holds one JSON object per line, and a single broken line is enough for a fine-tuning upload to fail with a message that rarely says which one. An ordinary JSON validator cannot help, because the file as a whole is not JSON.
Paste the file or drop it in, and every line is parsed on its own. Errors are listed by line number with the offending text, whether they are broken JSON — a trailing comma, an unescaped quote — or rows that parse but do not match the training format. The format is detected from the first row, or you can choose it: OpenAI chat messages, ShareGPT conversations, Alpaca instruction and output, prompt and completion, or Gemini contents. Unknown roles, missing content and examples with no assistant turn are all caught.
The report also flags exact duplicate rows, rows whose keys differ from the rest, blank lines and a whole-file JSON array saved with a .jsonl name. Token estimates show the size of one training epoch, and a cleaned file with only the valid rows can be downloaded in one click.
Every invalid line is listed with its number, the parser message and the start of the line.
Roles, content, assistant turns and weights are checked for five common trainer formats.
Duplicates, mismatched keys, blank lines and JSON arrays saved as JSONL are all caught.
Average and largest example, and the tokens in one training epoch.
One click gives a file containing only the rows that passed.
Paste JSONL into the box or drop a .jsonl file. Large files are read without being uploaded.
Leave it on detect, or pick the training format you are about to upload to.
Each problem shows its line number, the reason and the start of the line.
Get a file with only the rows that passed, one object per line.
JSON Lines: a text file with one complete JSON object on each line and no surrounding brackets or commas. It is the standard format for fine-tuning datasets and batch API requests.
For chat models, one object per line with a "messages" array. Each message has a role of system, user or assistant and string content, and every example needs at least one assistant message.
Common causes are a JSON array saved as .jsonl, a trailing comma, a line break inside a string that was not escaped, a stray blank line, or a role name typo.
Yes. Files are read in your browser without uploading. Very large files are analysed but not placed into the text box, to keep the page responsive.
No. Validation runs entirely on your device, so proprietary training data never leaves it.
What people who use the JSONL Validator think of it. Reviews come from visitors and are posted as written.
No ratings yet
Yours would be the first.
0 reviews
Newest first
No reviews yet
Be the first to rate the JSONL Validator. It takes half a minute and no account.
Write the first reviewClean up a pasted chat log into a tidy transcript, Q&A pairs, JSON or CSV.
Strip markdown, smart quotes and invisible characters out of generated text.
Fill a prompt template from spreadsheet rows and get one prompt per row.
Build a chat API request for OpenAI, Claude, Gemini, Groq or Ollama in cURL, Python, JS or PHP.
Estimate how many tokens your text costs before you send it.
Work out what an AI feature will cost per call, per day and per month.
Find the words and habits that make text read as AI-generated, so you can edit them out.
Estimate what a fine-tune costs to train and run, and when it pays for itself.