I created a side project ~3 years ago based on a similar idea.
It was before LLMs were a big thing, and AI could render the code relationships for you.
I started with go and java (the two languages I was using in my job) and built AST parsers that would extract the relationships between the classes and functions and draw them with graphviz. Then I created a filter syntax based on regex to filter the graphs.
I never followed through on the idea to a production ready version, but it helped massively as a personal tool when working on unfamiliar codebases.
The site is still here, but lots of it is probably broken by now..
A few things to point out after reading and thinking about this: - Another AI firm building products focused on Fortune 500 scale problems. If you're not at a F500, this tool isn't necessarily a good fit for you, so YMMV. - static analysis tools that produce flowcharts and diagrams like this have existed since antiquity, and I'm not seeing any new real innovation other than "letting the LLM produce it". They say it's…
> static analysis tools that produce flowcharts and diagrams like this have existed since antiquity Today I am apparently on of xkcd's "Lucky 10,000". Does anyone have any recommendations for such tools? Ideally open source, but that's not a hard requirement. (Although "Enterprise - if you have to ask the price you can't afford it" options will not work for me.) I'm particularity interested tools that work with Pytho…
I'm currently building one based on tree-sitter: https://github.com/CRJFisher/code-charter. It's still in development but will be released soon (this year). Will support Python, JS/TS, Rust to begin with others (like Java) to follow.
Well, interesting idea, but can you trust that it generates it properly? Because if it doesn't, then your understanding of the code will be incorrect, even worse than lack of knowledge; and if you do need to check all the things it has generated for you, as a description - doesn't it defeat the purpose of the tool?
I created a side project ~3 years ago based on a similar idea. It was before LLMs were a big thing, and AI could render the code relationships for you. I started with go and java (the two languages I was using in my job) and built AST parsers that would extract the relationships between the classes and functions and draw them with graphviz. Then I created a filter syntax based on regex to filter the graphs. I never f…
I did something similar but for non-classes based language (Go) and in 3D [1]
But I saw it as next step towards shifting programming from sitting and scanning texts into something more tangible, where developer has broad overview of software, and can work on smaller parts while seeing context of how these parts are connected. Ended up concluding that this stuff should work in VR.
Sounds very cool. I wanted to try this out, so I opened Windsurf for the first time in ages and clicked the "Upgrade Available" button, which sent me to: https://windsurf.com/editor/update-linux Did you install using apt or apt-get? If so... 1. Update package lists sudo apt-get update 2. Upgrade Windsurf sudo apt-get upgrade windsurf Whle `apt-get upgrade windsurf` will technically upgrade Windsurf, instructing users…
hiya! team noticed your comment and agreed - and it is fixed. - const CodeSnippetTwo = `sudo apt-get upgrade windsurf`; + const CodeSnippetTwo = `sudo apt-get install windsurf`;
I really love this comment, it's got a very "tree-falling-in-the-woods" vibe to it. On the direct face of it, no, it turns out it doesn't matter: plant cellulose is not toxic to humans, a certain level of it is in many processed foods, and that information isn't secret. By the time it matters to people, it's at the level where you can tell it's happened: large, pointy chunks, eg, or so much the flavour or texture is…
The HN guidelines explicitly ask you to steel man arguments you reply to. It is obvious that the point of the comment is not sawdust specifically; they could have used anything else, like cyanide, and the point would stand. Spending multiple paragraphs of rebuttal on a nitpick which fails to address the crux of the argument is precisely the kind of bad argument the HN guidelines aim to avoid.
You read the same response I did, right? And you... thought it was... literally about sawdust? ...and you took offense? I'm so confused...
Well, interesting idea, but can you trust that it generates it properly? Because if it doesn't, then your understanding of the code will be incorrect, even worse than lack of knowledge; and if you do need to check all the things it has generated for you, as a description - doesn't it defeat the purpose of the tool?
Arguably, if you vibe code you don't really care about the code, thus even less about the diagram. So you'll vibe something, get a diagram of something to show your boss, and you can move on.
The HN guidelines explicitly ask you to steel man arguments you reply to. It is obvious that the point of the comment is not sawdust specifically; they could have used anything else, like cyanide, and the point would stand. Spending multiple paragraphs of rebuttal on a nitpick which fails to address the crux of the argument is precisely the kind of bad argument the HN guidelines aim to avoid.
You read the same response I did, right? And you... thought it was... literally about sawdust? ...and you took offense? I'm so confused...
Seems like you haven’t understood my comment, but I’m unsure how to clarify it for you. Perhaps start by not assuming that expressing disagreement means taking offence? Not everything needs to be emotionally charged. Again, steel man.
A feature like this isn't useful because knowing what connects to what, dependencies, etc. means nothing without business context. AI will never know the why behind the architecture, it will only take it at face value. I think technical design docs which have some context and reading the code is more than enough. This sits in the middle ground where it lacks the context of a doc and is less detailed than the code.
> AI will never know the why behind the architecture, it will only take it at face value.
There is no reason to believe that at some point in the future AI will know the business context for apps when they are vibecoded (because the prompts should contain the business context).
I really like the idea of visualizing code in any other way than text and have given it some thought from time to time. However, I think the problem here can quickly become that you tend to fall in love with a bad idea. No one, and I don't mean that in bad faith, wants to look at these diagrams. Usually they do not communicate the meaning they intend to do, and I find that I have to spend some time understanding what exactly is meant by any type of box or arrow.
What people might want to look at is their mental visualization of the code or math they are working on (or their LLM made for them). At least to me, that is much more tied to what the data will look like at runtime and how different parts from different data-structures will interact with each other.
If you were to visualize a flutter app, and nowhere in that visualization the tree-like structure of the widget-tree would appear as such, that would collide with my mental model of how such an app functions.
This visualization will be induced by reading the code, much like reading a novel will produce pictures in your head. I'm not sure LLMs are the technology that will produce code-movies you would rather watch.