Settings

Theme

Show HN: Ariana – A time travel debugger for PY/JS right in VSCode

github.com

25 points by anougaret 10 months ago · 15 comments · 2 min read

Reader

Hello HN!

I've recently released and open-sourced a time travel debugging VSCode extension for Python, Javascript & Typescript.

https://github.com/dedale-dev/ariana

It's born from the pain of spending hours reproducing bugs, struggling to read parallel streams of logging across client/server, and managing print/console.log statements.

You can see a short video here: https://www.youtube.com/watch?v=M2gZv7IOo7s

Basically its two parts:

One part CLI called `ariana` that you install with npm/pip and run alongside your code's run command. For instance `ariana python main.py` or `ariana npm run dev`. It then instrumentizes your code using our specialized parsers & small language models (self-hosted version of the server that does that coming soon).

The other part is a VSCode extension^(1). It picks up the traces left from running the code with the CLI. Then it lets you highlight the parts of the code that ran, and just by hovering any expression (or subpart of a complex expression), see which values it took.

Our goals with this are:

1. Make time-travel debugging easy to use for new coders/vibe coders that would never use a normal debugger, let alone some advanced logging.

2. Allow debugging of across the stack, across components, across languages, parallel data flows super easily (typical pain point of maintaining AI agents codebases, multiplayer web games or RL training setups). In prod even some day when we have a more robust feature set.

3. Experiment with agents using time-travel debugging to fix code accurately in one shot without re-running the code or spending tokens producing print/log statements.

4. Make time-travel debugging applicable to fullstack & frontend development (we plan to sync your frontend's visual state with the traces).

Some may ask why not interfacing with debuggers' APIs and instead rewriting code with tracing?

I think it gives us maximal granularity and expressivity in the traces we get from the code to minimize performance issue and avoiding looking at non-sensical things. It also opens the door to using this in production in the future. Of course I'd be happy to discuss that further with you if you worked on similar projects in the past :)

(1) https://marketplace.visualstudio.com/items?itemName=dedale-d...

Thank you very much for your attention!

malmz 10 months ago

Did i read that right? What part of a debugger would require the use of an AI language model?

  • anougaretOP 10 months ago

    Hey, yeah I know sounds weird. We're experimenting with small custom models <1B params to figure out which part of your code you'd probably not want to instrumentalize the normal way (e.g. logging absolutely everything) and instead in a more tailored way (and what that tailored way is), for instance a python for loop with 10k iterations.

bluelightning2k 10 months ago

This is very, very, very cool.

I implemented something like this once but had to use the typescript compiler to identify all the variable names and also use the typescript compiler to find valid moments they could change and insert code to capture their value at that time. Guessing you didn't go to that length in multiple languages. Sou how did you manage this? I'd be very interested in a technical write up and I suspect hn would too

  • anougaretOP 10 months ago

    Will def. do a technical write up! Wanted to do a more target approach like you around valid mutations only but I think users want to observe variables not only where they are written but also where they are read, so a low hanging fruit was to wrap all the expressions I could (hundreds of lines of AST queries and tricks per language) with functions/lambdas and some sort of "logging". Of course this is only 4 weeks in the making so there is so much more to do. And as you guessed you probably can't do the targeted approach well in Python and others.

AntDes 10 months ago

Let me know once you've tested with PyTorch :)

clementclp 10 months ago

Promising one! Looking for Ruby integration

  • anougaretOP 10 months ago

    Thank you! I feel like with Python we cracked the code rewriting issues very much to a point where Ruby could be supported fast

isalineDev 10 months ago

feels like this is growing trend : https://news.ycombinator.com/item?id=43280615

  • anougaretOP 10 months ago

    very much haha, it seems like a lot of people are realizing the upcoming potential with coding agents using them

bluewin 10 months ago

Looks rad! Can't wait to integrate this into my workflow

demod6 10 months ago

Consider shipping the components as an MCP.

ThomasCloarec 10 months ago

looks cool!

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection