Show HN: Huzzah – a novel approach to coding with AI

www.danielvaughn.dev

8 points by danielvaughn 41 minutes ago

Hello everyone. I've been working on this experimental editor called Huzzah.

I've been working almost exclusively with coding agents since January of this year, and over the past few months I began to feel utterly exhausted by them. They're great, but I'm finding it more and more tedious to write full sentences for every change I want. Not only that, but it seems there's a complexity limit for codebases - beyond a certain point the agent begins confusing itself.

I'd like to go back to writing code, but I don't want to go all the way back to fully manual coding. So I've come up with this interaction paradigm where you:

  1. write pseudocode in whatever way makes the most sense to you
  2. on save, the editor synchronizes your work to real source code
  3. the pseudocode is persisted alongside the generated code, making your prompt effectively a stored record of intent.

It may not work for every use case, but in my initial playthroughs I've found it very enjoyable.

Right now it's just a proof of concept - installation instructions are here in the readme: https://github.com/danielvaughn/hz

You can also watch a video of it in action here: https://x.com/danielvaughn/status/2090456808431165715

Cheers!

smicallef 13 minutes ago

I’ve been thinking about something along these lines for some time. I really like the direction of this.

The challenge I see more broadly is we (as engineers now empowered by LLMs) are trying to find the right level of abstraction to operate in. Writing long form sentences and (sometime) reviewing the output feels too far away. But having an LLM work directly with you in an IDE feels too close to “the old way”.

Personally for me the approach here still feels a little too close to the lower level old way, but it’s better than the two approaches above.

Excited to see where you take it!

  • floatrock 4 minutes ago

    Right level of abstraction is a good way of putting it. It's basically like creating a custom DSL, but flexibility of LLMs allow the DSL to be ad-hoc.

    At what point will you need formal rigid syntax? Or is not having rigid syntax the point? If the latter, how much "informational noise" or ambiguity can you inject before the "DSL compiler" gets confused?

    Scaling is another bit. Convertible Psuedocode a great pattern for writing functions, but is it useful for writing modules? If you're writing a paragraph to change behavior of a function, you're underutilizing LLMs. Paragraphs are best for spec'ing modules, and the LLMs already fill in the blanks. Not sure if it would be faster to psuedocode the entire module (although maybe just the interface would be a sweet spot...)

tom_ 15 minutes ago

Are we supposed to be able to read the examples with our eyes? It looks like black text on a very dark grey background on my iPhone.

EDIT: same on Firefox on my Mac (macOS Ventura).

  • danielvaughn 10 minutes ago

    Pushing a fix now - thanks for letting me know.

    edit: fixed

paretolaw 8 minutes ago

Writing fizzbuzz requires that you understand algo + you credit card, while agent requires only your credit card. I believe most of people will pick the 2nd one.

apex_sloth 10 minutes ago

Definitely an approach worth exploring! I actually started to look into semi formal spec language like Quint because I wanted something more structured then prose, so I feel like this goes into the right direction.

esafak 8 minutes ago

You seem to be conflating two things: how to prompt, and how to share sessions. You can already use pseudo-code today if you want to. As for sharing, you can commit (a link to) it, use `git notes` (as I do), or a service like entire.io.

I think you should work on your differentiation. The session management stuff is the greater concern, in my opinion; pseudo code is not a novelty.