a13n
Build AI agents and run them on cloud.
Step through Python code and watch variables, objects and pointers change. Runs entirely in your browser.
Developer toolsJavaScript · CSSGitHub @andOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Visualize dsa
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗See your code run, line by line. Supports Python today. Step through a program and watch variables, objects and pointers change, drawn as boxes and arrows.
Live: https://and.github.io/dsaviz/
It's like Python Tutor, but everything runs in your browser. Python is executed by Pyodide (CPython compiled to WebAssembly), so there's no backend to host, nothing to keep alive, and your code never leaves your machine. The site is just static files on GitHub Pages.
.next arrow move when a link is rewired.Everything is on one page: code on the left, the drawing on the right.
Node 'x'.next now points to Node 'b' (was Node 'y')").#code= links still open. Editing the code removes the link from the address bar, so a refresh shows your latest version.After a refresh you're back on the same code, at the step you were on, with your colours.
The first visit downloads Python (about 10 MB). After that, the browser caches it.
your code ──▶ tracer.py (runs inside Pyodide)
│ sys.settrace records a snapshot at every line:
│ the call stack + every object reachable from it
▼
JSON trace ──▶ app.js draws frames, objects and arrows for the chosen step
tracer.py has no browser dependencies, so it runs and is tested under normal CPython too.input().No build step. Serve the folder with any static server:
python3 -m http.server 8000
# open http://localhost:8000
To work offline, install Pyodide locally and point the page at it:
npm install pyodide
ln -s node_modules/pyodide _pyodide
# open http://localhost:8000/?pyodide=/_pyodide/
When you change app.js, style.css, examples.js or tracer.py, bump the ?v= number on their links in index.html (all three use the same number). That number is also the app version shown in the footer, and app.js uses it to fetch tracer.py. GitHub Pages and browsers cache these files for a while, and without a new number a visitor can get the new page with old code.
Run the tracer tests:
python3 -m unittest discover -s tests
Inspired by Philip Guo's Python Tutor. Python in the browser by Pyodide.
See WISHLIST.md for what's planned next.
MIT licence.