formatarc
v0.2.1
Published
Convert JSON, YAML, CSV, Markdown, and HTML from the terminal. Browser-based version at formatarc.com.
Downloads
190
Maintainers
Readme
formatarc
Convert JSON, YAML, CSV, Markdown, and HTML from the terminal — your data never leaves your machine. No config, no telemetry, no upload.
Web version → formatarc.com — the same conversions, 100% in your browser, no signup.
Why formatarc?
Most "online JSON / YAML / CSV converters" send the data you paste to a server. In November 2025, security firm watchTowr disclosed that two popular formatter sites (jsonformatter.org and codebeautify.org) had publicly exposed over 80,000 saved submissions (5 GB+) through a predictable "Recent Links" URL — including Active Directory credentials, cloud access keys, private keys, CI/CD secrets, JWTs, and full AWS Secrets Manager exports from government, banking, healthcare, and aerospace organizations. (watchTowr report)
formatarc is built so that can't happen. The CLI runs entirely on your machine, and the web version runs entirely in your browser — no upload, no logging, no telemetry, no account.
It is not only paste-to-a-server sites, either: in early 2026, a widely used JSON formatter browser extension was reported (on Hacker News and dev.to) to add third-party tracking and checkout-page injection after moving to a closed-source model — a reminder that an installed extension can change behaviour through an automatic update. Background on both risks: are online converters safe? and picking a JSON formatter Chrome extension by privacy and permissions.
| | formatarc CLI | formatarc web | Typical online converter | jq / yq / pandoc | |---|:---:|:---:|:---:|:---:| | Data stays local | ✅ | ✅ | ❌ | ✅ | | No signup / no upload | ✅ | ✅ | ⚠️ | ✅ | | JSON + YAML + CSV + Markdown + HTML in one tool | ✅ | ✅ | ⚠️ | ❌ | | Works offline | ✅ | after first load | ❌ | ✅ | | Single install | ✅ | n/a | n/a | ❌ |
Install
npm install -g formatarcOr run directly with npx:
npx formatarc json-format '{"a":1}'Usage
formatarc <tool> [input or file]
cat file | formatarc <tool>Tools
| Command | Description |
|---------|-------------|
| json-format | Pretty-print JSON |
| yaml-to-json | Convert YAML to JSON |
| json-to-yaml | Convert JSON to YAML |
| csv-to-json | Convert CSV (with header row) to JSON |
| csv-to-markdown | Convert CSV to a Markdown (GFM) table |
| markdown-to-html | Convert Markdown to HTML |
| html-to-markdown | Convert HTML to Markdown |
Examples
Format JSON:
formatarc json-format '{"name":"FormatArc","tools":["json","yaml","csv"]}'{
"name": "FormatArc",
"tools": [
"json",
"yaml",
"csv"
]
}Convert a YAML file to JSON:
formatarc yaml-to-json config.yamlPipe from curl:
curl -s https://api.example.com/data | formatarc json-formatConvert CSV from stdin:
cat users.csv | formatarc csv-to-jsonConvert CSV to a Markdown table:
cat users.csv | formatarc csv-to-markdownRender Markdown as HTML:
cat README.md | formatarc markdown-to-html > README.htmlStrip HTML to Markdown (handy for piping web pages into LLMs):
curl -s https://example.com | formatarc html-to-markdownProgrammatic API
import { convert } from "formatarc";
const result = convert("json-format", '{"a":1}');
console.log(result.output);
// {
// "a": 1
// }convert(tool, input)
Returns { output: string, error: string }.
output— the converted result (empty string on error)error— error message (empty string on success)
Web Version
For a browser-based experience with no signup and no data upload:
- JSON Formatter, YAML ↔ JSON, CSV → JSON
- CSV → Markdown, Markdown ↔ HTML
- Runs entirely in the browser
- Multilingual (English, Japanese, Spanish, Portuguese)
There is also a Chrome extension for popup and right-click conversion — same browser-side processing, no upload.
License
MIT
