A token in a stranger's textbox
Decoding a production JWT on a random website hands its claims, and sometimes the key, to whoever runs that site.
01The small jobs you paste into random websites, in one free app: format and convert JSON, YAML and XML, decode and sign JWTs, hashes, Base64, regex, cron, timestamps and twenty-two tools in all. It has no network access, so nothing you paste can go anywhere.
Where did that token go?
Tokens, configs, logs and API responses are exactly the things that shouldn't leave your machine. Facet does the same jobs right where the data already is.
Decoding a production JWT on a random website hands its claims, and sometimes the key, to whoever runs that site.
01That API response you pasted to pretty-print it had email addresses, order totals and internal IDs in it.
02One site for Base64, another for cron, another for timestamps, each with its own pop-ups and limits.
03Tools that drop number precision, reorder keys or guess the time zone, so the output isn't quite what you had.
04One app instead of twenty websites
Every tool runs live as you type, shows errors where they are, and keeps your data exactly as it was.
Paste anything
Drop a token, a config file, a timestamp or a cron line on the home screen and Facet says what it is and opens the right tool with it. A global shortcut brings Facet forward with your clipboard from any app.
Data formats
Pretty-print or minify, see exactly where a document breaks, convert between any two formats, and pull values out with JSONPath. Numbers keep their exact digits and keys keep their order.
Schemas & changes
Validate a document against a JSON Schema, problem by problem, or compare two versions by meaning: key order and number style don't count, and records are matched by their id.
Types from data
TypeScript interfaces, Rust serde structs, Go structs or Python dataclasses from any sample. Every item in a list is merged, so fields missing from some records come out optional.
JWT, keys & hashes
See a token's header and claims in plain words, with expiry as a date, and check its signature with a secret or a public key. Or sign a new one with the claims and expiry you choose.
Regex, cron & time
Test a pattern with live matches and named groups, read any cron expression in plain English with its next runs, and turn Unix time into dates in every zone you work with.
Calculators
The small calculations that otherwise mean another website: colour formats and contrast, IPv4 and IPv6 subnets, hex and two's complement, byte sizes and chmod.
SQL & QR codes
Lay out SQL with the keyword case and indentation you like, for standard SQL, PostgreSQL or SQL Server. Turn a link or Wi-Fi details into a QR code, or read the codes in a screenshot.
Twenty-two tools
Each one with tabs, keyboard shortcuts and the same copy, save and clear commands.
For terminals and CI
The facet command does what the app does, with standard input and output, JSON for scripts and exit codes that mean something: 0 for fine, 1 when the input is invalid.
# Pretty-print, or convert
$ curl -s localhost:8080/orders | facet fmt
$ facet fmt config.json --to yaml
# Read a token and check its signature
$ facet jwt "$TOKEN" --key issuer.pem
# Does the download match?
$ facet hash setup.exe --check 9f86d0…
# Fail the build on low contrast
$ facet color '#777' --on white
Everything else you'd expect
Several inputs side by side, kept while you switch tools. Ctrl/⌘ T for another.
Off by default. Turn it on to keep recent inputs on this computer; JWTs and keys are never kept.
Open or drop a file; big ones are read straight from disk instead of pasted.
The same shortcuts in every tool, and "use output as input" to chain them.
Follows your system, or pick one.
A command palette and shortcuts for everything, listed on one sheet.
Windows, macOS (Apple silicon and Intel) and Linux, small and quick to start.
Nothing to sign up for. Install it and paste.
Private by design
Facet vs online tools
| What | Online tools | Facet |
|---|---|---|
| Where your data goes | To someone else's server | Nowhere. Facet has no network access |
| Tokens and keys | Pasted into a web page | Checked on your computer, never stored |
| Number precision and key order | Often lost on the way through | Kept exactly |
| Finding the right tool | A search, then another site | Paste once; Facet picks it |
| Several inputs at once | Browser tabs of different sites | Tabs in every tool |
| Ads, sign-ups and limits | Usually | None |
| Scripts and CI | Not really | The facet command line |
| Works offline | No | Always |
Get Facet 1.1.0
Pick the file for your system. We'll email you a one-time code, and the download starts as soon as you enter it.
Windows 10 and 11, 64-bit
macOS 11 Big Sur or later
64-bit (x86_64)
facet fmt, jwt, hash, uuid… No window
First launch & command line
If Windows shows "Windows protected your PC", choose More info, then Run anyway. On Windows 10, the installer adds Microsoft's WebView2 if it's missing.
Drag Facet into Applications. The first time, open System Settings, then Privacy & Security, and click Open Anyway. (On macOS 14 and earlier, right-click the app and choose Open.)
Install the .deb with apt or the .rpm with dnf, like any other package. The AppImage needs no install: make it executable (chmod +x) and run it.
Unpack the archive and put facet on your PATH. Every command has examples in facet <command> --help.
The first-launch warning appears because Facet is new and not yet widely downloaded; it only shows once. Verify your download (optional): each file's SHA-256 checksum is in SHA256SUMS.txt, and facet hash FILE --check checks it for you.
FAQ
Something else? A tool you'd like added? Email jamal@unravelers.tech.
Yes. The app's window is built so it cannot make network requests at all, and every tool runs on your computer. The only thing that can go online is an update check, in builds with updates switched on, and it never includes anything you typed.
They stay in memory on your machine and are never written to disk, even with history turned on. Key URLs inside a token (jku, x5u) are never fetched.
Yes, every tool, with no account and no paid tier.
The same engine as the app: facet fmt, query, schema, types, diff, base64, hash, jwt, jwt-sign, uuid, ulid, regex, cron, time, cert, escape, url, text, password, num, bytes, color, subnet, chmod, sql, qr and detect. Exit codes make it easy to use in scripts and CI.
No. Both are thin shells over one engine, so the same input gives the same answer.
Files up to a couple of megabytes open as editable text; bigger ones, up to hundreds of megabytes, are processed straight from disk.
Both systems double-check apps that aren't yet widely downloaded. It only happens on the first launch; the steps are in the download section above.
Windows 10 and 11 (64-bit), macOS 11 or later on Apple silicon and Intel, and 64-bit Linux (Ubuntu, Debian, Fedora, openSUSE and others).
Developer tools that never leave your machine
Get Facet for Windows, macOS or Linux, or tell us which tool it should have next.