Show HN: Ariana – A time travel debugger for PY/JS right in VSCode
github.comHello 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!
Did i read that right? What part of a debugger would require the use of an AI language model?
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.
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
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.
Let me know once you've tested with PyTorch :)
Promising one! Looking for Ruby integration
Thank you! I feel like with Python we cracked the code rewriting issues very much to a point where Ruby could be supported fast
feels like this is growing trend : https://news.ycombinator.com/item?id=43280615
very much haha, it seems like a lot of people are realizing the upcoming potential with coding agents using them
Looks rad! Can't wait to integrate this into my workflow
yay :) happy to hear that
Consider shipping the components as an MCP.
you caught me at the moment of coding this!
looks cool!
Thanks :) Let me know if you use it and get into any trouble