JSON to TOML
Turn JSON into TOML for Cargo, pyproject, or an app config, and swap the same page back toward JSON. Comments in TOML disappear on that trip because JSON has nowhere to put them.
Runs in your browser. Nothing is uploaded.
How it works
- Step 1: Paste your inputPaste directly into the editor, drop a file onto it, or use "Open file" to pick one from your device. Nothing is sent anywhere when you do.
- Step 2: ConvertAdjust the options if you need to, then run it. Results appear beside your input so you can compare the two.
- Step 3: Copy or download the outputCopy the result to your clipboard in one click, or save it as a file. You can also keep editing and re-run as many times as you like.
About this tool
One page, JSON toward TOML
There is no second address for TOML. This page opens in JSON-to-TOML, which matches Cargo.toml, pyproject.toml, and the other config files people convert from a JSON blob. The swap button flips the boxes to TOML-to-JSON and leaves the URL alone, so bookmarks and the canonical tag stay on one page. Nested objects become [table] headers. Arrays of objects become [[table]] blocks. That is smol-toml's ordinary output.
TOML comments have nowhere to go once the value has been JSON, so they disappear on a round trip. Convert a copy when the comments still matter. The page does not talk to crates.io or to a Python installer. It rewrites text in the tab. If the JSON is not an object the TOML writer can represent, the error toast is the library's message and the output box stays empty.
smol-toml is the only writer on this page. A JSON array sitting at the top level is not a TOML document, and that case shows the library error. There is no file picker and no download button: paste, convert, then copy. Swap clears both boxes so a half-converted buffer is not reused as the next input.
- Runs in your browser. All processing happens locally in this tab using JavaScript.
- No uploads. Your data is never sent to a server. There is no server to send it to.
- Works offline. Once the page has loaded you can disconnect and keep working.
- Unlimited & free. No usage caps, no paywall, no file size tiers.
Start with your own data. Open a file
What happens to your data
The same questions a security review would ask, answered plainly.
- Read via
- Typed or pasted into the page
- Held in
- Your browser tab's memory for as long as it is open
- Stored
- Nothing. No cookies, no database, no server-side copy
- Transmitted
- Nothing leaves your device
- Retained after you close the tab
- Nothing
- Works offline
- Yes, once the page has loaded
Why use this tool
What you get here that a server-side alternative cannot offer.
Your data never leaves the tab
There is no upload step and no server to receive one. The page loads once, then all work on your data happens in local JavaScript.
No caps or paywalls
No daily limits, no per-file ceilings imposed by a server tier, no watermarks, and no account. The practical limit is your own device's memory.
Frequently asked questions
Is my configuration uploaded to a server?
No. Everything runs locally in your browser using JavaScript. Your data is never uploaded to a server, and nothing is stored or logged.
Is there a separate TOML-to-JSON address?
No. This is the one page. The swap button flips the boxes. The address stays /json-to-toml so there is a single canonical URL.
How are tables written?
A nested object becomes a [table] header. An array of objects becomes [[table]] blocks. That is smol-toml's ordinary output, not a custom dialect.
How much data can I paste in?
There is no server-side cap. Very large inputs are limited only by your device's memory and will make the page feel slower, since the work happens on the main thread. In practice a few megabytes of text is comfortable.
Does it work offline?
Yes, once the page has loaded. The code that does the work is already in your browser at that point, so you can disconnect and keep using it. Reloading the page while offline needs the browser cache to still hold it.
Do I need to create an account?
No. There is no sign-up, no email, and no usage tracking tied to an identity. The tool works the first time you open it.