For Python, Pyreverse is a subproject of Pylint and it can help make diagrams: <a href="https://pylint.readthedocs.io/en/latest/pyreverse.html" rel="nofollow">https://pylint.readthedocs.io/en/latest/pyreverse.html</a>
It makes class diagrams, it can even output Mermaid diagrams.<p>Also I saw that Aider.chat makes a text "repo map" for GPT-4 to use using some tree-sitters. In the past, I ended up using the Python AST module with LLM's to help me filter for what I was looking for.<p>I was happy to find out recently that there is a way to make Mermaid diagrams WYSIWYG / drag and drop editable that the open source <a href="https://excalidraw.com" rel="nofollow">https://excalidraw.com</a> has and did I mention it's open source!? With a LLM, you can go full loop back to Mermaid again after a few rounds of manual editing. "What a time to be alive!"<p>But what I would quite like is bi-directional syncing of code and diagrams. Just as looking at black and white code with no syntax highlighting is not so common, I think there are lots more visual cues and contexts we can integrate in clever ways that use our visual system better.
There is a whole wide spectrum of augmentation possible within bidirectional visual programming languages, from auto-generating high level code maps with Mermaid diagrams with LLM generated high level summaries and emojis linking to different sub-systems, to being optionally able to have an X,Y position for a function, perhaps moved somewhere more visually convenient as part of a map.<p>You could probably ask Aider to make Markdown of code actually. I'm not affiliated, I just saw it on here recently. Cool stuff's happening!
I think my question was misunderstood (probably due to my poor explanantion).<p>I was looking for a tool that could convert a codebase into a mindmap. Sort of like: <a href="https://resources.jetbrains.com/help/img/idea/2023.3/diagram_editor.png" rel="nofollow">https://resources.jetbrains.com/help/img/idea/2023.3/diagram...</a><p><a href="https://www.jetbrains.com/help/idea/class-diagram.html#analyze_class" rel="nofollow">https://www.jetbrains.com/help/idea/class-diagram.html#analy...</a>
I’m working on this right now! The prototype for Python will be out in a few weeks. <a href="https://valla.ai" rel="nofollow">https://valla.ai</a>
I use Mermaid[1]. I used to use Visual Paradigm but it seems excessive (to me at least). Good enough for me, especially with integration into Markdown.<p>[1] <a href="https://mermaid.js.org/" rel="nofollow">https://mermaid.js.org/</a>
Are you looking for something like a call graph?<p>There's pyan3 [1] which although doesn't support python 3.7+, I've still had luck with v1.0.4 which works better for me than its most recent version with python 3.11, but there can be some weird issues though depending on your code style.<p>A quick search also turned up crabviz [2] which has support for more languages than just python.<p>[1] <a href="https://github.com/Technologicat/pyan">https://github.com/Technologicat/pyan</a><p>[2] <a href="https://github.com/chanhx/crabviz">https://github.com/chanhx/crabviz</a>
I originally wrote <a href="https://chatcraft.org" rel="nofollow">https://chatcraft.org</a> to help me generate <a href="https://mermaid.js.org/" rel="nofollow">https://mermaid.js.org/</a> charts quickly. As an accident this resulted in ability to do funny charts like <a href="https://twitter.com/tarasglek/status/1656932246018748418" rel="nofollow">https://twitter.com/tarasglek/status/1656932246018748418</a><p>Just last week I discovered <a href="https://github.com/skanaar/nomnoml">https://github.com/skanaar/nomnoml</a> which llms also seem to know too. It seems like a better mermaid for UML type stuff, intend to integrate it into chatcraft too
I use UML quite a bit but it's never really what I'm after, somnething more modern and fluid and gui driven that more people can use where I don't have to manually input every single thing and it can pull in far more complex information like github repos and things of that nature.<p>Icepanel [1] looks really cool but I haven't tested it and I'm not sure it really fits my use case. It seems like it's mostly for api driven rpc/grpc/rest services when I kind of want to use it to visualize backend/infra/terraform sort of things in maybe a C4 style. A lot less microservices involved.<p>Might be interesting to you.<p>[1] - <a href="https://icepanel.io/">https://icepanel.io/</a><p>ANother cool tool for stuff like this I rarely see is swimm.io for documentation.
I wish something existed in this space. I used Coati Software's Sourcetrail for a couple of years. Unfortunately it was discontinued. It was a wonderful piece of software that indexed a code repository, and exposed an interface to explore it interactively. At least for me, it significantly improved the understanding and legibility of code.<p>The code is in an archived state (<a href="https://github.com/CoatiSoftware/Sourcetrail">https://github.com/CoatiSoftware/Sourcetrail</a>). Searching for the software on Google shows some screenshots.
I usually use mermaid.js...<p>From time to time I use svgbob[1].
Sometimes paired with textik[2] or asciiflow[3].<p>Together with markdown and termsvg[4] these also can be handy for documentation purposes.<p>1: <a href="https://ivanceras.github.io/svgbob-editor" rel="nofollow">https://ivanceras.github.io/svgbob-editor</a><p>2: <a href="https://textik.com/" rel="nofollow">https://textik.com/</a><p>3: <a href="https://asciiflow.com" rel="nofollow">https://asciiflow.com</a><p>4: <a href="https://github.com/MrMarble/termsvg">https://github.com/MrMarble/termsvg</a>
Not sure, I have used for non-continuous use the NDepend extension for visual studio to grasp a C++ code base in the past and then exported manually to inkscape to manually rearrange things in a readable way to come up with a single page codebase cheatsheet for easing the onboarding of new devs to a specific code base at work.<p>This is a legacy codebase that isn't expected to change significantly.
What do you mean by mind map? What's the objective of this exercise?<p>You may have better luck by searching for code to UML diagram generator. There are probably too many UML diagrams, but there are some ways to generate diagrams from the code. Once you have a diagram or two, you can probably simplify it into a mind map that you want to make.
I use Node-Red to create my mind map. It's a flow based programming environment, so my mind map is actually executable.<p>All flows are just very large json files (array of objects), so it's easy enough to generate working flows that can be imported into Node-Red.<p><a href="https://nodered.org" rel="nofollow">https://nodered.org</a>
Jetbrains IDEs can generate a diagram of your code...<a href="https://www.jetbrains.com/help/idea/class-diagram.html" rel="nofollow">https://www.jetbrains.com/help/idea/class-diagram.html</a><p>I've never really understood the value of this, but it's there.
markmap: markdown + mindmap: <a href="https://markmap.js.org/" rel="nofollow">https://markmap.js.org/</a><p>On why code LLMs should be trained on the edges between tests and the code that they test, <i>that</i> could be visualized as a mindmap DAG with cycles
A non-conventional mention and I am not sure how up to date it is, but I remember looking into <a href="https://moosetechnology.org/" rel="nofollow">https://moosetechnology.org/</a> a few years ago and it can do far more that you asked.<p>It's open-source.<p>You can read more about it here: <a href="http://agilevisualization.com/" rel="nofollow">http://agilevisualization.com/</a>
I'd recommend you to check <a href="https://appmap.io/" rel="nofollow">https://appmap.io/</a>
a tool which creates diagrams from code execution or tests...
With the significantly larger context window of Gemini, it would be utterly unsurprising to me if you could paste in your entire repository, and ask it to generate mermaid UML.
<a href="https://athenaintelligence.ai" rel="nofollow">https://athenaintelligence.ai</a> our product renders mermaid markdown, which has mind map, ERD, flow diagram and other high level components. since we run everything through an agent/llm it’s become an interesting way to literately brainstorm.