The Incomplete JSON Pretty Printer (Brought To You By Vibes)

Incomplete JSON (such as from a log that terminates unexpectedly) doesn’t parse cleanly, which means anything that usually prints JSON nicely, won’t. Frustration with this is what led [Simon Willison] to make The Incomplete JSON pretty printer, a single-purpose web tool that pretty-prints JSON regardless of whether it’s complete or not.

Making a tool to solve a particular issue is a fantastic application of software, but in this case it also is a good lead-in to some thoughts [Simon] has to share about vibe coding. The incomplete JSON printer is a perfect example of vibe coding, being the product of [Simon] directing an LLM to iteratively create a tool and not looking at the actual code once.

Sometimes, however the machine decides to code something is fine.

[Simon] shares that the term “vibe coding” was first used in a social media post by [Andrej Karpathy], who we’ve seen shared a “hello world” of GPT-based LLMs as well as how to train one in pure C, both of which are the product of a deep understanding of the subject (and fantastically educational) so he certainly knows how things work.

Anyway, [Andrej] had a very specific idea he was describing with vibe coding: that of engaging with the tool in almost a state of flow for something like a weekend project, just focused on iterating one’s way to what they want without fussing the details. Why? Because doing so is new, engaging, and fun.

Since then, vibe coding as a term seems to get used to refer to any and all AI-assisted coding, a subject on which folks have quite a few thoughts (many of which were eagerly shared on a recent Ask Hackaday on the subject).

Of course human oversight is critical to a solid and reliable development workflow. But not all software is the same. In the case of the Incomplete JSON Pretty Printer, [Simon] really doesn’t care what the code actually looks like. He got it made in a short amount of time, the tool does exactly what he wants, and it’s hard to imagine the stakes being any lower. To [Simon], however the LMM decided to do things is fine, and there’s a place for that.

17 thoughts on “The Incomplete JSON Pretty Printer (Brought To You By Vibes)

    1. Doesn’t even need that. Only needs to include a malware library / npm module / etc which includes a reverse shell / bitcoin miner / ransomware / rm -f / etc and you’re still screwed.

      1. And the xz backdoor, where a psychopathic entity (likely some nation state) socially engineered an overworked single developer over months to ease the workload on ’em only to backstab the same dev much later on.

        Threat actors will go great lengths these days. The very recent Github supply chain attack on SpotBugs that leaked Github secrets in hundreds of repos is only the reminder that when it rains, it pours:
        [https://unit42.paloaltonetworks.com/github-actions-supply-chain-attack/#update-4-2-25]

    1. “Of course human oversight is critical to a solid and reliable development workflow. But not all software is the same. In the case of the Incomplete JSON Pretty Printer, [Simon] really doesn’t care what the code actually looks like. He got it made in a short amount of time, the tool does exactly what he wants, and it’s hard to imagine the stakes being any lower. “

        1. The author explicitly requested pure HTML and JS, no imports. And the generated code is exactly that. “Doesn’t care what the code looks like” does not mean “never looked at the generated code after it was created”.

  1. Kaparthy’s definition of Vibe Coding includes -talking- to the computer to write code, he is quite specific about that. As for the doubters, I’ve written a couple of largeish internal projects without writing a single line of code with claude, complete with tests etc., which the LLM runs itself, and uses to fix its own code. (It actually works much better if you don’t interfere, and just let the LLM write and edit the codebase, it has its own style and is far happier if you don’t interfere directly). And the end result is projects that Just Work. It is mind bendingly good. I’ve also published a couple of the more useful, niche, projects claude wrote for me as FOSS. Ideas->code->real world applications is here!

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.