Code, visually.
Asterris turns your Python into a diagram you can read, run, and edit. Bidirectional — the code stays the source of truth.
Why Asterris
Three ways to see your code.
Read it, draw it, run it. Switch at will — the model never drifts, because the code is the diagram.
Code-first
Your Python is the source of truth. The diagram derives from it — no separate model to keep in sync.
Bidirectional
Edit code → diagram updates. Edit diagram → code updates. Both stay valid, always.
Reference-aware
Type a function name and the matching node lights up. Your code and your diagram share one vocabulary.
Real Python
Not a DSL, not a toy. Import any library, run any script — Asterris just adds a view.
Sharable
Send a link, render the diagram. No install, no plugin — the editor runs in the browser.
Keyboard-first
Every action has a shortcut. The diagram is for reading; editing stays on the keyboard.
Try it
Referencing is as easy as typing.
Type a function name — the matching node lights up. Your code and your diagram share one vocabulary.
Try load, parse, total, print — or full sentences.
How it works
From code to diagram in one parse.
Asterris doesn't generate code from a diagram — it derives the diagram from the code, so refactors stay safe and round-trips are lossless.
-
Write or paste your Python
Any module works. Functions, classes, imports, decorators.
-
Asterris parses the AST
Nodes, edges, and data flow get extracted into the canonical Asterris representation.
-
Read, edit, or run
Tweak the diagram — the code updates. Hit run — your script executes in the built-in terminal.
See it
Same program, two views.
A small data pipeline rendered as both Python and as the Asterris graph.
def load(path):
return open(path).read()
def parse(text):
return [int(x) for x in text.split()]
def total(nums):
return sum(nums)
print(total(parse(load("nums.txt"))))
┌──────┐ ┌───────┐ ┌───────┐
│ load │ → │ parse │ → │ total │ → 42
└──────┘ └───────┘ └───────┘
↓ ↓ ↓
"1 2 3 4..." [1,2,3,4...] 42
FAQ