Thursday, 6 March 2025

Show HN: Ariana – A time travel debugger for PY/JS right in VSCode https://bit.ly/43nIzAH

Show HN: Ariana – A time travel debugger for PY/JS right in VSCode Hello HN! I've recently released and open-sourced a time travel debugging VSCode extension for Python, Javascript & Typescript. https://bit.ly/43nIiOb 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://bit.ly/3DbRs5Y... Thank you very much for your attention! https://bit.ly/43nIiOb March 7, 2025 at 12:32AM

No comments:

Post a Comment