Skip to content
kitty/binDev
Your data never leaves this device

An online dev playground for your data

One shared input, seven panels side by side: JSON, Convert, SQL, Regex, Diff, Encode and HTTP. Nothing is uploaded.

Input

Try an example:

Columns

Ctrl Enter runs the panel you are in. Alt with 1 to 7 switches panels (Ctrl works too where the browser allows it). Ctrl Z in the input undoes, even after a panel replaced it.

JSON


        

Convert

    
            

    SQL

    Regex

    
              
    
            

    Diff

    Encode

    
            

    HTTP

      
              

      How it works

      Everything starts with one shared input. Paste text, open a file or drop one anywhere on the page, and the playground tells you what it is: JSON, YAML, CSV, TSV, XML, TOML, .env, a JWT, a cURL command, SQL or plain text. Every panel reads from that same input, so you never copy the same data from one tool into the next.

      Each panel has Use as input and Send to B buttons. Convert a CSV to JSON, use the result as the input, query it with JSONPath, then send the matches to input B and compare them with the original. Every replacement of the input can be undone.

      The panels

      • JSON formats, minifies and validates, shows a collapsible tree, runs JSONPath queries, checks the data against a JSON Schema in input B, and writes TypeScript, Zod, Go or Python types. YAML, CSV, XML and TOML input is read as data too.
      • Convert turns JSON, YAML, TOML, XML, CSV, TSV and .env into one another.
      • SQL runs real SQLite over your data. The input becomes a table called data and input B becomes data_b, so you can join them.
      • Regex highlights every match in the input, lists the capture groups and previews a replacement.
      • Diff compares the input with input B, or with the output of any other panel.
      • Encode handles Base64, URL encoding, HTML entities, hex, MD5 and SHA hashes, and decodes JWTs with readable dates.
      • HTTP turns a cURL command into fetch, Python requests, Go or PHP code. No request is ever sent.

      Side by side or one at a time

      On a wide screen choose one, two or three columns and pick which panel sits in each. The panel buttons put a panel into the column you last worked in. On a phone the panels become tabs, one at a time, with the same input above them.

      Your session stays on this device

      The inputs, the panels you have open and their settings are kept in this browser automatically, so a reload brings your work back. Very large inputs, over about two million characters, are not kept, though the settings still are. Export the whole session as a JSON file to move it to another computer or share it with a teammate, and import it there. Start over clears everything, including the saved copy.

      Keyboard shortcuts

      • Ctrl Enter runs the panel you are working in
      • Alt 1 to 7 switch panels, and Ctrl 1 to 7 work too in browsers that pass them to the page
      • Ctrl Z and Ctrl Shift Z undo and redo changes to the input

      Privacy

      All of the work happens in your browser. Your data, tokens and queries are never uploaded, and the HTTP panel only writes code, it never makes the request. The saved session lives in this browser's storage and nowhere else.

      Questions

      How large can the input be?

      Several megabytes work well on a computer. Panels only run while they are on screen, patterns run in the background with a time limit, and long highlights and tables stop at a sensible size, so the page stays responsive.

      Is the JWT signature checked?

      No. The header and payload are decoded and the dates are explained, but checking a signature needs the secret or public key. Never paste a production secret into any website you do not control.

      Which SQL can I use?

      Full SQLite: joins, grouping, window functions, common table expressions and JSON functions. Nested JSON objects become columns such as customer_name.

      more in the bin

      Keep going.

      More in kittybin Dev

      Explore the bin