Every AI engineer knows the pain: you log a prompt while debugging, and it lands in your console as one endless escaped line — \n everywhere, JSON crammed inline, system/user/assistant turns all mashed together. Unreadable. FormatTools fixes exactly that. Paste the mess on the left, get a clean, color-coded conversation on the right — roles split, newlines restored, inline JSON pretty-printed. Works with OpenAI, Claude and other LLM APIs. 100% in your browser — nothing is ever uploaded.
No reviews yetBe the first to leave a review for FormatTools
Maker
📌
Hi Product Hunt! 👋
If you build with LLMs, you've lived this pain:
You're debugging a complex prompt, so you log it. You open your console or cloud logs and... it's one giant, ugly line. `\n` instead of actual line breaks. JSON payloads crammed inline. The system, user, and assistant turns all fused together into an unreadable wall of text. To figure out what you actually sent to the model, you end up manually un-escaping a string in a text editor.
I got tired of doing that by hand, so I built FormatTools.
Paste that logged mess on the left — get a clean, color-coded conversation on the right:
• Unescapes `\n`, `\t`, and quotes back into real formatting
• Pretty-prints inline JSON payloads automatically
• Splits system / user / assistant / tool messages into separate, labeled blocks
• Works with OpenAI, Claude, and other popular LLM API formats
Security-wise, it runs 100% client-side in your browser. No signup, no backend — your prompts never leave your machine, which is crucial when you're pasting real production logs.
It's completely free. This started as my own internal debugging tool, so I'd genuinely love to hear from other LLM devs: what features would make this your daily driver? A prompt diff view? Token counts? Let me know in the comments! 👇
(P.S. There are also Markdown and HTML formatters on the site if you need them — but the prompt formatter is the one I actually built this for!)
Report
Does this handle streamed chunks where the JSON arrives in pieces, or only complete responses pasted all at once?
Report
Does the JSON pretty-printing handle nested arrays gracefully, or does it flatten them the same way the original log did? Trying to figure out if it saves me a step before pasting.
Report
How does it handle really long conversations when the right pane starts getting unwieldy, and is there any kind of search or collapse feature for specific roles?
Report
Pasted a gnarly multi-turn Claude log with nested JSON and it came out instantly readable, roles split clean and the inline tool call actually formatted properly. Appreciate that nothing leaves the browser too.
Does this handle streamed chunks where the JSON arrives in pieces, or only complete responses pasted all at once?
Does the JSON pretty-printing handle nested arrays gracefully, or does it flatten them the same way the original log did? Trying to figure out if it saves me a step before pasting.
How does it handle really long conversations when the right pane starts getting unwieldy, and is there any kind of search or collapse feature for specific roles?
Pasted a gnarly multi-turn Claude log with nested JSON and it came out instantly readable, roles split clean and the inline tool call actually formatted properly. Appreciate that nothing leaves the browser too.